Features
- Added ROM sorting to the web UI, for a single system or all of them at once
- Added an integrity check to the web UI, for a single system or all of them at once
- Added a purge dialog to the web UI, for missing, orphan, trashed, and foreign ROM files
- Added ROM format conversion to the web UI, for a single system
- Added a multiple-matches option (first match or skip) to the web UI's import dialog
- Added patch file import to the web UI, for a single ROM
- Added PlayStation 3 IRD import and purge to the web UI
- Added M3U playlist generation to the web UI, for every system at once
- Added the
PREFER_FORMATper-system setting: ROMs imported into a system are automatically converted to its preferred format,import-roms --as-isskips the conversion convert-romsnow accepts--saveto persist the destination format as the processed systems'PREFER_FORMAT- Added a Prefer Format dropdown to the web UI's per-system settings dialog
Changes
- NSP/NSZ support now comes from the nsz-rs crate instead of the external
nsztool, with a progress bar during (de)compression prod.keysis now only needed to compress NSPs containing NCAs, andinfosays when it is missing- Moved the nsz-rs and xso-rs crates into this repository under
crates/; their CLIs (nszrs,xsors) ship in the release archives - GDI conversion now comes from the new gdi-rs crate, a port of gdidrop, with a progress bar; its CLI (
gdirs) ships in the release archives too - CSO/ZSO support now comes from the xso-rs crate instead of the external
maxcsotool, with a progress bar - CUE/BIN to ISO conversion is now built in, ported from bchunk, which is no longer needed; a BIN too short for the track its CUE describes is an error rather than a short ISO
- Games with one bin per track now export to ISO, keeping the first track
- CSO conversions now use 8 KiB blocks, 16 KiB past 2 GiB, for files around 4% smaller
- ZSO conversions stay at 2 KiB blocks, the only size Open PS2 Loader reads
sort-romsnow accepts--systemto sort named systems without an interactive promptcheck-romsnow accepts--systemto check named systems without an interactive promptimport-patchesnow accepts--rom <ID>to select the target ROM by id, skipping the promptsimport-irdsandpurge-irdsnow accept--system <NAME>to run unattended;import-irdsthen matches each IRD to the one game of the same title, and refuses it when there is none or several
Improvements
- Only show the IRD import and purge actions in the web UI's system menu for PlayStation 3 systems
- Added a leading glyph to the web UI's system, game, and ROM rows, so the completion state is legible without colour
- Grouped the purge dialog's options by risk, with a warning style on the file-deleting ones
- Applied the orange brand colour to the web UI and set the page title to oxyROMon
- Refined web UI copy and accessibility: a labelled games filter, clearer import and settings wording, and a page description
- Narrowed the web UI's default pane split, giving the games list more room
- Grouped the web UI's actions by what they act on: Upload (ROMs, DATs) and Download (DATs) menus in the navbar, a menu in the Systems panel's header for what runs on every system (check, sort, playlists, purge), and each system's own menu as before; a menu gives way to a spinner until its action has finished on the server, so actions cannot be stacked
- Added a light-mode variant of the logo, so it stays legible on the white navbar and About dialog
- Added a per-system completion count to the web UI's system list (e.g. "482/500")
- Let every file picker in the web UI take a dropped file, the IRD and patch dialogs' included
- Made the web UI's games list a WAI-ARIA listbox, navigable with the arrow, Home, End, Enter, and Space keys
Fixes
- Fixed
import-patchespanicking on every CLI invocation, the patch file list was read from an undeclared argument name - Fixed
xdelta3patching swapping the output and patch arguments, overwriting the patch instead of producing the patched ROM - Fixed the web UI's sort, check, convert, and purge-system actions panicking on an unknown
system_id - Fixed the web UI's dialogs closing as soon as a value was picked from a dropdown inside them
- Fixed the web UI not showing what an import changed: ROM and DAT imports now refresh the selected system's games and ROMs as well as the systems list, rows whose data changed are redrawn, and actions such as sort no longer lose the selected game when they refresh
- Fixed web UI background actions hanging forever when a database connection could not be acquired; they now emit an SSE error
- Fixed the web UI's settings and action mutations panicking when a database connection could not be acquired
- Fixed overlapping system name patterns (e.g.
PlayStationandPlayStation 3) causing the same system to be sorted, checked, or converted twice - Fixed the web UI's statistics cards being cut off at the right edge at some window widths
- Fixed GDI exports into the CUE/BIN's own directory overwriting its data tracks
- Fixed GDI conversion of a CUE with several tracks in one bin, which wrote the whole bin for every track
- Fixed GDI conversion placing a track at sector 45000 on comments that merely contain
HIGH-DENSITY AREA, unlike gdidrop