Skip to content

Releases: PicoPlus-devel/pico-peanutGB

v0.15.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 14:54

CHANGELOG

v0.15.1 adds a PicoNES PCB design with SNES controller ports. The emulator is unchanged from v0.15.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.15.1 Release notes

What's new

  • PicoNES PCB with SNES controller ports. PCB design v2.8, designed by John Edgar Park (@johnedgarpark), has two SNES controller ports, so original SNES controllers plug in without an adapter cable. The Gerber file pico_nesPCB_v2.8_SNES_PORTS.zip is attached below. See Custom PCBs in the readme.
  • All PCB designs, with parts lists and pictures, are now described in the PCB README.

The binaries are the same as in v0.15.

v0.15 Release notes

After updating, all settings return to their defaults once.

What's new

  • Olimex RP2040-PICO-PC. The emulator now runs on the Olimex RP2040-PICO-PC with a Raspberry Pi Pico 2: HDMI, sound through HDMI and the audio jack, a USB controller on the USB-A port and a NES or SNES controller on the UEXT connector. See Olimex RP2040-PICO-PC in the pico-infonesPlus readme. Contributed by DnCraptor.

Fixes

  • The Controller Test screen is now closed by holding SELECT + UP for 2 seconds. SELECT + START conflicted with some 8BitDo wireless controllers.
  • The B button of the AliExpress SNES USB controller works without pressing Y first.

v0.14 Release notes

What's new

  • USB drive mode. The SD card can be shown on a computer as a USB drive, so games can be added or removed without taking the card out. Choose USB drive mode in the settings menu, opened from the menu (not during a game). Eject the drive on the computer when finished. On boards where controllers share the USB port with the computer, use a controller on the NES port. On RP2040 boards the screen stays off while the card is mounted and the console restarts afterwards. See USB drive mode.
  • Overscan fix in menu. A new setting 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 as well. The change is shown right away in the settings menu.
  • More options on one page in the settings menu. The color palette is now only shown while one of the menu color options is selected, which leaves room for more options on screen.
  • Quicker saving in the settings menu. Press SELECT on any setting to jump straight to the SAVE/CANCEL/DEFAULT row.

Fixes

  • Controller test screen shows the controller outline and the list of controllers correctly again.

v0.13 Release notes

A maintenance release. It brings the shared menu and support code up to date; the emulator itself is unchanged. Upgrading is only a matter of flashing the new .uf2 — your settings, saves and save states on the SD card are untouched.

Fixes

  • DVI-only monitors show a picture again. With Display Mode set to DVI, some older screens that accept DVI but not HDMI stayed black. They work again.
  • Clone Pico boards no longer crash at start-up. Boards fitted with a cheaper flash chip than a genuine Raspberry Pi Pico could hang on power-on. The chip is now recognised and driven at a speed it can handle. Genuine Picos are unaffected.
  • Steadier start-up. The board lets its power settle before switching to the higher clock speed.

v0.12 Release notes

Raspberry Pi Pico (RP2040) support

Releases for the original Pico are published again, after being dropped for
being too slow. They come with two limitations, both described in the README:

  • Game Boy Color games are not supported. RP2040 builds are DMG only.
    Colour support needs about 35 KB more RAM than the 256 KB part can spare, and
    costs roughly two thirds more work per scanline. Cartridges marked Game Boy
    Color only are refused when started, with a message in the menu. Cartridges
    that are Game Boy Color enhanced but still run on an original Game Boy work
    normally, in their Game Boy form.
  • Busy scenes can still show brief red bands. There is no framebuffer on
    RP2040, so the emulator has to hand each scanline to the display in time.
    Quiet scenes have room to spare; scenes with many sprites or a scrolling
    window layer can miss the deadline. The picture recovers by itself.

Everything else — sound, save games, borders, palettes, the menu and the
settings screen — behaves as it does on the Pico 2. A Pico 2 is still the
better choice where you have one.

Recently played

The menu now keeps a list of the last 20 games you started, newest first.
Open it with Button3 in the rom browser — X on a SNES controller, Y on
XInput, Triangle on PlayStation, C on Genesis, X on a Wii Classic pad — or from
the new Recently played entry at the top of the settings menu.

In the list, Button2 starts the highlighted game, SELECT removes it from
the list, START shows its artwork, and Button1 closes the list. The
settings menu only offers the entry when it is opened from the rom browser, not
from inside a running game, which is also the route for pads without a Button3 —
notably a NES pad on the controller port.

The list is plain text in /recent_GB.txt in the SD card root, one line per
game, 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 when you try to start it and can
be dropped with SELECT. A damaged or unreadable list simply comes up empty —
unlike the settings file, nothing gets reset.

On boards without PSRAM, the game whose image is currently in flash is tagged
[READY]: that is the one that starts without waiting for the rom to be
written to flash first.

Audio

  • Fixed audio drifting against the output clock. The emulator produced a
    fixed 738 samples per frame while every output consumes exactly 44100 per
    second. Over HDMI that was a slow overproduction, so the audio buffer filled
    until packets were dropped; over I2S it was a slow underproduction, so the
    buffer ran dry and the output stalled and restarted. Either way it built up to
    a regular tick or dropout after a minute or two of play. The emulator now asks
    for exactly as many samples as the output is ready to take.
  • Improved note timing. A whole frame of audio used to be generated in one
    go once the frame had finished, so everything the game did to the sound chip
    during those 16.7 ms landed at the same instant. Audio is now generated in
    eight slices spread through the frame, which sharpens short notes, drums and
    envelopes. (RP2040 keeps the single-block behaviour; slicing there would cost
    video timing it cannot spare.)
  • Removed a resampling step that is no longer needed, along with the small loss
    of quality that came with it.

Speed

Mostly relevant to Game Boy Color titles, which were closest to the limit:

  • The processor emulation loop, the sound chip emulation and the sound registers
    now run from RAM instead of flash. The main loop previously reached the
    instruction step through a slow detour on every single instruction.
  • Screen colour lookup reduced to a single table read per pixel.
  • Replaced the per-scanline sprite sort with a cheaper one.

Fixes

  • Fixed the display driver locking up. Opening the settings menu in-game and
    choosing Reset Game, Save/Restore State or the frame rate toggle could freeze
    the picture on a red screen with the emulator stopped. Some display buffers
    were being left behind when the menu handed the screen back. This also
    explains occasional random freezes reported earlier.
  • Fixed the frame rate counter appearing several times down the screen on
    boards without a framebuffer.
  • Fixed the scanline setting being ignored when a game starts. Games came up
    without the scanline effect you had selected, and only picked it up once you
    had opened the settings menu and left it again. Starting a game now applies
    your chosen screen mode, scanline style and aspect ratio straight away. Most
    visible on boards that boot directly into a game, which is every board without
    PSRAM.
  • Removed the Save/Restore State entry from the in-game settings menu. This
    emulator has no save state support, so the entry did nothing.
  • Resetting the settings to their defaults no longer leaves an unused internal
    scanline switch at whatever value the settings file happened to hold.

v0.11 Release notes

This release adds support for pico-bootLoader, extends controller
support, introduces a controller test screen and an additional display
option, and contains a number of stability fixes.

Support for pico-bootLoader

An RP2350 board normally holds a single program. Running a different
emulator requires connecting the board to a computer, holding BOOTSEL
and copying a different .uf2 file onto it.

pico-bootLoader
removes that requirement. The loader is flashed onto the board once, the
applications are placed on the SD card, and from then on a menu is shown
at every power-on. The menu is operated with a USB game controller or a
USB keyboard and can be displayed either with cover artwork per
application or as plain text. Selecting an entry starts the
corresponding application; a reset or power cycle returns to the menu.

Besides this Game Boy / Game Boy Color emulator, the loader supports the
NES, Sega Genesis / Mega Drive, Sega Master System / G...

Read more

v0.15

Choose a tag to compare

