Zaparoo Core v2.7.0 released
Zaparoo Core v2.7.0 is now available! This is a massive release with some fundamental improvements to how Zaparoo works. Title IDs are now the default way to identify games, making your tokens portable between devices and platforms. We've also added a powerful tags system, completely overhauled the media database for better performance, added playtime limits for parental controls, full Linux desktop support, and a ton of platform-specific improvements across MiSTer, Windows, and Batocera.
Before I dive in, huge thanks to PigSaint whose GameDatabase project was a big inspiration for the tags system, and BossRighteous who continues to contribute great ideas to the project.
The highlights:
- Title IDs are now the default - your tokens work across all your Zaparoo devices
- Tags let you filter by region, language, and more when you have multiple versions
- Playtime limits for parental controls
- Linux desktop is now a first-class platform
- Home automation via MQTT and external drive readers
Your existing cards will keep working - no need to rewrite them. After upgrading, you'll need to manually trigger a media database update to get all the new features working.
The Zaparoo App is still being updated to fully support this release. The current published app will work but won't have the new features yet - card writing uses full paths instead of title IDs, and search is capped at 100 results. The Web UI bundled with this release has most of the new stuff working. A full app update plus a Core hotfix with the latest Web UI will be out in the next couple weeks.
Download
Title IDs - The New Default
The biggest change in this release is how Zaparoo identifies games. Instead of writing file paths to your tokens, the default format is now title IDs like @Genesis/Sonic Spinball or @SNES/Super Mario World.
Old way: /media/fat/games/Genesis/Sonic Spinball.bin
New way: @Genesis/Sonic Spinball
This change means your tokens will now work between different Zaparoo devices and platforms! Write a card on your MiSTer, scan it on your Windows PC, and it'll launch the same game. The system automatically matches the title to whatever media you have locally.
The old path-based format still works, so your existing cards won't break. But going forward, title IDs are the way.
Writing title IDs to cards is currently only supported in the bundled Web UI. The published app still writes full file paths.
Tags System
Tags are the other half of the new game matching system. As media is indexed, Zaparoo now extracts and assigns tags from filenames (and eventually scraped metadata). You can use these tags to filter searches and resolve conflicts.
For example: @SNES/Super Mario World (region:eu) (lang:de) will specifically launch the European German version if you have multiple versions of the game. Tags currently include language, region, translation status, release year, ROM quality, and game version info.
Tag filtering in search is currently only available in the bundled Web UI.
Media Database Improvements
The media database got some serious upgrades:
- System-specific updates: You can now update just one system instead of your entire library, making updates much faster when you only changed a few games (Web UI only)
- Cancelable updates: Stop an in-progress update whenever you want (Web UI only)
- Crash-resistant: Unplug mid-update? No problem. Core picks up right where it left off next time
- Background optimization: The main update finishes faster, with optimization happening in the background so you can start searching and launching sooner
- Blazing fast search: Searching is now basically instant, even with tons of filters applied
- Pagination: No more hard limit of 250 results. The Web UI now supports infinite scrolling through search results (published app still capped at 100)
Platform Updates
MiSTer
MiSTer gets a lot of love this release. The big ones: video playback has been completely overhauled using nextfvp (download it here), and ScummVM is now fully supported via the bbond007 script. Neo Geo Pocket/Color are now working, Atari 5200 got some missing file extensions, and you can view and download logs directly from the TUI.
Linux Desktop
This is a new first-class platform with proper installer, desktop integration, systemd service support, hardware setup utilities, and Steam launcher integration. It'll serve as the foundation for improving SteamOS and adding ChimeraOS support in future releases.
Windows
The LaunchBox integration got a complete rewrite with a new plugin system for more reliable launching and active game tracking. RetroBat now works correctly, and Steam properly detects non-Steam games and shortcuts.
Batocera
Installation is now much easier with a new pacman package and a "Ports" script to open the TUI directly from EmulationStation. There's also background active media detection, improved Kodi launching, and corrected file extensions for 22 systems. We're working with the Batocera team to get Zaparoo officially included in the Content Downloader.
Playtime Limits & Parental Controls
A new time management system lets you set daily playtime limits, track gaming sessions, and automatically enforce limits with grace period notifications. Perfect for parents who want to manage screen time.
Playtime limit configuration is currently only available in the bundled Web UI. You can also manually configure limits in the config file.
MQTT & External Drive Reader Support
Two really cool new reader types:
- MQTT reader: Connect to an MQTT broker (like Home Assistant) and send ZapScript commands directly to Zaparoo
- External drive reader: Treat USB sticks and SD cards as tokens! Core auto-detects when a drive is mounted and runs the ZapScript in a
zaparoo.txtfile on it
And Also...
Readers: RS232 barcode scanners are now supported, and if the new NFC driver isn't working for you, there's a legacy driver option using legacypn532uart and legacypn532i2c.
Cross-platform stuff: Keyboard combos now work on all platforms instead of just MiSTer. Neo Geo AES and MVS are now separate platforms. Scan audio feedback works everywhere and reports ZapScript errors. URL launching works on Windows and Linux.
Config & integration: There's a new notification publisher for pushing API notifications to external services. API security got api_listen for binding to specific interfaces and allowed_ips for IP allowlists. You can set custom audio files for success/fail sounds. And .zaparooignore files let you exclude directories from media scanning.
ZapScript: launch.random is way faster now, especially for huge libraries. launch.title is the new explicit command for title ID launching. The ?system=<id> argument works for local file paths. And **playlist.open with no arguments reloads the current playlist.
Bug Fixes
- Fixed hold mode quitting when a reader disconnects with an error
- Fixed NFC tags immediately launching after writing (now waits for a real re-scan)
- Fixed I2C reader support with the new NFC driver
- Fixed Artist and Album launching for Kodi
- Scan history in database now auto-cleans old entries
- MiSTer service auto-start issues resolved with improved startup reliability
This one took a while. The title ID and tags systems required some pretty fundamental rewrites to how the media database works, and getting it all to feel fast on MiSTer hardware was its own challenge. But I think the result is worth it - tokens that just work everywhere has been a goal since the beginning.
Next up: the App update, giving SteamOS some much needed love and a new metadata scraping system!
As always, feedback and bug reports are welcome on our Discord or GitHub.
