- Add a new
wanted
game state in the web UI, replacesincomplete
which now means games with some (but not all) its ROMs - Fix a regression when importing multi-track CHDs which contain tracks identical to other games
- Fix parsing archives containing files with
=
signs in their names - Fix several issues affecting the import of MAME DATs
- Fix regressions in
rebuild-roms
- Add a
-f
flag torebuild-roms
to force rebuilding with the same strategy
- Fix an import issue with Progetto MAME DATs
- Leave arcade CHDs untouched in
convert-roms
andrebuild-roms
- Fix a regression preventing directory imports
- Fix a crash in
sort-roms
when ROMs have no extension
- Dump
isoinfo
in favor of the nativecdfs
crate to parse IRD ISO headers - Add a
-x
flag toimport-roms
to extract top-level archives before importing their contents - Allow ordering CHD compression algorithms
- Use the new
splitbin
feature in chdman 0.265+, fixes Dreamcast CHD imports - Add a new
import-patches
subcommand - Add a new
create-dats
subcommand - Fix special chars handling in 7z
- Make the ROM directory portable by storing relative paths internally
- Optimize the database upon exiting
- Add support for CHD HD and LD formats
- Allow importing multi-track CHDs without a CUE file (requires chdman 0.265+)
- Use mimetype infering using file magic where possible
- Add support for
disk
tags in the MAME CHDs DAT - Apply
GROUP_SUBSYSTEMS
to custom system names as well - Autodetect MAME DATs as arcade and remove the
-a
flag in theimport-dats
subcommand - Iterate over all hash algorithms when matching and checking roms in all subcommands
- Remove the
HASH_ALGORITHM
setting - Add support DATs with no size information such as the MAME CHD DATs
- Parse CHDs data SHA1 and match against it first where applicable when importing CHDs
- Support importing MAME CHDs based on the CHD SHA1 contained in the DAT (aka not the actual data SHA1)
- Add a
-n
flag toimport-dats
to override the system name - Enhance the rom matching algorithm in
import-roms
to reduce prompts when multiple matches are found - Use
createcd/createdvd
andextractcd/extractdvd
appropriately for CDs and DVDs - Add a
-r
flag toconvert-roms
to recompress files that already match the target format - Add configuration options for chdman
- Add support for CHD parents, enable via the
CHD_PARENTS
settings - Add a
-u
flag toconfig
to unset nullable settings - Add a
-p
flag toconvert-roms
to prompt for an optional CHD parent when converting to CHD - Change
-s
in various subcommands to accept SQL wildcards - Change
-n
to-g
(for game) in various subcommands and make it accept SQL wildcards - Change
-g
to-o
(for one g one r) in various subcommands - Add an option to scrub RVZ in
export-roms
- Fix reimporting an orphan archive containing multiple files or a CHD ROM in
import-dats
anddownload-dats
- Sort CHD parent prompt by distance
- Fix converting archives to another archive format
- Fix an issue where converting an archive back to original would only delete the archive
- Support
7zz
and7z
on all systems, in that order - Improve the IRD game matching prompt when the IRD game name is all caps and the Redump name is not
- Bump minimum required chdman version to 0.264 for dreamcast
- Fix dreamcast system being skipped even with the correct chdman version
- Replace
async-std
withtokio
- Add an
info
subcommand to display basic system and dependencies information - Only generate playlists for complete sets of games
- Exit gracefully in most places when missing an external program
- Use
7zz
instead of7z
on mac - Don't silently delete files in
check-roms
- Add support for ZSO
- Add optional dependency on bchunk
- Allow filtering games by name in
check-roms
- Traits! Makes parts of the code actually reusable
- Add an optional post-conversion check
- Fix importing a couple more bogus DAT files
- Accept ZIP files as input for
import-dats
- Add a
-u
flag toimport-roms
to skip user prompts - Add a
-s
flag toconvert-roms
to select systems by name - Update the
-s
flag inimport-roms
to behave the same as inconvert-roms
- Add a
-f
flag inpurge-roms
to track and delete foreign files in the ROM directory - Add a new
export-roms
subcommand - Add support for WBFS in
export-roms
- Clean temporary files immediately in
convert-roms
- Include Non-Redump DATs in the grouped subsystems
- Don't create empty directories
- Fix paths displayed on Windows
- Add support for importing CIA files (@leo60228)
- Use original names for PSN stuff
- Add a language whitelist setting
- Always name archives after the game name
- Add support for NSZ
- Expose most settings in the web UI
- Make ignored status take precedence over complete status in the web UI
- Additionally match the whole flag string to allow discarding specific flag combinations
- Make
purge-roms
physically delete orphan ROMs
- Use archive name and directory names in the archive when importing arcade games
- Also use the file name in the archive when importing arcade games
- Rework import-roms to only ask for a system when desired or necessary
- Rework rebuild-roms to make it a lot faster
- Fix completion computation for arcade systems
- Don't automatically trash invalid roms, put the mechanic behind a flag
- Add a flag to force import existing roms
- Use native rust implementations by default (openssl-sys -> rustls, libz-sys -> miniz_oxide)
- Fix game filtering in the web UI with the new 1G1R system
- Add the ability to sort ROMs in alphabetical subfolders
- Add a catch-all region
ZZ
inREGIONS_ALL
for thesort-roms
hybrid mode - Add a
GROUP_SUBSYSTEMS
toggle, if true merge variants of the same system in a single directory - Support MAME DAT files that use non-standard
machine
instead ofgame
tags - Add various compression settings for 7Z, ZIP and RVZ
- Add a new
generate-playlists
subcommand - Fix pure 1G1R sorting with parent-clone groups that have no ROMs
- Add a
REGIONS_ONE_STRICT
option to switch between strict and lenient 1G1R election - Fix 1G1R sorting when revisions are clones
- Display an appropriate message when a ROM has already been imported
- Add a
PREFER_FLAGS
to give a boost to specific flags in the 1G1R election process - Add
PREFER_PARENTS
,PREFER_REGIONS
andPREFER_VERSIONS
settings to influence the 1G1R election process
- Remove the ROM original extension from archives, it makes RetroArch name its saves differently between imported and non imported games
- Fix the
sort-roms
prompt to proceed - Allow creating solid 7z archives
- Skip games with unparseable names in
import-dats
- Fix successive import of invalid ROMs with the same name in
import-roms
- Greatly speed up
purge-systems
- Change
--missing
to--wanted
insort-roms
to avoid confusion with the samepurge-roms
flag - Add a
purge-systems
subcommand (WIP)
- Fix import-roms CLI flags
- Fix import-roms 7Z CRC parsing
- Put CHD, CSO and RVZ support behind features
- Add support for PS3 IRD files, along with a new import-irds subcommand
- Add support for PS3 updates and DLCs
- Allow selecting the checksum algorithm in import-roms (useful for JB folders which only provide MD5)
- Add a new benchmark subcommand (Linux only for now) to measure the performance of checksum algorithms
- Support moving files across different filesystems
- Fix a parsing issue on DAT files with duplicate
clrmamepro
fields
- Fix RVZ conversion
- Fix version sorting in 1G1R when parent is missing or unwanted
- Treat the first elligible clone as parent in 1G1R when parent is missing
- Greatly improve completion calculation in sort-roms
- Add support for the Atari 7800 header definition
- Embed some no-intro header definitions and use them as fallback
- Add initial support for arcade systems
- Add a new rebuild-roms subcommand for arcade ROM sets
- Add support for RVZ via dolphin-tool
- Use transactions for increased database performance
- Add an optional GraphQL API and a basic web UI, behind the
server
feature - Store ROM files' actual size in database
- Store system and game completion status in database
- Store game sorting in database (all regions, one region, ignored)
- Use a database connection pool
- Fix importing archives with invalid files
- Add a new download-dats subcommand
- Use dialoguer for prompts
- Support importing ISO compressed as CHD
- Support converting between ISO and CHD
- Support converting directly between supported formats (as opposed to having to revert to original beforehand)
- Optionally print statistics after each conversion
- Use shiratsu_naming to parse No-Intro names
- Drop releases, we don't need them
- Delete obsolete roms when importing updated dats and automatically reimport orphan romfiles
- Move failed imports to the trash directories
- Fix headered ROMs handling
- Add a unique constraint to the settings::key column
- Simplify discard settings, please refer to the new documentation
- Remove the ability to delete a setting
- Allow purge-roms to delete orphan romfiles
WARNING The internal region format is now TOSEC's, all dats need to be reimported for this change to take effect.
- Replace refinery with sqlx migrate
- Add a check-roms subcommand
- Filter ROMs by name in convert-roms
- Replace diesel with sqlx and refinery
- Use async_std
- Add a config subcommand and use the database to store the settings
- Add unit tests
- Add progress indicators and bars
- Add dependency on the indicatif crate
- Cleanup files on unsuccessful matches
- Fix documentation
- Deprecate environment variables in favor of db configuration
- New associated config subcommand
- Add dependency on the dirs crate
- Initial release