@github-actions github-actions released this 09 Oct 09:56
3b6137e

CHANGELOG

Adds USB drive mode, which shows the SD card on a computer as a USB drive so games can be added without taking the card out, and an overscan fix for the menus.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.15 Release notes

After updating, all settings return to their defaults once.

What's new

  • Olimex RP2040-PICO-PC. The emulator now runs on the Olimex RP2040-PICO-PC with a Raspberry Pi Pico 2: HDMI, sound through HDMI and the audio jack, a USB controller on the USB-A port and a NES or SNES controller on the UEXT connector. See Olimex RP2040-PICO-PC in the pico-infonesPlus readme. Contributed by DnCraptor.

Fixes

  • The Controller Test screen is now closed by holding SELECT + UP for 2 seconds. SELECT + START conflicted with some 8BitDo wireless controllers.
  • The B button of the AliExpress SNES USB controller works without pressing Y first.

v0.14 Release notes

What's new

  • USB drive mode. The SD card can be shown on a computer as a USB drive, so games can be added or removed without taking the card out. Choose USB drive mode in the settings menu, opened from the menu (not during a game). Eject the drive on the computer when finished. On boards where controllers share the USB port with the computer, use a controller on the NES port. On RP2040 boards the screen stays off while the card is mounted and the console restarts afterwards. See USB drive mode.
  • Overscan fix in menu. A new setting 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 as well. The change is shown right away in the settings menu.
  • More options on one page in the settings menu. The color palette is now only shown while one of the menu color options is selected, which leaves room for more options on screen.
  • Quicker saving in the settings menu. Press SELECT on any setting to jump straight to the SAVE/CANCEL/DEFAULT row.

Fixes

  • Controller test screen shows the controller outline and the list of controllers correctly again.

v0.13 Release notes

A maintenance release. It brings the shared menu and support code up to date; the emulator itself is unchanged. Upgrading is only a matter of flashing the new .uf2 — your settings, saves and save states on the SD card are untouched.

Fixes

  • DVI-only monitors show a picture again. With Display Mode set to DVI, some older screens that accept DVI but not HDMI stayed black. They work again.
  • Clone Pico boards no longer crash at start-up. Boards fitted with a cheaper flash chip than a genuine Raspberry Pi Pico could hang on power-on. The chip is now recognised and driven at a speed it can handle. Genuine Picos are unaffected.
  • Steadier start-up. The board lets its power settle before switching to the higher clock speed.

v0.12 Release notes

Raspberry Pi Pico (RP2040) support

Releases for the original Pico are published again, after being dropped for
being too slow. They come with two limitations, both described in the README:

  • Game Boy Color games are not supported. RP2040 builds are DMG only.
    Colour support needs about 35 KB more RAM than the 256 KB part can spare, and
    costs roughly two thirds more work per scanline. Cartridges marked Game Boy
    Color only are refused when started, with a message in the menu. Cartridges
    that are Game Boy Color enhanced but still run on an original Game Boy work
    normally, in their Game Boy form.
  • Busy scenes can still show brief red bands. There is no framebuffer on
    RP2040, so the emulator has to hand each scanline to the display in time.
    Quiet scenes have room to spare; scenes with many sprites or a scrolling
    window layer can miss the deadline. The picture recovers by itself.

Everything else — sound, save games, borders, palettes, the menu and the
settings screen — behaves as it does on the Pico 2. A Pico 2 is still the
better choice where you have one.

Recently played

The menu now keeps a list of the last 20 games you started, newest first.
Open it with Button3 in the rom browser — X on a SNES controller, Y on
XInput, Triangle on PlayStation, C on Genesis, X on a Wii Classic pad — or from
the new Recently played entry at the top of the settings menu.

In the list, Button2 starts the highlighted game, SELECT removes it from
the list, START shows its artwork, and Button1 closes the list. The
settings menu only offers the entry when it is opened from the rom browser, not
from inside a running game, which is also the route for pads without a Button3 —
notably a NES pad on the controller port.

The list is plain text in /recent_GB.txt in the SD card root, one line per
game, 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 when you try to start it and can
be dropped with SELECT. A damaged or unreadable list simply comes up empty —
unlike the settings file, nothing gets reset.

On boards without PSRAM, the game whose image is currently in flash is tagged
[READY]: that is the one that starts without waiting for the rom to be
written to flash first.

Audio

  • Fixed audio drifting against the output clock. The emulator produced a
    fixed 738 samples per frame while every output consumes exactly 44100 per
    second. Over HDMI that was a slow overproduction, so the audio buffer filled
    until packets were dropped; over I2S it was a slow underproduction, so the
    buffer ran dry and the output stalled and restarted. Either way it built up to
    a regular tick or dropout after a minute or two of play. The emulator now asks
    for exactly as many samples as the output is ready to take.
  • Improved note timing. A whole frame of audio used to be generated in one
    go once the frame had finished, so everything the game did to the sound chip
    during those 16.7 ms landed at the same instant. Audio is now generated in
    eight slices spread through the frame, which sharpens short notes, drums and
    envelopes. (RP2040 keeps the single-block behaviour; slicing there would cost
    video timing it cannot spare.)
  • Removed a resampling step that is no longer needed, along with the small loss
    of quality that came with it.

Speed

Mostly relevant to Game Boy Color titles, which were closest to the limit:

  • The processor emulation loop, the sound chip emulation and the sound registers
    now run from RAM instead of flash. The main loop previously reached the
    instruction step through a slow detour on every single instruction.
  • Screen colour lookup reduced to a single table read per pixel.
  • Replaced the per-scanline sprite sort with a cheaper one.

Fixes

  • Fixed the display driver locking up. Opening the settings menu in-game and
    choosing Reset Game, Save/Restore State or the frame rate toggle could freeze
    the picture on a red screen with the emulator stopped. Some display buffers
    were being left behind when the menu handed the screen back. This also
    explains occasional random freezes reported earlier.
  • Fixed the frame rate counter appearing several times down the screen on
    boards without a framebuffer.
  • Fixed the scanline setting being ignored when a game starts. Games came up
    without the scanline effect you had selected, and only picked it up once you
    had opened the settings menu and left it again. Starting a game now applies
    your chosen screen mode, scanline style and aspect ratio straight away. Most
    visible on boards that boot directly into a game, which is every board without
    PSRAM.
  • Removed the Save/Restore State entry from the in-game settings menu. This
    emulator has no save state support, so the entry did nothing.
  • Resetting the settings to their defaults no longer leaves an unused internal
    scanline switch at whatever value the settings file happened to hold.

v0.11 Release notes

This release adds support for pico-bootLoader, extends controller
support, introduces a controller test screen and an additional display
option, and contains a number of stability fixes.

Support for pico-bootLoader

An RP2350 board normally holds a single program. Running a different
emulator requires connecting the board to a computer, holding BOOTSEL
and copying a different .uf2 file onto it.

pico-bootLoader
removes that requirement. The loader is flashed onto the board once, the
applications are placed on the SD card, and from then on a menu is shown
at every power-on. The menu is operated with a USB game controller or a
USB keyboard and can be displayed either with cover artwork per
application or as plain text. Selecting an entry starts the
corresponding application; a reset or power cycle returns to the menu.

Besides this Game Boy / Game Boy Color emulator, the loader supports the
NES, Sega Genesis / Mega Drive, Sega Master System / Game Gear,
PC Engine and Philips Videopac / Odyssey² emulators, as well as a native
port of Doom.

Please note:

  • The binaries listed on this page are the standalone builds and are
    unchanged. Use one of these to run the Game Boy emulator on its own.
  • The builds intended for the loader are published in the pico-bootLoader
    repository, not here. See the pico-bootLoader releases
    page
    for
    those files and for the installation instructions.
  • When the emulator is started from the loader, the settings menu
    c...
Read more

v0.14

Choose a tag to compare

@github-actions github-actions released this 25 Sep 11:53
85ab5c5

CHANGELOG

