Jubilant Potato

A gamepad-first ROM downloader for Linux handhelds.

Browse your RomM server, a network folder, archive.org or itch.io right on the handheld and get games straight into the right ROM folder. No PC, no SD-card shuffling.

muOSROCKNIXAnbernic stock Linuxone 8 MB binary
Where games come from

Five kinds of sources, all from the couch

Add them on the device with “Add source”. Servers on your network are found automatically.

Server

RomM

Your self-hosted game library. Found on the network, paired with a QR code, and no password typed on the handheld.

Share

Network folder

SMB shares on a NAS, Windows or macOS. Browse to the folder that has your system folders.

Web

Web folder

Any directory listing: nginx, Caddy, Apache, or just python -m http.server.

Archive

archive.org

Search collections by title. The systems inside an item are detected for you.

Homebrew

itch.io

Free homebrew for Game Boy, GBA, NES, Mega Drive and more, plus the games you own.

Made for a D-pad

Everything a handheld needs, nothing it doesn't

Knows your firmware

Detects muOS, ROCKNIX or stock Linux and saves each game into that firmware's folder for its system: gba, GBA, SFC… It reuses the folders you already have.

One row per game

Regional releases, revisions, betas and hacks fold into one entry. A downloads the best version for your language and region; X shows them all.

QR code sign-in

RomM and itch.io accounts are linked by scanning a code with your phone. You never type a password with a D-pad.

Downloads that survive sleep

A download queue that resumes where it stopped, checks free space first, and unpacks disc images and DS games automatically.

Two screens, two jobs

On dual-screen devices like the RG DS, the bottom screen shows the potato and your download progress.

Any gamepad

If buttons feel off, the built-in button setup asks for each one and remembers your pad. It also works on devices SDL has never heard of.

Updates itself

New versions show up right in the app. One button downloads, verifies and installs them. The SD card stays in the device.

Open source

GPL-3.0, one small binary, no telemetry in the app. Contributions and device reports are welcome on GitHub.

Speaks your language

English, Russian, Ukrainian, Belarusian, Polish, Spanish, Portuguese and Chinese. The app follows your firmware's language and has an on-screen keyboard for search and addresses.

Compatibility

Devices and firmware

Any aarch64 handheld running one of these firmwares should work. The app needs only the firmware's own SDL2.

DeviceStock LinuxmuOSROCKNIX
Anbernic RG34XX / RG34XXSPAllwinner H700✓✓✓ tested
Anbernic RG DSRK3568, two screens✓ testednot supported by muOS✓
Other H700 / RK3566 handheldslikelylikelylikely
Install

Three steps, one SD card

Download the package for your firmware and copy it to the SD card.

JubilantPotato-muos.muxapp
  1. Copy JubilantPotato-muos.muxapp to the ARCHIVE folder on the SD card.
  2. Install it with Archive Manager.
  3. Open Applications → Jubilant Potato.

All versions and release notes are on GitHub Releases. Or build it yourself (Docker builds the ARM binary):

git clone https://github.com/meerhelm/jubilant-potato
cd jubilant-potato
make package      # → dist/JubilantPotato-{muos.muxapp,rocknix.zip,stock.zip}
Bonus

Tame a messy library

Thousands of files with odd names and a dozen versions of each game? The repo includes a helper that turns them into a clean RomM library.

  1. VerifyFiles are checked against No-Intro and Redump DATs by hash with Igir and renamed canonically.
  2. SortGames are filed into RomM's folders by platform. Anything unknown is listed in a report.
  3. PlayScan in RomM. The handheld groups versions and picks the right one for you.

Keep the potato jubilant

Jubilant Potato is free and open source. A coffee pays for test devices and support for more handhelds. Thank you!

Buy me a coffee
Play fair. Jubilant Potato doesn't ship or link to any games. Use it with dumps of games you own, homebrew, and free releases, and support the developers who make them.