Zaparoo Core v2.10.0 released
Zaparoo Core v2.10.0 is now available. Playback controls for Kodi, significantly faster indexing and search, new ZapScript commands, and plenty of fixes.
The highlights:
- Playback controls for Kodi and RetroArch
- Performance improvements — faster indexing and search
- New ZapScript commands: screenshot and MiSTer wallpaper
Download
Playback Controls
New control system that lets you send actions like pause, save state, and fast forward to whatever's currently running. Launcher support will expand over time.
Kodi is the first launcher with native controls: toggle_pause, stop, fast_forward, rewind, next, and previous. RetroArch on EmuDeck (SteamOS) also has initial support via keyboard hotkeys.
Use the **control ZapScript command or the media.control API method:
**control:toggle_pause
Custom launchers can define their own controls too, mapping actions to ZapScript commands:
[[launchers.custom]]
id = "MyEmulator"
system = "SNES"
execute = "myemu \"[[media_path]]\""
[launchers.custom.controls]
save_state = "**input.keyboard:{f5}"
toggle_pause = "**input.keyboard:p"
Performance Improvements
- Media indexing is ~25% faster thanks to database write optimizations and smarter slug processing
- Search and title lookups use a new in-memory cache that makes them basically instant in most cases, even on large libraries
New ZapScript Commands
**screenshot — Capture the current display and save it to disk. Currently supported on MiSTer, with support for other platforms planned.
**mister.wallpaper — Set or unset the MiSTer main menu wallpaper from a tag scan. Point it at an image in /media/fat/wallpapers/ and the menu refreshes immediately. Without an argument, it unsets the current wallpaper and picks randomly.
**mister.wallpaper:cool.png
Other Changes
- New MiSTer cores — 3DO (
.iso,.cue) and Jaguar CD (.cdi) - Ignore on connect — new config option to suppress the first token read from each newly-connected reader. Stops accidental launches from cards left sitting on readers
- Self-update infrastructure — built-in update checking and one-click apply with graceful restart. This will be activated in a future app update.
- New API methods —
media.browse(directory-style library navigation),media.historyandmedia.history.top(play history and most-played),media.lookup(title resolution),input.keyboardandinput.gamepad(remote input),screenshot,update.check/update.apply, andsettings.auth.claim(secure credential flow for app authentication). See the API docs for details. - Tag disambiguation — ZapScript title commands now only include tags (year, players) when they're needed to distinguish between game variants
- Relative paths in
media.searchandmedia.lookupAPI responses usesystemId/pathformat instead of absolute filesystem paths media.stoppednotification now includes full metadata (system, media name, path, launcher, elapsed time)media.activeresponse includeslauncherControlsfield listing available control actions- PN532 serial port caching — failed ports are remembered and skipped until the device changes, reducing log noise and detection delay
- Media type fallbacks — searching for Movie also finds Video content, MusicTrack finds Audio, etc.
- Batocera custom launcher enrichment — custom launchers inherit extensions and launch commands from EmulationStation overlay configs automatically
- Batocera 3DS extensions — added
.squashfsand.zccisupport - First-run error reporting prompt in the TUI for opt-in Sentry reporting
Bug Fixes
- Fixed media scanner hanging indefinitely on stale NFS/SMB network mounts
- Fixed long NDEF records (>255 bytes) being rejected during tag parsing
- Fixed Windows path separators not being converted for launcher executables
- Fixed double-slash path prefix in
launch.randomwith absolute paths - Fixed audio playback crashes on MiSTer from concurrent ALSA device access
- Fixed tag matching penalizing results with missing tag types
- Fixed
launch.randomfailing for paths not yet in the media database (now falls back to filesystem) - Fixed MiSTer CURRENTPATH/FULLPATH not being written for arcade
.mralaunches (fixes marquee/bezel tools) - Fixed gamepad
vkey incorrectly mapped to DpadUp instead of DpadDown - Removed backslash escaping from shell splitting — Windows paths no longer need double backslashes. Use quoting instead:
"C:\Program Files\app.exe"
As always, feedback and bug reports are welcome on our Discord or GitHub.