Adds USB drive mode, which shows the SD card on a computer as a USB drive so games can be added without taking the card out, and an overscan fix for the menus.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.14 Release notes

What's new

  • USB drive mode. The SD card can be shown on a computer as a USB drive, so games can be added or removed without taking the card out. Choose USB drive mode in the settings menu, opened from the menu (not during a game). Eject the drive on the computer when finished. On boards where controllers share the USB port with the computer, use a controller on the NES port. On RP2040 boards the screen stays off while the card is mounted and the console restarts afterwards. See USB drive mode.
  • Overscan fix in menu. A new setting 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 as well. The change is shown right away in the settings menu.
  • More options on one page in the settings menu. The color palette is now only shown while one of the menu color options is selected, which leaves room for more options on screen.
  • Quicker saving in the settings menu. Press SELECT on any setting to jump straight to the SAVE/CANCEL/DEFAULT row.

Fixes

  • Controller test screen shows the controller outline and the list of controllers correctly again.

v0.13 Release notes

A maintenance release. It brings the shared menu and support code up to date; the emulator itself is unchanged. Upgrading is only a matter of flashing the new .uf2 — your settings, saves and save states on the SD card are untouched.

Fixes

  • DVI-only monitors show a picture again. With Display Mode set to DVI, some older screens that accept DVI but not HDMI stayed black. They work again.
  • Clone Pico boards no longer crash at start-up. Boards fitted with a cheaper flash chip than a genuine Raspberry Pi Pico could hang on power-on. The chip is now recognised and driven at a speed it can handle. Genuine Picos are unaffected.
  • Steadier start-up. The board lets its power settle before switching to the higher clock speed.

v0.12 Release notes

Raspberry Pi Pico (RP2040) support

Releases for the original Pico are published again, after being dropped for
being too slow. They come with two limitations, both described in the README:

  • Game Boy Color games are not supported. RP2040 builds are DMG only.
    Colour support needs about 35 KB more RAM than the 256 KB part can spare, and
    costs roughly two thirds more work per scanline. Cartridges marked Game Boy
    Color only are refused when started, with a message in the menu. Cartridges
    that are Game Boy Color enhanced but still run on an original Game Boy work
    normally, in their Game Boy form.
  • Busy scenes can still show brief red bands. There is no framebuffer on
    RP2040, so the emulator has to hand each scanline to the display in time.
    Quiet scenes have room to spare; scenes with many sprites or a scrolling
    window layer can miss the deadline. The picture recovers by itself.

Everything else — sound, save games, borders, palettes, the menu and the
settings screen — behaves as it does on the Pico 2. A Pico 2 is still the
better choice where you have one.

Recently played

The menu now keeps a list of the last 20 games you started, newest first.
Open it with Button3 in the rom browser — X on a SNES controller, Y on
XInput, Triangle on PlayStation, C on Genesis, X on a Wii Classic pad — or from
the new Recently played entry at the top of the settings menu.

In the list, Button2 starts the highlighted game, SELECT removes it from
the list, START shows its artwork, and Button1 closes the list. The
settings menu only offers the entry when it is opened from the rom browser, not
from inside a running game, which is also the route for pads without a Button3 —
notably a NES pad on the controller port.

The list is plain text in /recent_GB.txt in the SD card root, one line per
game, 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 when you try to start it and can
be dropped with SELECT. A damaged or unreadable list simply comes up empty —
unlike the settings file, nothing gets reset.

On boards without PSRAM, the game whose image is currently in flash is tagged
[READY]: that is the one that starts without waiting for the rom to be
written to flash first.

Audio

  • Fixed audio drifting against the output clock. The emulator produced a
    fixed 738 samples per frame while every output consumes exactly 44100 per
    second. Over HDMI that was a slow overproduction, so the audio buffer filled
    until packets were dropped; over I2S it was a slow underproduction, so the
    buffer ran dry and the output stalled and restarted. Either way it built up to
    a regular tick or dropout after a minute or two of play. The emulator now asks
    for exactly as many samples as the output is ready to take.
  • Improved note timing. A whole frame of audio used to be generated in one
    go once the frame had finished, so everything the game did to the sound chip
    during those 16.7 ms landed at the same instant. Audio is now generated in
    eight slices spread through the frame, which sharpens short notes, drums and
    envelopes. (RP2040 keeps the single-block behaviour; slicing there would cost
    video timing it cannot spare.)
  • Removed a resampling step that is no longer needed, along with the small loss
    of quality that came with it.

Speed

Mostly relevant to Game Boy Color titles, which were closest to the limit:

  • The processor emulation loop, the sound chip emulation and the sound registers
    now run from RAM instead of flash. The main loop previously reached the
    instruction step through a slow detour on every single instruction.
  • Screen colour lookup reduced to a single table read per pixel.
  • Replaced the per-scanline sprite sort with a cheaper one.

Fixes

  • Fixed the display driver locking up. Opening the settings menu in-game and
    choosing Reset Game, Save/Restore State or the frame rate toggle could freeze
    the picture on a red screen with the emulator stopped. Some display buffers
    were being left behind when the menu handed the screen back. This also
    explains occasional random freezes reported earlier.
  • Fixed the frame rate counter appearing several times down the screen on
    boards without a framebuffer.
  • Fixed the scanline setting being ignored when a game starts. Games came up
    without the scanline effect you had selected, and only picked it up once you
    had opened the settings menu and left it again. Starting a game now applies
    your chosen screen mode, scanline style and aspect ratio straight away. Most
    visible on boards that boot directly into a game, which is every board without
    PSRAM.
  • Removed the Save/Restore State entry from the in-game settings menu. This
    emulator has no save state support, so the entry did nothing.
  • Resetting the settings to their defaults no longer leaves an unused internal
    scanline switch at whatever value the settings file happened to hold.

v0.11 Release notes

This release adds support for pico-bootLoader, extends controller
support, introduces a controller test screen and an additional display
option, and contains a number of stability fixes.

Support for pico-bootLoader

An RP2350 board normally holds a single program. Running a different
emulator requires connecting the board to a computer, holding BOOTSEL
and copying a different .uf2 file onto it.

pico-bootLoader
removes that requirement. The loader is flashed onto the board once, the
applications are placed on the SD card, and from then on a menu is shown
at every power-on. The menu is operated with a USB game controller or a
USB keyboard and can be displayed either with cover artwork per
application or as plain text. Selecting an entry starts the
corresponding application; a reset or power cycle returns to the menu.

Besides this Game Boy / Game Boy Color emulator, the loader supports the
NES, Sega Genesis / Mega Drive, Sega Master System / Game Gear,
PC Engine and Philips Videopac / Odyssey² emulators, as well as a native
port of Doom.

Please note:

  • The binaries listed on this page are the standalone builds and are
    unchanged. Use one of these to run the Game Boy emulator on its own.
  • The builds intended for the loader are published in the pico-bootLoader
    repository, not here. See the pico-bootLoader releases
    page
    for
    those files and for the installation instructions.
  • When the emulator is started from the loader, the settings menu
    contains an additional entry, Return to emulator selection, which
    returns to the application menu. This entry is not present in
    standalone builds.

What's new

Controller Test screen

The settings menu contains a new entry, Controller Test. It displays
a controller layout on screen and highlights each button while it is
pressed, following the most recently used input source: the controller
ports on the board, USB controllers 1 and 2, and a Wii Classic
controller. A list below the layout shows the connection status of each
source and whether input has been received from it.

Hold SELECT + START for two seconds to leave the screen.

Display options

  • New Scanline Type option with the values Simple and LCD. Simple
    darkens alternate lines; LCD darkens alternate columns as well,
    resulting in a grid patter...
Read more

v0.13

Choose a tag to compare

@github-actions github-actions released this 24 Aug 17:39

CHANGELOG

Maintenance release: updates the shared menu and support code. Fixes a black screen on DVI-only monitors, and stops clone Pico boards crashing at start-up. The emulator itself is unchanged.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.13 Release notes

