Zaparoo Launcher
Zaparoo Launcher is a TV and controller-friendly frontend for browsing and launching your Zaparoo Core media library, currently targeted at MiSTer FPGA. It runs directly on the MiSTer display and talks to Core as its backend.
Launcher is in active development. It's functional and usable today, but expect some rough edges and missing features. Join the Zaparoo Discord if you'd like to give feedback or report issues.
Why use Launcher?
Zaparoo has mostly been controlled through physical tokens, the Zaparoo App, the Web UI, or the TUI. Those are still the main ways to manage Zaparoo, and Launcher does not replace any of them. Launcher takes Core's media library system and puts it on the host's display.
It also opens up some things that are hard to do with the stock MiSTer menu alone. Cover art can be an accessibility improvement, and having a Zaparoo-controlled UI gives the project room to explore features like translations and text-to-speech later. Launcher is still a thin client on top of Core, like the app, so the main Zaparoo behavior stays in one backend instead of turning into a separate launcher stack.
If you have used frontends like EmulationStation, the general idea will feel familiar: browse artwork from a controller-friendly interface, then launch into the game.
What works today
The current release lets you:
- Browse categories, systems, and games
- View scraped artwork while browsing
- Launch games through Core
- Add and browse favorites
- Browse recently played media
- Write selected games to NFC tokens
On first run, Launcher connects to Core locally. If your media database is empty, it will prompt you to scan your games before browsing. You can also update the media database later from the Settings screen.
Large libraries are a major design target. The UI lazy-loads data where possible, and Core has had a lot of work put into search speed. Search, filtering, and possibly playlists or collections are planned for making big libraries manageable. Page skipping is in the current controls, and letter filtering exists in development but is not hooked up in the UI yet.
Launcher uses Core as the backend, so anything Core can already launch is the starting point. That includes things like 0MHz MGL files. Manuals are not supported right now, but they seem like a good fit. Scripts are also not in the beta flow yet, but you can drop back to the stock MiSTer OSD when you need it.
CRT output has been confirmed to work, but it needs more UI tuning before it is ready in the beta. Readability at 240p, 480i, 576i, and 4:3 layouts needs specific testing and design tweaks.
Install on MiSTer
Launcher currently comes as a manually installed set of three files:
- A development version of Zaparoo Core
- A custom fork of MiSTer Main
- The Launcher itself
Download the release ZIP from GitHub Releases.
Install by copying the folders in the ZIP file to the root of your SD card.
Then edit your MiSTer.ini file to add these two lines under the [MiSTer] section:
main=zaparoo/MiSTer_Zaparoo
alt_launcher=zaparoo/launcher
Restart your MiSTer and you should see the Launcher UI immediately.
If you want to disable or uninstall it, remove those two lines from MiSTer.ini to go back to stock. You can also press B or Escape on the main menu to quit Launcher and return to the OSD. Reboot from the OSD to relaunch Launcher.
Scraping metadata
This part is new for MiSTer. If you want cover art or other images in Launcher, there is some setup to do first. Core now has initial support for scrapers, starting with the gamelist.xml files used by EmulationStation. It's a stopgap, but it means you can reuse existing metadata if you have a shared collection between devices and use existing scraper tools on a desktop.
We've confirmed this works using the Skraper tool along with a ScreenScraper account. Before you run a scrape, you must set it to RecalBox mode so that it outputs the correct gamelist.xml files. Set the default image style to whatever you prefer. Skraper supports the game folder names that MiSTer uses, so you can point it directly at your SD card or a NAS share.
Once you've finished scraping, open the Launcher Settings page and run Scrape metadata. Launcher will process the metadata in the background and reconcile it against Core's own database. Once it's done, you should start seeing images in the game browser.
Controls
The default keyboard controls are:
| Action | Default keys |
|---|---|
| Move | Arrow keys |
| Select | Enter |
| Back | Escape |
| Options menu | Tab |
| Previous page | PageUp |
| Next page | PageDown |
MiSTer will automatically map your controller buttons to these keys.
Credits
A big thank you to Andrea Bogazzi, BossRighteous, and Tim Wilsie for creating Zaparoo Launcher with Wizzo.
Source and license
The launcher source code is available under the PolyForm Noncommercial License 1.0.0. Non-commercial use is allowed under that license. For commercial licensing, contact legal@zaparoo.org.