All notable changes to this project will be documented in this file.
- GOG Parser.
- UPlay Parser.
- Origin Parser.
- Command Line Interface.
- Capability to override image searches.
- Platform parsers have launcher and launcherless mode.
- Automatic Preset Updating.
- Make icons work for Steam parser (with the caveat that they will most likely be overwritten when a developer updates their game).
- Added handling to UPlay parser to simply not add games whose path is not stored in the registry (thanks @CheezyFriez12 for helping to debug).
- Shortcut passthrough for
.lnk
files no longer drops arguments and start dir (Issue 227). - Platform parser launcher mode arguments no longer added in launcherless mode.
- Also log start in directory.
- Itch.io parser (thanks @lexarvn)
- Title sanitization yet again.
- Epic manifests not showing
- Ability to handle animated artwork
- Amazon Games parser (thanks @lexarvn)
- Exposed API options for SteamGridDB: style, nsfw, humor, and image motion types
- Actually fixed the title sanitization issue in
screenshots.vdf
. Issue 296. - Fixed Issue 284 and Issue 278
- UPlay Parser.
- Prettied up the settings page further.
- Now properly sanitizing the titles put into
screenshots.vdf
. - Fixed the change in 2.3.31 that prevented GOG/Epic Parser from working unless directory overrides were set.
- Experimental parser sections. If people don't like them they can be removed, but I think they clean up the parsers significantly.
- Manual Parser. Ability to specify shortcut info in JSON files, thanks @CarJem for the PR.
- Global ROMs Directory environment variable.
- Environment variables now work in parser inputs.
- Brought settings UI more into line with the rest of the app, and added documentation.
- Removed "Show Advanced" and "Disable Parser" (disable parser is now on the sidebar only)
- Fixed Issue 288. Thanks @Witherking25.
- Fixed Issue 239
- Allow exact gameid in search title override (also added documentation). Thanks to @kencinder for suggesting this.
- Automatic Preset Updating
- New Icon
- Search Title Override in Exceptions Manager
- A stray paranthesis in a preset.
- Potential error in GOG Parser when details are missing (for now it just won't add the game).
- Fixed existing icons not populating from grids folder.
- GOG Parser.
- Epic and GOG parsers have launcherless option.
- appid Field is now set correctly in
shortcuts.vdf
- Icons no longer can be set to exes (which would result in those exe's being copied to grids folder)
- Ability to override manifests directory in epic parser (so that for example the Legendary store can be used instead).
- Totally refactored parserInputs in userConfigurations and presets to allow for less clutter and more varied parsers in the future.
- Fixed Epic parser in the case where manifests file doesn't specify executable location. Thanks to Discord user @xsessive182 for helping me debug.
- Better UI for enabling and disabling parsers. This can still be done from within the parsers themselves but inaddition there are now toggles on the navigation bar on the right, as well as an "enable/disable" all toggle.
- Documented issue discovered by Discord user @KiwiKitten that Steam parser only works for Steam games that appear in at least one category.
- Fixed OS Version in About page.
- Migrated to new repository as part of SteamGridDB organization.
- Fixed local icons.
- Fixed epic parser in the case that you had previously moved your epic library.
- Icon support! Icons are now on equal footing with other types of artwork and can be added from SGDB. Thanks @Davejl2006 for reminding me that custom icons are worth having.
- Updated several backend packages (for example node version went from 9 to 14.1.18 LTS).
- Removed bluebird.
- Logos got broken by a previous update that was using an outdated version of steam-categories. That is now fixed.
Thanks to Maykin-99 for these much needed changes!
- Steam Parser should not to try to give images for tools (appids like xxx_yyyy).
- Enabled steamgriddb as image provider by default in new parsers.
- Incorrect tracking of steam directories.
- Steam Parser not handling games that were deleted from the steam store (issue 232).
- Possibility of steam parser breaking because of a slightly different shortcuts.vdf key.
- Fixed default image field calling backslashes invalid.
- Default behavior is to not auto-delete shortcuts for disabled parsers.
- Epic parser now launches games from epic launcher, allowing for the use of epic online services.
- Steam parser got borked by something valve changed. This version fixes it.
- Slight oversight on dirty hack.
- Dirty hack to make user accounts field mandatory only on steam parser.
- Experimental Epic Games Parser + Preset (works on Windows and Mac).
- Made User Accounts field mandatory for the Steam Parser.
- Steam parser was failing whenever app title was just a number (eg "140").
- Retroarch Cores environment variable.
- Made auto updater styling consistent with rest of application.
- Small backend error when user specified no categories.
- Unbork browse for files.
- Filter by category also removing titles in all artwork view.
- Round download percentage for auto updater.
- Filter by category not working in all artwork view.
- Include latest.yml in build so auto updater can work.
- Moved data migrations to modifiers.
- Add documentation emphasizing User Accounts field.
- Steam Parser Title Modifier (default to removing illegal symbols).
- Add a localImagesDir environment variable.
- Add a sane browse button to localimages/defaultimages fields.
- Exceptions manager.
- Add steam category filter to preview.
- Add save images locally to preview.
- Crash logging with sentry.io.
- Auto Updater (hopefully working, sort of hard to test separately).
- Config Presets are searchable.
- Re organized Parser fields slightly to make more sense.
- Split user presets into separate files.
- Bug where app list would fail to generate if width/height of images could not be retrieved.
- More logging for steam parser.
- Categories not deleting when user hits remove all in settings as opposed to preview
- Major bug in 2.2.32 that prevented steam-categories from working unless emoji or non english character was present (don't ask).
- Capability to save categories with emojis or non English characters in the name.
- SRM failing to save whenever there are non standard unicode characters in the
leveldb
.
- Valve changed a database field.
- Certain parser fields not showing up in Advanced.
- Environment variables specified in settings,
steamdirglobal
andretroarchpath
. - Steam Parsers (experimental), which can manage artwork for specified steam accounts.
- Fixed longstanding issue (since 2.2.20) where UI would lock up when selecting directories that contained many files, eg. the steam directory. This problem was pronounced on systems that used HDD's, and was fixed by dropping webkitdir in favor of electron's showOpenDialog.
- 2.2.26 broke retro-arch cores. This issue has been fixed in this release.
- Better state management for category manager (no more duplicate categories, empty SRM managed categories get deleted).
- Custom Arguments JSON file capability + documentation.
- Readme now points to github pages with videos.
- Fixed issue of linux version not saving images.
- Setting for whether or not to delete shortcuts from disabled parsers.
- Ability to see number of titles in preview and in test parser logs.
- Environment variables ${/} and ${srmdir} that can be used even in steam directory, rom directory fields.
- Removed retrogaming.cloud from list of image providers (it is defunct).
- Changed structure of AddedItemsV2.json to include Parser ID.
- Added lontanadascienza as a contributor.
- A bunch of dead links in Readme and About Markdown.
- Improved documentation for custom variables based on advice of a friend.
- Fixed parsers deleting custom logo positions on re parsing (note they will still delete if that app's name changes - SRM will not yet relocate the old json file to the new name).
- Fixed downloading borders not showing in all artwork view.
- Added resolutions to images.
- Added an "All Artwork" view.
- Fixed pngs not replacing jpgs.
- Fixed state management (no more duplicate shortcuts).
- Got Logos working.
- Got Recent Images working.
- Updated
steamgriddb
url.
retrogaming.cloud
is now turned of by default for new users.
- Fixed Issue 111.
- Added
${os:[win|mac|linux]|on match|no match(optional)}
variable. Can be used to select OS specific extensions and etc.
- For existing entries, an union of parser categories and already existing categories will be used when saving
VDF
files. This will preserve any user added category.
- Removed file restriction for
Executable
field. Any valid path can be used for executable.
- A bug introduced in
2.2.12
would modifyuserSettings
schema. This allows user to save invalid configurations, but would throw an error when trying to load it.
- Added primitive/unlimited cache for fuzzy matcher. Increases performance and can be used to change undesired fuzzy matcher's result by modifying
fuzzyCache.json
.
- Added addition step for
"the"
matching. Fuzzy matcher will now modify and try to match title in the following order:
Original title: "Addams Family, The - Pugsley's Scavenger Hunt"
1st try: "The Addams Family - Pugsley's Scavenger Hunt" (logical)
2nd try: "The - Pugsley's Scavenger Hunt Addams Family" (just in case)
3rd try: "Addams Family, The - Pugsley's Scavenger Hunt" (original)
- ConsoleGrid support, because it's dead (again...).
- Configuration preset support has been added. User-made configurations can now be loaded from
configPresets.json
file. This file, together withcustomVariables.json
, will be automatically downloaded from github only if they don't exist on user's computer. Downloads can be forced from settings page. - Hosted files can be found here.
- Improved diacritic character handling for fuzzy matcher. For ex.
Pokémon Snap
should now be matched toPokemon Snap
with diacritic option enabled.
- More emulator examples (by Chocobubba and Wesim).
Shortcuts.vdf
file would not have elements properly removed. If you had app entry at index 0, followed by other apps, removing app at 0 would not re-index remaining entries. Thus, array element at 0 index would remain empty, forever. This, besides corruptingvdf
, would result in "exe
of undefined" error.- Since the rewrite of
shortcuts.vdf
parser, you could not add Steam categories that were numbers (for ex. 7800, 123, 777, etc.). This is fixed now.
- Fuzzy matcher now has an option to replace diacritic characters to their latin equivalent. Available character list is probably not full, so if you find a missing character be sure to post an issue.
- Parser variable added which can replace diacritic characters to their latin equivalent.
- Added default/fallback image option for when there is no image available.
substr
error when glob contains space characters at the start of input.- Could not add local image manually most of the time due tue file input being removed before callback is fired.
- Parser configuration can now be copied to clipboard in "ready-to-paste" text format.
- Completely rewritten
VDF manager
to ease implementation of new features. Should increase list saving performance. If something breaks, there's always a backup VDF! - Optimized
shortcuts.vdf
parser. Should give a huge performance increase for people with a lot of entries. - Default page changed from
Preview
toParsers
. - Changed generic
vdf
library from node-vdf to @node-steam/vdf. Previous one did not properly convert data tovdf
. This change might require to deletescreenshots.vdf
(only if SRM throws an error).
- Executable modifier field is now available. Now you can modify executable, append/prepend custom data.
- Arguments are now appended to executable by default.
- A lot of fields are now trimmed for whitespace.
- Added missing and fixed incorrect whitespace validation.
- Titles, not found in
customVariables.json
can now be failed (skipped). Useful for MAME and similar emulators.
- Empty titles (with a length of a 0) will now be failed (skipped) by a parser.
- Image and icon indexes will now persist from previously generated list. This means that if your newly generated list overwrites apps with the same
APPID
, you should see previously selected images/icons. - Local images with
png
,tga
,jpg
andjpeg
extensions can now be added to image pool manually in preview page.
- Field
Image pool
will have highlighting enabled. #
is now encoded for local files.- UTF-8 BOM is now properly removed from read files.
- Custom-input field will not scroll when trying to select text while scrolling. The downside is that it will loose focus when mouse is not hovering input element itself. Can be fixed with Chromium v60 which is yet to be implemented in Electron.
- Fuzzy parser will now look for
..., The...
segment first. Before it looked for it after no matches were found. That, however, sometimes returned false positives which resulted in..., The...
segment replacement being skipped. Click here to see how it does it. - Changed image size from
cover
tocontain
in preview menu, because Steam seems to be doing it for non-standard images.
- Users with configuration made in v2.0.0 could not migrate to older versions due to
Glob-regex
andGlob-Regex
type mismatch.
regex
function variable would use substitution.- Single line text input fields will now have newlines removed on paste.
- Updated command line examples to use
${exeDir}
.
Glob-regex
would not acceptg
flag.
- Parser configuration title together with Steam categories is now shown on generated app entry.
- Custom text input fields.
- Variable bracket highlighting in input fields.
- Information about color codes near configuration title.
- Missing backend validation.
- Experimental custom variable support.
- Steam categories are no longer in advanced options.
- Some typos in FAQ.
A lot of additions/changes/fixes are not listed here due to unfortunate misclicks which commit changes before I am able to record them.
- Parser support to local images and local icons.
- Temporary glob cache.
- Settings button to reset fuzzy list.
- Warning is now shown if no user account found.
- Option to disable the usage of Steam account credentials.
- App's position and state will now persist. Except for maximized state, it's currently a little buggy.
- User can now disable current Steam images that are shown in preview.
- SRM now detects changes in parser configuration. These changes will persist until user presses "Save" or decides to undo all changes. Changes will be lost if user exits app.
- Deleted configurations are can now be restored until app is closed.
- User can now specify a custom "Start In" directory.
- Parser configurations and app settings will now be strictly validated. If they are corrupted beyond recovery, error will be shown to fix errors manually.
- Parser configurations and app settings from now will have versions. This will allow to automatically upgrade, update or remove deprecated entries.
- A lot of new variables are now available for users to further customize "stuff".
- App can now automatically clear log before testing parser.
- Navigation panel can now be resized. Maximum allowed width is 25% of viewport width.
- Configuration unsaved status is now reflected near its title in navigation. It also shows if configuration is disabled or not.
- Image urls are now cached for a session.
- Steam categories now support variables.
- Image pool field has been exposed.
- Changed fuzzy library from fuzzy to fuzzaldrin-plus.
- Parser configuration will now have
disable
option instead ofenable
. Should be less confusing. - Recursive form is now adapted to work with angular's reactive forms. Makes validation and change tracking easier.
- Toggle button now uses css animations instead of svg.
- Rewritten Preview page to improve performance when handling A LOT of apps.
- Title modifier now supports and uses variables.
- Image url retrieving is now aborted instantly.
- Rewritten variable parser to support nested variables.
- Empty executable is now allowed.
- A logic "bug" for
retrogaming.cloud
. If filter is enabled, titles will be filtered out before making queriesretrogaming.cloud
. This will dramatically decrease number of timeouts. Big thanks to AlexDobeck for finding and providing a fix for this. - Fixed a bug where
retrogaming.cloud
could not be stopped. - Fixed various bugs related to parser form.
- CMD examples for Nestopia and Project64.
- Initial image size would remain at 40% if preview menu was opened without an already generated list.
- Image size would not save if user exists app in preview menu.
- Ability to select image providers both globally and per user configuration.
- Markdown support.
- Info button for each field.
- ConsoleGrid support (not dead, huh?).
- App list instant filter field.
- Multi-language support.
- Proper
node-glob
patterns support forglob
andglob-regex
parsers:*
Matches 0 or more characters in a single path portion.?
Matches 1 character.[...]
Matches a range of characters, similar to a RegExp range. If the first character of the range is!
or^
then it matches any character not in the range.!(pattern|pattern|pattern)
Matches anything that does not match any of the patterns provided.?(pattern|pattern|pattern)
Matches zero or one occurrence of the patterns provided.+(pattern|pattern|pattern)
Matches one or more occurrences of the patterns provided.*(a|b|c)
Matches zero or more occurrences of the patterns provided.@(pattern|pat*|pat?erN)
Matches exactly one of the patterns provided**
If a "globstar" is alone in a path portion, then it matches zero or more directories and subdirectories searching for matches. It does not crawl symlinked directories.
ng-select
now supports multi-select.- Invalid configurations can now be saved.
- Each image provider now runs in their own instance of web worker.
- Fuzzy matcher was split into 3 parts: loader, matcher and service.
- Code font from "Monaco" to "Hack".
- Instruction were rewritten in markdown.
- Parser form no longer uses Angular's form module. A new "recursive" module is now used to create parser form.
- Drastically reduced the amount of css variables.
- Layout changed to support
CSS grid
.
Observable
settings load logic bug.- Url encoding bug (issue #27).
- Color picker module can no longer be accessed and is used for development only.
- Url retrieving would silently stop after 3 timeouts. Now they stop after 3 failures, not timeouts, as intended.
- 2 new options for fuzzy matcher.
- Online image query option allows to specify search string for images.
- Image urls can now be redownloaded per game only (without regenerating a list).
- Specific account support added. This allows to make different configuration for different accounts.
- New settings windows has been added.
- Images can now be preloaded as soon as they are retrieved.
- Images can now be filtered for non-related images (select this option in settings window).
- Fuzzy matcher has it's own Event log option now. This will reduce the clutter.
- Timeout support added for
retrogaming.cloud
. After requested timeout, images will continue to download. - New nagging message will now announce when all downloads are complete.
- User configurations and user settings (new in this release) will now be validated. Incorrect structure types will be replaced with default values (it will add missing options for new APP versions).
- Parser no longer needs executable location. If left empty, a file, returned by parser, will be used as executable. This allows to use custom batch files that do not require executable. Technically, any non-steam game can be added now.
- Title prefix and suffix fields replaced by one
Title modifier
field. - Changed list data merging from
title
toappID
. This means that games may now have the same titles, BUT they must have different executable path (case sensitive). - Image retrieve logic. Images are now retrieved in background, allowing user to view currently available images.
- Internal data structure has changed to allow unique configurations for multiple apps per multiple user accounts per multiple directories.
- Using the new API for
SteamGridDB
.
- Properly show image url retrieve errors.
- Preferred image list is removed as it is impossible to implement with background image downloader.
- ConsoleGrid support, because it's dead.
- Greedy mode option.
shortcuts.vdf
should now have recurring titles removed as intended. If you had titles disappear, it was because Steam changedAppName
property toappname
. That resulted in too many titles and Steam got confused. Simply re-adding all titles via SRM should fix it as it will delete duplicates.
- Greedy search option which will search for images using both
${title}
and${fuzzyTitle}
- Added a temporary fix, which should prevent
shortcuts.vdf
corruption
- Additional one time backups will be made with extension
.firstbackup
- Glob-regex now joins capture pairs. See here how it can be used
- Alert component now times out as intended (previously it would just stay there until user clicked it or it received a new message to display)
- You won't be forced to shut down Steam anymore, but will be adviced to, everytime you generate a list
- Offline mode
- In order to release binaries for multiple platforms, Steam check is done only on Windows
- User data is now located at:
%APPDATA%\steam-rom-manager\userData
(Windows) or~/.config/steam-rom-manager/userData
(linux)
- Everything