A maintenance release. It brings the shared menu and support code up to date; the emulator itself is unchanged. Upgrading is only a matter of flashing the new .uf2 — your settings, saves and save states on the SD card are untouched.

Fixes

  • DVI-only monitors show a picture again. With Display Mode set to DVI, some older screens that accept DVI but not HDMI stayed black. They work again.
  • Clone Pico boards no longer crash at start-up. Boards fitted with a cheaper flash chip than a genuine Raspberry Pi Pico could hang on power-on. The chip is now recognised and driven at a speed it can handle. Genuine Picos are unaffected.
  • Steadier start-up. The board lets its power settle before switching to the higher clock speed.

v0.12 Release notes

Raspberry Pi Pico (RP2040) support

Releases for the original Pico are published again, after being dropped for
being too slow. They come with two limitations, both described in the README:

  • Game Boy Color games are not supported. RP2040 builds are DMG only.
    Colour support needs about 35 KB more RAM than the 256 KB part can spare, and
    costs roughly two thirds more work per scanline. Cartridges marked Game Boy
    Color only are refused when started, with a message in the menu. Cartridges
    that are Game Boy Color enhanced but still run on an original Game Boy work
    normally, in their Game Boy form.
  • Busy scenes can still show brief red bands. There is no framebuffer on
    RP2040, so the emulator has to hand each scanline to the display in time.
    Quiet scenes have room to spare; scenes with many sprites or a scrolling
    window layer can miss the deadline. The picture recovers by itself.

Everything else — sound, save games, borders, palettes, the menu and the
settings screen — behaves as it does on the Pico 2. A Pico 2 is still the
better choice where you have one.

Recently played

The menu now keeps a list of the last 20 games you started, newest first.
Open it with Button3 in the rom browser — X on a SNES controller, Y on
XInput, Triangle on PlayStation, C on Genesis, X on a Wii Classic pad — or from
the new Recently played entry at the top of the settings menu.

In the list, Button2 starts the highlighted game, SELECT removes it from
the list, START shows its artwork, and Button1 closes the list. The
settings menu only offers the entry when it is opened from the rom browser, not
from inside a running game, which is also the route for pads without a Button3 —
notably a NES pad on the controller port.

The list is plain text in /recent_GB.txt in the SD card root, one line per
game, 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 when you try to start it and can
be dropped with SELECT. A damaged or unreadable list simply comes up empty —
unlike the settings file, nothing gets reset.

On boards without PSRAM, the game whose image is currently in flash is tagged
[READY]: that is the one that starts without waiting for the rom to be
written to flash first.

Audio

  • Fixed audio drifting against the output clock. The emulator produced a
    fixed 738 samples per frame while every output consumes exactly 44100 per
    second. Over HDMI that was a slow overproduction, so the audio buffer filled
    until packets were dropped; over I2S it was a slow underproduction, so the
    buffer ran dry and the output stalled and restarted. Either way it built up to
    a regular tick or dropout after a minute or two of play. The emulator now asks
    for exactly as many samples as the output is ready to take.
  • Improved note timing. A whole frame of audio used to be generated in one
    go once the frame had finished, so everything the game did to the sound chip
    during those 16.7 ms landed at the same instant. Audio is now generated in
    eight slices spread through the frame, which sharpens short notes, drums and
    envelopes. (RP2040 keeps the single-block behaviour; slicing there would cost
    video timing it cannot spare.)
  • Removed a resampling step that is no longer needed, along with the small loss
    of quality that came with it.

Speed

Mostly relevant to Game Boy Color titles, which were closest to the limit:

  • The processor emulation loop, the sound chip emulation and the sound registers
    now run from RAM instead of flash. The main loop previously reached the
    instruction step through a slow detour on every single instruction.
  • Screen colour lookup reduced to a single table read per pixel.
  • Replaced the per-scanline sprite sort with a cheaper one.

Fixes

  • Fixed the display driver locking up. Opening the settings menu in-game and
    choosing Reset Game, Save/Restore State or the frame rate toggle could freeze
    the picture on a red screen with the emulator stopped. Some display buffers
    were being left behind when the menu handed the screen back. This also
    explains occasional random freezes reported earlier.
  • Fixed the frame rate counter appearing several times down the screen on
    boards without a framebuffer.
  • Fixed the scanline setting being ignored when a game starts. Games came up
    without the scanline effect you had selected, and only picked it up once you
    had opened the settings menu and left it again. Starting a game now applies
    your chosen screen mode, scanline style and aspect ratio straight away. Most
    visible on boards that boot directly into a game, which is every board without
    PSRAM.
  • Removed the Save/Restore State entry from the in-game settings menu. This
    emulator has no save state support, so the entry did nothing.
  • Resetting the settings to their defaults no longer leaves an unused internal
    scanline switch at whatever value the settings file happened to hold.

v0.11 Release notes

This release adds support for pico-bootLoader, extends controller
support, introduces a controller test screen and an additional display
option, and contains a number of stability fixes.

Support for pico-bootLoader

An RP2350 board normally holds a single program. Running a different
emulator requires connecting the board to a computer, holding BOOTSEL
and copying a different .uf2 file onto it.

pico-bootLoader
removes that requirement. The loader is flashed onto the board once, the
applications are placed on the SD card, and from then on a menu is shown
at every power-on. The menu is operated with a USB game controller or a
USB keyboard and can be displayed either with cover artwork per
application or as plain text. Selecting an entry starts the
corresponding application; a reset or power cycle returns to the menu.

Besides this Game Boy / Game Boy Color emulator, the loader supports the
NES, Sega Genesis / Mega Drive, Sega Master System / Game Gear,
PC Engine and Philips Videopac / Odyssey² emulators, as well as a native
port of Doom.

Please note:

  • The binaries listed on this page are the standalone builds and are
    unchanged. Use one of these to run the Game Boy emulator on its own.
  • The builds intended for the loader are published in the pico-bootLoader
    repository, not here. See the pico-bootLoader releases
    page
    for
    those files and for the installation instructions.
  • When the emulator is started from the loader, the settings menu
    contains an additional entry, Return to emulator selection, which
    returns to the application menu. This entry is not present in
    standalone builds.

What's new

Controller Test screen

The settings menu contains a new entry, Controller Test. It displays
a controller layout on screen and highlights each button while it is
pressed, following the most recently used input source: the controller
ports on the board, USB controllers 1 and 2, and a Wii Classic
controller. A list below the layout shows the connection status of each
source and whether input has been received from it.

Hold SELECT + START for two seconds to leave the screen.

Display options

  • New Scanline Type option with the values Simple and LCD. Simple
    darkens alternate lines; LCD darkens alternate columns as well,
    resulting in a grid pattern that resembles an LCD screen.
  • The separate Scanlines on/off option has been removed. Scanlines
    are now selected through the Screen Mode option.

Settings menu

  • The option list is now scrollable, so that all options remain
    accessible as their number increases. The SAVE, CANCEL and DEFAULT
    actions are shown at a fixed position.
  • The software version is displayed in the menu.

Menu and SD card

  • The default directory for roms is now /roms/GB. Roms may still be
    placed anywhere on the card and organised in subdirectories.
  • When leaving a subdirectory, the selection returns to the directory
    that was left instead of the first entry in the list.
  • If the last used directory no longer exists, the menu falls back to the
    root of the card.

Controller support

  • Shoulder buttons are now mapped on the DualShock 4, DualSense,
    Xbox / XInput controllers, the MantaPad and the Retro-bit
    Mega Drive Arcade Pad
    . The Square button is mapped on the
    PlayStation Classic controller, and L/R and ZL/ZR are mapped on the
    Wii Classic Controller. Additional keys were added to the USB
    keyboard mapping.
  • On XInput controllers, the left thumbstick also functions as a d-pa...
Read more

v0.12

Choose a tag to compare

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

