Releases
0.22.0
Compare
Sorry, something went wrong.
No results found
Features
Added per-system settings, with automatic fallback to the global value
Added -n/--system flag to config to scope operations to a specific system (supports % globs)
Added per-system settings to the web UI, from a dropdown on each system entry
Added romfile download support to the web UI
Added an About modal to the web UI, showing version, dependencies and statistics
Added DAT import to the web UI
Added Redump DAT download and update to the web UI
Added notification history to the web UI
Added -u/--update flag to import-dats to only import DATs for systems already in the database
Improved ZIP support in import-dats to find .dat files in subdirectories (supports daily dat-o-matic packs)
Added an optional native desktop app built with Tauri, sharing the CLI's database and settings
Added an optional nod feature to handle RVZ and WBFS natively instead of shelling out to dolphin-tool and wit
Added an optional sevenz feature to read archives and write ZIP natively instead of spawning 7-Zip
Added real progress bars to RVZ and WBFS conversions with the nod feature
Changes
Rewrote the web UI in Rust using Leptos, replacing the Svelte/Flowbite frontend
Rebuilt the web UI on Web Awesome components
Dropped Tailwind CSS, the UI is now styled by Web Awesome and a small stylesheet
Made the web UI's three columns resizable, positions are remembered across visits
Restored the per-field descriptions in the settings dialog
Replaced the SKIP_PNPM build environment variable with SKIP_TRUNK
Replaced the cdfs git dependency with a native ISO 9660 reader vendored from opticaldiscs
Improvements
Sizes and notification times in the web UI now follow the reader's locale
Notifications in the web UI now stack instead of replacing one another
Checking an RVZ no longer extracts it to a temporary ISO with the nod feature
Optimized dependencies in the dev profile, debug builds and the test suite are much faster
Overhauled web UI colors for improved readability in both light and dark themes
Fixed statistics table header color in light mode to match the systems and games table headers
Overhauled CLI output for a cleaner, more consistent terminal experience
Progress bars and log messages no longer overlap or corrupt each other
Standardized messaging across all commands with clear icons and color coding
Improved check-roms output with per-system pass/fail summary
Revamped statistics card in the web UI with a tiled layout
Revamped settings modal in the web UI with a two-column layout for easier navigation
Cleaned up the entire codebase to be clippy-clean (~900 warnings)
Modernized idioms: std::sync::LazyLock over lazy_static, no more extern crate
Simplified the main() subcommand dispatch using matches.subcommand() destructuring
Removed dead code, test-only helpers are now gated behind #[cfg(test)]
Migrated error handling from simple-error to anyhow, errors now carry a full context chain
Extracted the hashing and comparison helpers out of CommonRomfile
Deduplicated the partition-by-extension blocks in convert-roms and export-roms (~560 lines)
Unified convert-roms/export-roms CSO and ZSO handling behind a shared decoding layer (~440 lines)
Moved convert-roms/export-roms NSZ, RVZ and WBFS handling onto the shared decoding layer
Simplified convert-roms CHD handling
Simplified convert-roms back-to-original handling
Extracted CUE/BIN and CHD parsing helpers into transcode.rs
Added a run_tool helper that centralizes external tool invocation
Fixes
Fixed RVZ_COMPRESSION_ALGORITHM never having worked when set to bzip2, it was spelled bzip
Fixed the notification list in the web UI not opening, it was clipped by the navbar
Fixed the notification count badge sitting off the bell in the web UI
Fixed the system actions menu in the web UI being clipped by its pane, and given proper alignment and hover
Fixed the statistics card shifting up in the web UI whenever a modal opened
Fixed the server not shutting down cleanly on Ctrl+C when SSE clients were connected
Fixed convert-roms -f rvz --recompress leaving a stray intermediate .iso
Fixed convert-roms -f chd failing on standalone RIFF (LaserDisc) images
Fixed convert-roms -f original and export-roms -f original mispartitioning Switch files
You can’t perform that action at this time.