CHANGELOG

Brings back support for the original Raspberry Pi Pico (RP2040), with limitations, and reworks audio so it no longer drifts against the output clock. Adds a Recently played list of the last 20 games, opened with Button3 in the menu. Also a round of speed work and a handful of display fixes.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.12 Release notes

Raspberry Pi Pico (RP2040) support

Releases for the original Pico are published again, after being dropped for
being too slow. They come with two limitations, both described in the README:

  • Game Boy Color games are not supported. RP2040 builds are DMG only.
    Colour support needs about 35 KB more RAM than the 256 KB part can spare, and
    costs roughly two thirds more work per scanline. Cartridges marked Game Boy
    Color only are refused when started, with a message in the menu. Cartridges
    that are Game Boy Color enhanced but still run on an original Game Boy work
    normally, in their Game Boy form.
  • Busy scenes can still show brief red bands. There is no framebuffer on
    RP2040, so the emulator has to hand each scanline to the display in time.
    Quiet scenes have room to spare; scenes with many sprites or a scrolling
    window layer can miss the deadline. The picture recovers by itself.

Everything else — sound, save games, borders, palettes, the menu and the
settings screen — behaves as it does on the Pico 2. A Pico 2 is still the
better choice where you have one.

Recently played

The menu now keeps a list of the last 20 games you started, newest first.
Open it with Button3 in the rom browser — X on a SNES controller, Y on
XInput, Triangle on PlayStation, C on Genesis, X on a Wii Classic pad — or from
the new Recently played entry at the top of the settings menu.

In the list, Button2 starts the highlighted game, SELECT removes it from
the list, START shows its artwork, and Button1 closes the list. The
settings menu only offers the entry when it is opened from the rom browser, not
from inside a running game, which is also the route for pads without a Button3 —
notably a NES pad on the controller port.

The list is plain text in /recent_GB.txt in the SD card root, one line per
game, 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 when you try to start it and can
be dropped with SELECT. A damaged or unreadable list simply comes up empty —
unlike the settings file, nothing gets reset.

On boards without PSRAM, the game whose image is currently in flash is tagged
[READY]: that is the one that starts without waiting for the rom to be
written to flash first.

Audio

  • Fixed audio drifting against the output clock. The emulator produced a
    fixed 738 samples per frame while every output consumes exactly 44100 per
    second. Over HDMI that was a slow overproduction, so the audio buffer filled
    until packets were dropped; over I2S it was a slow underproduction, so the
    buffer ran dry and the output stalled and restarted. Either way it built up to
    a regular tick or dropout after a minute or two of play. The emulator now asks
    for exactly as many samples as the output is ready to take.
  • Improved note timing. A whole frame of audio used to be generated in one
    go once the frame had finished, so everything the game did to the sound chip
    during those 16.7 ms landed at the same instant. Audio is now generated in
    eight slices spread through the frame, which sharpens short notes, drums and
    envelopes. (RP2040 keeps the single-block behaviour; slicing there would cost
    video timing it cannot spare.)
  • Removed a resampling step that is no longer needed, along with the small loss
    of quality that came with it.

Speed

Mostly relevant to Game Boy Color titles, which were closest to the limit:

  • The processor emulation loop, the sound chip emulation and the sound registers
    now run from RAM instead of flash. The main loop previously reached the
    instruction step through a slow detour on every single instruction.
  • Screen colour lookup reduced to a single table read per pixel.
  • Replaced the per-scanline sprite sort with a cheaper one.

Fixes

  • Fixed the display driver locking up. Opening the settings menu in-game and
    choosing Reset Game, Save/Restore State or the frame rate toggle could freeze
    the picture on a red screen with the emulator stopped. Some display buffers
    were being left behind when the menu handed the screen back. This also
    explains occasional random freezes reported earlier.
  • Fixed the frame rate counter appearing several times down the screen on
    boards without a framebuffer.
  • Fixed the scanline setting being ignored when a game starts. Games came up
    without the scanline effect you had selected, and only picked it up once you
    had opened the settings menu and left it again. Starting a game now applies
    your chosen screen mode, scanline style and aspect ratio straight away. Most
    visible on boards that boot directly into a game, which is every board without
    PSRAM.
  • Removed the Save/Restore State entry from the in-game settings menu. This
    emulator has no save state support, so the entry did nothing.
  • Resetting the settings to their defaults no longer leaves an unused internal
    scanline switch at whatever value the settings file happened to hold.

v0.11 Release notes

This release adds support for pico-bootLoader, extends controller
support, introduces a controller test screen and an additional display
option, and contains a number of stability fixes.

Support for pico-bootLoader

An RP2350 board normally holds a single program. Running a different
emulator requires connecting the board to a computer, holding BOOTSEL
and copying a different .uf2 file onto it.

pico-bootLoader
removes that requirement. The loader is flashed onto the board once, the
applications are placed on the SD card, and from then on a menu is shown
at every power-on. The menu is operated with a USB game controller or a
USB keyboard and can be displayed either with cover artwork per
application or as plain text. Selecting an entry starts the
corresponding application; a reset or power cycle returns to the menu.

Besides this Game Boy / Game Boy Color emulator, the loader supports the
NES, Sega Genesis / Mega Drive, Sega Master System / Game Gear,
PC Engine and Philips Videopac / Odyssey² emulators, as well as a native
port of Doom.

Please note:

  • The binaries listed on this page are the standalone builds and are
    unchanged. Use one of these to run the Game Boy emulator on its own.
  • The builds intended for the loader are published in the pico-bootLoader
    repository, not here. See the pico-bootLoader releases
    page
    for
    those files and for the installation instructions.
  • When the emulator is started from the loader, the settings menu
    contains an additional entry, Return to emulator selection, which
    returns to the application menu. This entry is not present in
    standalone builds.

What's new

Controller Test screen

The settings menu contains a new entry, Controller Test. It displays
a controller layout on screen and highlights each button while it is
pressed, following the most recently used input source: the controller
ports on the board, USB controllers 1 and 2, and a Wii Classic
controller. A list below the layout shows the connection status of each
source and whether input has been received from it.

Hold SELECT + START for two seconds to leave the screen.

Display options

  • New Scanline Type option with the values Simple and LCD. Simple
    darkens alternate lines; LCD darkens alternate columns as well,
    resulting in a grid pattern that resembles an LCD screen.
  • The separate Scanlines on/off option has been removed. Scanlines
    are now selected through the Screen Mode option.

Settings menu

  • The option list is now scrollable, so that all options remain
    accessible as their number increases. The SAVE, CANCEL and DEFAULT
    actions are shown at a fixed position.
  • The software version is displayed in the menu.

Menu and SD card

  • The default directory for roms is now /roms/GB. Roms may still be
    placed anywhere on the card and organised in subdirectories.
  • When leaving a subdirectory, the selection returns to the directory
    that was left instead of the first entry in the list.
  • If the last used directory no longer exists, the menu falls back to the
    root of the card.

Controller support

  • Shoulder buttons are now mapped on the DualShock 4, DualSense,
    Xbox / XInput controllers, the MantaPad and the Retro-bit
    Mega Drive Arcade Pad
    . The Square button is mapped on the
    PlayStation Classic controller, and L/R and ZL/ZR are mapped on the
    Wii Classic Controller. Additional keys were added to the USB
    keyboard mapping.
  • On XInput controllers, the left thumbstick also functions as a d-pad.
  • SNES controllers connected to the controller port on the board are
    now fully supported. NES controllers are detected automatically and are
    unaffected.

Fixes

Display

  • Corrected the alignment of the frame buffer, which could cause crashes
    and corrupted scanlines.
  • The HDMI output pins are configured with a higher drive strength and a
    faster slew rate, which improves signal quality on longer or
    lower-quality cables.

Stability

  • Fixed a crash when loading larger roms, caused by the rom data
    overwriting the area of flash memory in which the board parameters are
    stored.
  • Fixed a possible stack overflow when saving or loading...
Read more

v0.11

Choose a tag to compare

@github-actions github-actions released this 01 Aug 10:08
9d5a857

CHANGELOG

Adds support for pico-bootLoader, which allows several emulators to be installed on a single board and selected at power-on. Also adds a controller test screen, an LCD scanline type, wider controller support and a number of stability fixes.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.11 Release notes

This release adds support for pico-bootLoader, extends controller
support, introduces a controller test screen and an additional display
option, and contains a number of stability fixes.

Support for pico-bootLoader

An RP2350 board normally holds a single program. Running a different
emulator requires connecting the board to a computer, holding BOOTSEL
and copying a different .uf2 file onto it.

pico-bootLoader
removes that requirement. The loader is flashed onto the board once, the
applications are placed on the SD card, and from then on a menu is shown
at every power-on. The menu is operated with a USB game controller or a
USB keyboard and can be displayed either with cover artwork per
application or as plain text. Selecting an entry starts the
corresponding application; a reset or power cycle returns to the menu.

Besides this Game Boy / Game Boy Color emulator, the loader supports the
NES, Sega Genesis / Mega Drive, Sega Master System / Game Gear,
PC Engine and Philips Videopac / Odyssey² emulators, as well as a native
port of Doom.

Please note:

  • The binaries listed on this page are the standalone builds and are
    unchanged. Use one of these to run the Game Boy emulator on its own.
  • The builds intended for the loader are published in the pico-bootLoader
    repository, not here. See the pico-bootLoader releases
    page
    for
    those files and for the installation instructions.
  • When the emulator is started from the loader, the settings menu
    contains an additional entry, Return to emulator selection, which
    returns to the application menu. This entry is not present in
    standalone builds.

What's new

Controller Test screen

The settings menu contains a new entry, Controller Test. It displays
a controller layout on screen and highlights each button while it is
pressed, following the most recently used input source: the controller
ports on the board, USB controllers 1 and 2, and a Wii Classic
controller. A list below the layout shows the connection status of each
source and whether input has been received from it.

Hold SELECT + START for two seconds to leave the screen.

Display options

  • New Scanline Type option with the values Simple and LCD. Simple
    darkens alternate lines; LCD darkens alternate columns as well,
    resulting in a grid pattern that resembles an LCD screen.
  • The separate Scanlines on/off option has been removed. Scanlines
    are now selected through the Screen Mode option.

Settings menu

  • The option list is now scrollable, so that all options remain
    accessible as their number increases. The SAVE, CANCEL and DEFAULT
    actions are shown at a fixed position.
  • The software version is displayed in the menu.

Menu and SD card

  • The default directory for roms is now /roms/GB. Roms may still be
    placed anywhere on the card and organised in subdirectories.
  • When leaving a subdirectory, the selection returns to the directory
    that was left instead of the first entry in the list.
  • If the last used directory no longer exists, the menu falls back to the
    root of the card.

Controller support

  • Shoulder buttons are now mapped on the DualShock 4, DualSense,
    Xbox / XInput controllers, the MantaPad and the Retro-bit
    Mega Drive Arcade Pad
    . The Square button is mapped on the
    PlayStation Classic controller, and L/R and ZL/ZR are mapped on the
    Wii Classic Controller. Additional keys were added to the USB
    keyboard mapping.
  • On XInput controllers, the left thumbstick also functions as a d-pad.
  • SNES controllers connected to the controller port on the board are
    now fully supported. NES controllers are detected automatically and are
    unaffected.

Fixes

Display

  • Corrected the alignment of the frame buffer, which could cause crashes
    and corrupted scanlines.
  • The HDMI output pins are configured with a higher drive strength and a
    faster slew rate, which improves signal quality on longer or
    lower-quality cables.

Stability

  • Fixed a crash when loading larger roms, caused by the rom data
    overwriting the area of flash memory in which the board parameters are
    stored.
  • Fixed a possible stack overflow when saving or loading settings, which
    could cause a crash on boards with limited memory.
  • The SD card driver has been updated with a number of reliability
    improvements, including card detection after a reset.
  • Adafruit Fruit Jam and Adafruit Feather RP2350 only: fixed
    initialisation of the audio DAC failing when a NES- or
    SNES-Classic-Mini controller is connected at power-on. These
    controllers interfere with the I2C bus that is shared with the DAC. A
    controller connected at power-on is now also usable from the first menu
    screen.

Please note

  • Settings are reset to their default values the first time this version
    is run. The settings file has changed to accommodate the new options,
    so earlier settings files cannot be reused. Preferences have to be set
    again in the settings menu and saved.

previous changes

See HISTORY.md

Downloads by configuration

Binaries for each configuration are listed below. Binaries for Pico(2) also work for Pico(2)-w. No blinking led however on the -w boards.
For some configurations risc-v binaries are available. It is recommended however to use the arm binaries.

Standalone boards

Board Binary Readme
Adafruit Metro RP2350 PicoPeanutGB_AdafruitMetroRP2350_arm.uf2 Readme
Adafruit Fruit Jam PicoPeanutGB_AdafruitFruitJam_arm_piousb.uf2 Readme
Waveshare RP2350-PiZero PicoPeanutGB_WaveShareRP2350PiZero_arm_piousb.uf2 Readme 3-D Printed case

Breadboard

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme

PCB Pico2

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme

PCB pico_nesPCB_v2.1.zip

3D-printed case designs for PCB:

https://www.thingiverse.com/thing:6689537.
For the latest two player PCB 2.0, you need:

  • Top_v2.0_with_Bootsel_Button.stl. This allows for software upgrades without removing the cover. (*)
  • Base_v2.0.stl
  • Power_Switch.stl.
    (*) in case you don't want to access the bootsel button on the Pico, you can choose Top_v2.0.stl

PCB WS RP2350-Zero (PCB required)

Board Binary Readme
Waveshare RP2350-Zero PicoPeanutGB_WaveShareRP2350ZeroWithPCB_arm.uf2 [Readme](https://github.com/fhoedemakers/pico-infonesPlus/blob/main/README.md#pcb-with-waveshare-r...
Read more

v0.10

Choose a tag to compare

@github-actions github-actions released this 25 Apr 11:00
2aaee17

CHANGELOG

HSTX replaces PicoDVI on more boards, HSTX now has picture and sound over HDMI, and you can enter flashing mode from the settings menu.

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.10 Release notes

In this release PicoDVI is replaced with HSTX where possible, implements audio over HDMI using HSTX and adds a small convenience for flashing new firmware.

A huge thank you to @fliperama86 for the
excellent pico_hdmi driver that
made the new HDMI output possible, and for all the help along the way.

What's new

HSTX Video and sound over HDMI

On the technical side, several RP2350 board configurations have switched
from the PicoDVI software-driven video output to HSTX, the
RP2350's dedicated High-Speed Serial Transmit hardware (GPIO 12 – 19).
HSTX has been used for video on some boards before, but in this release
it also carries audio embedded in the HDMI stream for the first
time — that's the new capability HSTX gains here. (PicoDVI has always
been able to embed audio; HSTX is just catching up on that front while
offloading the work from the CPU to dedicated hardware.)

In practice, on these boards picture and sound now travel together over a
single HDMI cable — no separate audio jack needed:

  • Adafruit Fruit Jam
  • Murmulator M2

To enable audio over HDMI, make sure external audio is disabled in the
settings menu. If you'd rather keep using a separate audio output, you
can switch the HSTX boards to DVI mode (video only, no embedded
sound) from the settings menu. This setting automatically enables external audio in those configurations that support a DAC.

These RP2350 boards have also been switched from PicoDVI to HSTX. (audio and Video):

All other boards continue to use PicoDVI and work as before.

New options and conveniences

  • Enter flashing mode from the settings menu, so you can update the
    firmware without having to unplug the device and hold the BOOTSEL button.

Reliability

  • Resync watchdog for HSTX output. On the new HSTX output when set
    to video-only (DVI) mode, the monitor could occasionally lose the
    picture. The emulator now detects this and automatically restores the
    signal without needing a restart. (Not observed in full HDMI mode, but
    the same safety net is enabled there too just in case.)

previous changes

See HISTORY.md

Downloads by configuration

Binaries for each configuration are listed below. Binaries for Pico(2) also work for Pico(2)-w. No blinking led however on the -w boards.
For some configurations risc-v binaries are available. It is recommended however to use the arm binaries.

Standalone boards

Board Binary Readme
Adafruit Metro RP2350 PicoPeanutGB_AdafruitMetroRP2350_arm.uf2 Readme
Adafruit Fruit Jam PicoPeanutGB_AdafruitFruitJam_arm_piousb.uf2 Readme
Waveshare RP2350-PiZero PicoPeanutGB_WaveShareRP2350PiZero_arm_piousb.uf2 Readme 3-D Printed case

Breadboard

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme

PCB Pico2

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme

PCB pico_nesPCB_v2.1.zip

3D-printed case designs for PCB:

https://www.thingiverse.com/thing:6689537.
For the latest two player PCB 2.0, you need:

  • Top_v2.0_with_Bootsel_Button.stl. This allows for software upgrades without removing the cover. (*)
  • Base_v2.0.stl
  • Power_Switch.stl.
    (*) in case you don't want to access the bootsel button on the Pico, you can choose Top_v2.0.stl

PCB WS RP2350-Zero (PCB required)

Board Binary Readme
Waveshare RP2350-Zero PicoPeanutGB_WaveShareRP2350ZeroWithPCB_arm.uf2 Readme

PCB: Gerber_PicoNES_Mini_PCB_v2.0.zip

3D-printed case designs for PCB WS2XX0-Zero:
https://www.thingiverse.com/thing:7041536

PCB Waveshare RP2350-USBA with PCB

Binary

PCB: Gerber_PicoNES_Micro_v1.2.zip

Readme

Build guide

Pimoroni Pico DV

Board Binary Readme
Pico 2/Pico 2 w PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme

Note

On Pico W and Pico2 W, the CYW43 driver (used only for blinking the onboard LED) causes a DMA conflict with I2S audio on the Pimoroni Pico DV Demo Base, leading to emulator lock-ups. For now, no Pico W or Pico2 W binaries are provided; please use the Pico or Pico2 binaries instead.

Murmulator M1

For more info about the Murmulator see this website: https://murmulator.ru/ and #150

Board Binary
Pico 2/Pico 2 w PicoPeanutGB_MurmulatorM1_pico2_arm.uf2

Murmulator M2

For more info about the Murmulator see this website: https://murmulator.ru/ and #150

Board Binary
Pico/Pico w PicoPeanutGB_MurmulatorM2_arm.uf2

Other downloads

Extract the zip file to the...

Read more

v0.9

Choose a tag to compare

@github-actions github-actions released this 26 Dec 12:19
f3b553e

CHANGELOG

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.9 Release Notes

  • Added support for Murmulator M1 and M2 boards. @javavi #150
    • M1: RP2040/RP2350
    • M2: RP2350 only
      Note: These Murmulator M1 and M2 builds are untested. Please report any issues.
  • Fruit Jam only: Add volume controls to settings menu. Can also be changed in-game via (START + LEFT/RIGHT). Note that too high volume levels may cause distortion. (Ext speaker, advised 16 db max, internal advised 18 dB max). Latest metadata package includes a sample.wav file to test the volume level.
  • Updated GBMetaData.zip: Added sample.wav. This sample will be played when using the Fruit Jam volume control in the settings menu. Note when /soundrecorder.wav is found, this file will be played in stead.
  • Updated the menu to also list .wav audio files.
  • Added basic wav audio playback from within the menu. Press BUTTON2 or START to play the wav file. Tested with https://lonepeakmusic.itch.io/retro-midi-music-pack-1 The wav file must have the following specs:
    • 16/24 bit PCM wav files only. (24 bit files are downsampled to 16 bit)
    • 2ch stereo only.
    • Sample rate supported: 44100.
  • RP2350 with PSRAM only: Record about 30 seconds of audio by pressing START to pause the game and then START + BUTTON1. Audio is recorded to /soundrecorder.wav on the SD-card.

Fixes

  • Fruit Jam audio fixes.
  • Settings changed by in-game button combos are saved when exiting to menu.

previous changes

See HISTORY.md

Downloads by configuration

Binaries for each configuration are listed below. Binaries for Pico(2) also work for Pico(2)-w. No blinking led however on the -w boards.
For some configurations risc-v binaries are available. It is recommended however to use the arm binaries.

Standalone boards

Board Binary Readme
Adafruit Metro RP2350 PicoPeanutGB_AdafruitMetroRP2350_arm.uf2 Readme
Adafruit Fruit Jam PicoPeanutGB_AdafruitFruitJam_arm_piousb.uf2 Readme
Waveshare RP2350-PiZero PicoPeanutGB_WaveShareRP2350PiZero_arm_piousb.uf2 Readme 3-D Printed case

Breadboard

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme

PCB Pico2

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme

PCB pico_nesPCB_v2.1.zip

3D-printed case designs for PCB:

https://www.thingiverse.com/thing:6689537.
For the latest two player PCB 2.0, you need:

  • Top_v2.0_with_Bootsel_Button.stl. This allows for software upgrades without removing the cover. (*)
  • Base_v2.0.stl
  • Power_Switch.stl.
    (*) in case you don't want to access the bootsel button on the Pico, you can choose Top_v2.0.stl

PCB WS RP2350-Zero (PCB required)

Board Binary Readme
Waveshare RP2350-Zero PicoPeanutGB_WaveShareRP2350ZeroWithPCB_arm.uf2 Readme

PCB: Gerber_PicoNES_Mini_PCB_v2.0.zip

3D-printed case designs for PCB WS2XX0-Zero:
https://www.thingiverse.com/thing:7041536

PCB Waveshare RP2350-USBA with PCB

Binary

PCB: Gerber_PicoNES_Micro_v1.2.zip

Readme

Build guide

Pimoroni Pico DV

Board Binary Readme
Pico 2/Pico 2 w PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme

Note

On Pico W and Pico2 W, the CYW43 driver (used only for blinking the onboard LED) causes a DMA conflict with I2S audio on the Pimoroni Pico DV Demo Base, leading to emulator lock-ups. For now, no Pico W or Pico2 W binaries are provided; please use the Pico or Pico2 binaries instead.

Murmulator M1

For more info about the Murmulator see this website: https://murmulator.ru/ and #150

Board Binary
Pico 2/Pico 2 w PicoPeanutGB_MurmulatorM1_pico2_arm.uf2

Murmulator M2

For more info about the Murmulator see this website: https://murmulator.ru/ and #150

Board Binary
Pico/Pico w PicoPeanutGB_MurmulatorM2_arm.uf2

Other downloads

Extract the zip file to the root folder of the SD card. Select a game in the menu and press START to show more information and box art. Works for most official released games. Screensaver shows floating random cover art.

v0.8

Choose a tag to compare

@github-actions github-actions released this 21 Nov 15:38
703afef

CHANGELOG

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.8 Release Notes

  • Settings are saved to /settings_gb.dat instead of /settings.dat. This allows to have separate settings files for different emulators (e.g. pico-infonesPlus and pico-peanutGB etc.).
  • Added a settings menu.
    • Main menu: press SELECT to open; adjust options without using in-game button combos.
    • In-game: press SELECT+START to open; from here you can also quit from the game.
  • Switched to Fatfs R0.16.

Fixes

  • Show correct buttonlabels in menus.
  • removed wrappers for f_chdir en f_cwd, fixed in Fatfs R0.16. (there was a long standing issue with f_chdir and f_cwd not working with exFAT formatted SD cards.)

previous changes

See HISTORY.md

Downloads by configuration

Binaries for each configuration are listed below. Binaries for Pico(2) also work for Pico(2)-w. No blinking led however on the -w boards.
For some configurations risc-v binaries are available. It is recommended however to use the arm binaries.

Standalone boards

Board Binary Readme
Adafruit Metro RP2350 PicoPeanutGB_AdafruitMetroRP2350_arm.uf2 Readme
Adafruit Fruit Jam PicoPeanutGB_AdafruitFruitJam_arm_piousb.uf2 Readme
Waveshare RP2350-PiZero PicoPeanutGB_WaveShareRP2350PiZero_arm_piousb.uf2 Readme 3-D Printed case

Breadboard

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme

PCB Pico2

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme

PCB pico_nesPCB_v2.1.zip

3D-printed case designs for PCB:

https://www.thingiverse.com/thing:6689537.
For the latest two player PCB 2.0, you need:

  • Top_v2.0_with_Bootsel_Button.stl. This allows for software upgrades without removing the cover. (*)
  • Base_v2.0.stl
  • Power_Switch.stl.
    (*) in case you don't want to access the bootsel button on the Pico, you can choose Top_v2.0.stl

PCB WS RP2350-Zero (PCB required)

Board Binary Readme
Waveshare RP2350-Zero PicoPeanutGB_WaveShareRP2350ZeroWithPCB_arm.uf2 Readme

PCB: Gerber_PicoNES_Mini_PCB_v2.0.zip

3D-printed case designs for PCB WS2XX0-Zero:
https://www.thingiverse.com/thing:7041536

PCB Waveshare RP2350-USBA with PCB

Binary

PCB: Gerber_PicoNES_Micro_v1.2.zip

Readme

Build guide

Pimoroni Pico DV

Board Binary Readme
Pico 2/Pico 2 w PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme

Note

On Pico W and Pico2 W, the CYW43 driver (used only for blinking the onboard LED) causes a DMA conflict with I2S audio on the Pimoroni Pico DV Demo Base, leading to emulator lock-ups. For now, no Pico W or Pico2 W binaries are provided; please use the Pico or Pico2 binaries instead.

Other downloads

Extract the zip file to the root folder of the SD card. Select a game in the menu and press START to show more information and box art. Works for most official released games. Screensaver shows floating random cover art.

v0.7

Choose a tag to compare

@github-actions github-actions released this 23 Oct 03:29
6d15e3d

CHANGELOG

General Info

Binaries for each configuration and PCB design are at the end of this page.

See setup section in in Pico-infoNesPlus readme how to install and wire up

v0.7 Release Notes

  • Game Boy Color games can be played now.

  • In-game hotkeys are now consistent with the other emulators.

  • Themed borders/bezels are shown in-game. For this you need the latest metadata pack from the releases section. Download and unzip it's contents to the root of the SD card.

  • Support for Retro-bit 8 button Genesis-USB.

  • Added support for Adafruit Fruit Jam:

    • Uses HSTX for video output.
    • Audio is not supported over HSTX — connect speakers via the audio jack or the 4–8 Ω speaker connector.
    • Audio is simultaneousy played through speaker and jack. Speaker audio can be muted with Button 1.
    • Controller options:
    • Scanlines can be toggled with SELECT + UP.
    • NeoPixel leds act as a VU meter. Can be toggled on or of via Button2 on the Fruit Jam, or SELECT + RIGHT on the controller.
  • Added support for Waveshare RP2350-PiZero:

    • Gamepad must be connected via the PIO USB port.
    • The built-in USB port is now dedicated to power and firmware flashing, removing the need for a USB-Y cable.
    • Optional: when you solder the optional PSRAM chip on the board, the emulator will make use of it. Roms will be loaded much faster using PSRAM.
  • Added support for Waveshare RP2350-USBA with PCB. More info and build guide at: https://www.instructables.com/PicoNES-RaspberryPi-Pico-Based-NES-Emulator/

  • Added support for Spotpear HDMI board.

  • Framebuffer implemented in SRAM. This eliminates the red flicker during slow operations, such as SD card I/O.

  • Cover art and metadata support:

    • Download pack here.
    • Extract the zip contents to the root of the SD card.
    • In the menu:
      • Highlight a game and press START → show cover art and metadata.
      • Press SELECT → show full game description.
      • Press B → return to menu.
      • Press START or A → start the game.
  • Screensaver

    • Block screensaver, which is shown when no metadata is available, is replaced by static floating image.

Huge thanks to Gavin Knight for providing the metadata and images as well as testing the different builds!

v0.6 Release notes (this is a re-release)

  • Releases now built with SDK 2.1.1
  • Support added for Adafruit Metro RP2350 board. See README for more info. No RISCV support yet.
  • Switched to SD card driver pico_fatfs from https://github.com/elehobica/pico_fatfs. This is required for the Adafruit Metro RP2350. Thanks to elehobica for helping making it work for the Pimoroni Pico DV Demo board.
  • Besides FAT32, SD cards can now also be formatted as exFAT.
  • Nes controller PIO code updated by @ManCloud. This fixes the NES controller issues on the Waveshare RP2040 - PiZero board. #8
  • Board configs are moved to pico_shared.

Fixes

  • Fixed Pico 2 W: Led blinking causes screen flicker and ioctl timeouts #2. Solved with in SDK 2.1.1
  • WII classic controller: i2c bus instance (i2c0 / i2c1) not hardcoded anymore but configurable via CMakeLists.txt.

Downloads by configuration

Binaries for each configuration are listed below. Binaries for Pico(2) also work for Pico(2)-w. No blinking led however on the -w boards.
For some configurations risc-v binaries are available. It is recommended however to use the arm binaries.

Standalone boards

Board Binary Readme
Adafruit Metro RP2350 PicoPeanutGB_AdafruitMetroRP2350_arm.uf2 Readme
Adafruit Fruit Jam PicoPeanutGB_AdafruitFruitJam_arm_piousb.uf2 Readme
Waveshare RP2350-PiZero PicoPeanutGB_WaveShareRP2350PiZero_arm_piousb.uf2 Readme 3-D Printed case

Breadboard

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme

PCB Pico2

Board Binary Readme
Pico 2 PicoPeanutGB_AdafruitDVISD_pico2_arm.uf2 Readme
Pico 2 W PicoPeanutGB_AdafruitDVISD_pico2_w_arm.uf2 Readme

PCB pico_nesPCB_v2.1.zip

3D-printed case designs for PCB:

https://www.thingiverse.com/thing:6689537.
For the latest two player PCB 2.0, you need:

  • Top_v2.0_with_Bootsel_Button.stl. This allows for software upgrades without removing the cover. (*)
  • Base_v2.0.stl
  • Power_Switch.stl.
    (*) in case you don't want to access the bootsel button on the Pico, you can choose Top_v2.0.stl

PCB WS RP2350-Zero (PCB required)

Board Binary Readme
Waveshare RP2350-Zero PicoPeanutGB_WaveShareRP2350ZeroWithPCB_arm.uf2 Readme

PCB: Gerber_PicoNES_Mini_PCB_v2.0.zip

3D-printed case designs for PCB WS2XX0-Zero:
https://www.thingiverse.com/thing:7041536

PCB Waveshare RP2350-USBA with PCB

Binary

PCB: Gerber_PicoNES_Micro_v1.2.zip

Readme

Build guide

Pimoroni Pico DV

Board Binary Readme
Pico 2/Pico 2 w PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme
Pimoroni Pico Plus 2 PicoPeanutGB_PimoroniDVI_pico2_arm.uf2 Readme

Note

On Pico W and Pico2 W, the CYW43 driver (used only for blinking the onboard LED) causes a DMA conflict with I2S audio on the Pimoroni Pico DV Demo Base, leading to emulator lock-ups. For now, no Pico W or Pico2 W binaries are provided; please use the Pico or Pico2 binaries instead.

Other d...

Read more