All notable changes to this project will be documented in this file.
- Ability to add local images in preview broke in a past Electron update.
- Ability to drag/drop to re-arrange parsers in Classic and Deck themes.
- Several UI standardizations: Unified color scheme for Deck theme, moved logger options to an options panel, minimized all docs by default, minimized error reporter by default.
- Executables on Mac OS should be allowed to be directories (.app folders).
- User Variables not populating in title variables dropdown under Title Modification section of create parser.
- Ability to open and close markdown docs in parsers.
- Emphasis on which fields are required/important in parsers.
- Ability to search for square 512x512 and 1024x1024 images for capsules and wide capsules (disabled by default). Resolves issue 703.
- Simplify "Create Parser" interface by starting with "Title Modifier", "Controllers", "Artwork Providers", and "Local Artwork" sections all minimized.
- Search queries is now a bubble input rather than a text field.
- Title from Custom Variable is now a dropdown instead of a text field.
- Executable Modifier, Artwork Pool, Title Modifier fields no longer mandatory, they just default to sensible values when empty.
-
Switch to non-deprecated fuzzy-matching library
fuzzysort
(RIPfuzzaldrin
). -
Improved preset search appearance and performance.
- Ability to edit bubble inputs (currently just steam categories in parsers).
- All path/directory fields in create parser now have system specific placeholders.
- Minor graphical annoyances with List View.
- Parser specific inputs not being validated.
- Placeholders are now OS specific for parser specific inputs.
- Legendary Parser now has a launcher mode to launch games with Epic online services (resolves issue 700)
- Added sections to parser type dropdown and community presets dropdown.
- Added a
Non SRM Shortcuts
preset.
Some much needed love for the Mac OS version of SRM, and a cool pull request!
- GOG Galaxy parser is fully functional on Mac OS.
- Auto kill and restart Steam working on Mac OS.
- Windows-only option in GOG Galaxy parser to parse from Windows Registry instead of GOG Galaxy's database (works even if Galaxy is not installed!). Thanks @HazardousBackup!
- Brought all dependencies to latest version.
- Switched from npm to yarn package manager.
- Reworked when controller templates are fetched, leading to a significant performance increase.
- Didn't do a modifier on user configurations so 2.5.18 was broken.
- Improved control over exactly what Steam Parser adds (between full games, demos, tools, and source mods).
- Steam Parser failing on beta update due to changes in binary format of appinfo.vdf (issue 688)
- Steam Parser no longer requires apps to be in at least one category(incidentally resolves issue 596)
- EA Parser not handling utf-16 manifests gracefully (issue 677).
- UI Bug with list view + manually added or local artwork.
- Non SRM Shortcuts parser
Cannot convert to object
bug.
- Some small UI tweaks
- Show system specific placeholders in splash page (resolves issue 682)
- Flickering in list view's artwork.
- Updated built in guides.
- Some minor graphical annoyances.
- Undo button not undoing some fields.
- Back button on User Accounts splash page.
- System specific placeholders on Steam Directory splash page.
- Settings options show up in full on EmuDeck Theme
- Navigation buttons not showing up on EmuDeck theme's
Add Games
page if no apps returned. - Bug affecting some emudeck parsers.
- Added a
userVariables.json
file where user's can put their custom variables without fear of them being overwritten by SRM, as well as accompanying documentation. Resolves issue 667 - Splash page prompting user to set global Steam Directory and User Accounts if they haven't already.
- Removed
Enable Title from Custom Variable
setting in parsers. Custom Variables are now enabled if and only if one or more groups are set. - New Bubble UI for user accounts UI in parsers, settings, and splash pages. No more janky brackets where they don't belong.
- New Bubble UI for steam categories.
- Relocate import/export art to options panel in Add Games (as an added bonus one can now import/export art in the emudeck theme).
- Show all settings in emudeck theme.
- Don't show provider filters if section if there aren't any for that provider.
- Improved exception management from preview (current exception details now show up under fix match).
- Lazy loading of images in
Add Games
(now the default image loading strategy). - Side panel option to change how images are sorted.
- Steam now auto exits gracefully on Windows.
- Increased timeout for Steam to exit.
- UI Bug with filters/excludes/list images not closing upon remove from Steam.
- Settings option to automatically kill Steam when writing to Steam Categories (Windows & Linux only).
- Settings option to automatically restart Steam after writing to Steam Categories (Windows & Linux only).
- Settings option to manually set DNS Server (fixes many timeout issues on the Steam Deck)
- Manual Import / Export of Image Choices now matches on image pool.
- Provider workers not returning images under certain conditions
- Local Artwork Only causing blue "retrieving" outline
Steam Official
artwork provider now grabs official steam assets when they exist.
- Ability to filter by "Has Exception" in preview
- Ability to override display title in fix match
- New exceptions are now timestamped for sorting (old Exceptions are given todays date)
- Exceptions Sorting Bug
- Bug with sorting in list view
- Issue 666
- Two bugs with exception putback ability
- Ability to put back in exclusions from the add games page.
- Ability to sort by each column in list view
- Excludes working from list view.
- Reduce empty list without intializer bug
- Ability to set Proton version per parser [TODO]
- Ability to prioritize artwork by certain authors [TODO]
- Steam CDN Provider (Done as soon as SGDB API is updated, for now it always fetches portal artwork)
- Browse All Artwork on Preview (Done)
- List View on Preview (Done)
- Settings toggle to disable saving steam categories (useful on Deck so steam doesn't have to be closed)
- Allow function variables in environment variable fields. One use case being to set start-in-directory based on the os (issue 292).
- Added back image provider to apps in EmuDeck theme.
- View Games and About pages now in EmuDeck theme.
- Total re-work of images data-structure to allow for flexible adding of multiple providers.
- Exceptions Manager now checks for conflicting exceptions on save.
- Upgrade to Node 22
- Some graphical issues with loading spinner placements
- Browse button for Fallback artwork not producing forward slash paths.
- Bug where multiple selects in parser configuration could influence eachother.
- Exceptions added from preview now can edit existing exceptions, so as not to create conflicts.
- Config presets cacheing was broken.
- Non-SRM Shortcuts Artwork Only Parser.
- Don't show artwork only apps when doing excludes (this didn't work anyway, since nothing is being added).
- Parsing of executable arguments in executable mode for GOG, Amazon, Epic, EA Desktop, and Legendary (resolves issue 263). Previously these were being ignored. As far as I can tell UPlay, UWP, and Itch.io never pass commandline arguments to executables.
- Read controller templates blocking renderer process. Should fix the issue some people have had with SRM freezing when hitting save to steam.
- Possible error when writing localconfig.vdf to enable/disable steam input.
- Ability to filter by artwork size for banners, heroes, and icons.
- Ability to sort exceptions by date, old title, and new title (issue 343)
- Option to hide steam username from preview.
- Some newer titles missing from Battle.net parser (thanks @doZennn)
- Hide API options for SteamGridDB if it isn't selected as an image provider.
- Battle.net parser ⚔️🔥 (issue 352)
- Toggle to filter by apps missing artwork (resolves issue 407)
- Renderer blocking when running XBox UWP parser
- Filter out DMCA'd artwork.
- Split custom variables file (issue 260). Thanks @kencinder.
- Moved filters for preview page into a side panel.
- Automatically download new custom variables on startup.
- Toggle in settings to disable auto update (issue 612)
- Capability to add EmuDeck specific features.
- Renderer blocking when removing extraneous artwork (should resolve many performance issues when large number of ROMs are being handled)
- Possible failure to load of
View Games
page ifuserdata/0
folder present. - Flatpak build process working again
- Support for Xbox One Elite, PS5 Dualsense Edge, and Steam Controller templates (resolves issue 555 and issue 656)
- Glob and Glob-Regex parser would fail if roms directory was set to the root of a drive on windows. (issue 580)
- Regression introduced in 2.4.20 resulting in
ENOENT
errors
- SRM now remembers your sgdb artwork choices (caching sgdbId -> artworkId). It will remember these choices even if you delete your
config/grids
folder or if you change a game's app id. - Artwork choices are stored in SRM's config directory under
artworkCache.json
. Moving this file to a new SRM install will instantly reproduce your artwork choices. - Per parser option to backup SGDB artwork locally. Useful for parsers that experience frequent DRM takedowns.
- Artwork backups are stored in SRM's config directory under
artworkBackups/
. Moving this directory to a new SRM install will allow use of the backed up artwork.
- SRM will now always list artwork in the same order: First whatever is currently in steam if available, then local artwork if available, then the cached sgdb image if available, then other sgdb images.
- Ability to Enable/Disable steam input per parser (a much requested feature)
- Ability to set
appendArgsToExecutable
from manual parser (resolves issue 625) - Controller Template information on View Games page.
- Create
grid
directory in Steam if it does not already exist (resolves issue 600)
- Ability to search games on view games page
- Styling regression on "all artwork" view in non-EmuDeck themes
- Titles with LaunchOptions not launching from View Games page
- Regression that prevented fix match from working on "all artwork" view.
- View Games page, ability to see what artwork and games are currently in steam without opening steam
Parse Linked Execs
toggle for GOG Galaxy parser, allowing the parsing of games that were not purchased in GOG but instead manually linked.- Many changes to the EmuDeck theme, thanks to @dragoonDorise
EISDIR
upon refresh controller templates if steam had created a directory in the controller templates folder (thanks @SteelSavant)
- Fuzzy game name matching
- EmuDeck theme scrollbar
- Remove DNS resolution from within SRM
- Image timeouts issue should be resolved. If it isn't resolved for you try lowering the batch size in settings.
- Duplicates being added when upgrading from 2.4.14 to 2.4.15.
- Ability to set batch size for image downloads in settings
- Automatically retry image downloads up to 4 times.
- DNS resolution now happens in SRM and uses cacheing.
- Ability to add games to categories created in steam (including
Favorites
andHidden
!) - SRM now respects addition of non SRM managed games to SRM created categories, i.e. it won't delete them.
- Global buttons added to steam directory and user accounts field in parsers.
- Choose Account button added to user accounts field in parsers.
- Added an SGDB search field to the fix match page in preview.
Include Visible
andExclude Visible
buttons in preview to make adding exceptions even easier.
- Requests library changed to
node-fetch
, hopefully fixing timeout issues. But I have been burnt before.
- Fix match was somewhat broken for the artwork only (Steam) parser, wasn't setting the
exceptionId
correctly. - Subtle bug that prevented
Remove All Added Entries
from doing anything to categories or controllers when Preview hadn't been generated. - Minor issue where image index wasn't being set to zero after an image was saved to steam (making it seem like the image didn't save even though it did).
- Graphical issue with scrollbar in EmuDeck theme, credit to @DragoonDorise.
- Filter out weird '0' userdata directories that were causing problems for people in 2.4.13. I don't have one, so I didn't catch this issue.
- A global environment variable for the user accounts field (planning to eventually make this parser field mandatory)
- A noice modal to set the global user accounts filter from settings.
- Issue where shortcut passthrough wouldn't work on a directory containing only one shortcut.
- Exceptions now usable in EmuDeck theme. Credit to @dragoonDorise.
- Use App Id instead of titles for import/export images (gets rid of title collisions and also issues with titles that have illegal filename characters)
- Total re-work of image downloading method to remove dependence on deprecated library
request
. Should also hopefully fix timeout issues, as it now automatically retries (once) if an image request times out.
- A regression in 2.4.6 that would cause import to fail for other artwork types if a grid wasn't present.
- Some small quality of life UI fixes.
- Show total number of batches in batch progress alerts.
- Some small UI bugs that cropped up in 2.4.9.
- Explanation of SRM's workflow on the preview page when no apps are present. Credit to @dragoonDorise.
- Highlight mandatory fields in create parser.
- Moved better-sqlite calls to a child process. This fixes crashes that have been happening since upgrading to
Electron 24
. - Re-worked module
windows-shortcuts-ps
to use massively less RAM when doing shortcut-passthrough (only spawn one powershell process, per parse, not one per each shortcut). - Increased api call timeouts.
- Ability to comment things out in glob fields using
\
. Addresses issue 404 - Config presets are now grabbed by version, so that older versions of SRM (from here on out) won't break when breaking changes are made to the presets files (they also won't receive any new presets, but c'est la vie).
- Made the whole parser clickable in the parsers list in the
EmuDeck
theme.
- Exceptions ID not matching for steam parser
- CLI would hang on generate apps if no apps were found.
- Handling for bug in
osName
where an error would be thrown ifpowershell
not found on a Windows system, issue 521 - Handling for issue where
addedItemsV2.json
could be invalid json. Also made the write synchronous so this is less likely to occur.
- Expandable set notation
$()$
that could be used in the local images fields. Classic example of SRM being overcomplicated. I might bring it back if there is popular demand. Skip Accounts with Missing Data Dirs
option (always true now)Use Account Credentials
option (now set based on whether or notloginusers.vdf
exists)
- Fixed possibility of
fix match
creating duplicates or not working, state management changed to incorporate possibility of app id changes better.
- Optimizations for
1280x800
screen (Steam Deck). Should stop horizontal scroll bars from appearing. - Improved consistency of fix match appearance with preview.
- Ability to exclude titles from the preview! Exclusions are automatically saved as exceptions so that the user doesn't have to repeat them. If you want the title back, just go find the exception and get rid of it.
- Ability to set exceptions based on the exact app through an exception ID, e.g. if you have two titles with the same exact name they no longer need to have the same exceptions applied.
- Shorten the button text in the bottom bar so as to hopefully minimize overflow issues on the Steam Deck.
- Ability to fix matches from the preview! Just click the little exclamation point on the left of the app (icon subject to change), select the game and boom match fixed. Best of all, SRM will automatically save your change as an exception so that you never have to change it again in the future.
- Exceptions are now searchable.
- Preview is now sorted in alphabetical order of title
- Regression in 2.4.3: SRM was not remembering the artwork choices that were already in Steam.
- New highly simplified EmuDeck theme (only recommended for EmuDeck users as it hides parser config). Credit to @dragoonDorise.
- Everyone who has made a feature contribution is now in the about page.
- Legacy banner images now sym-linked instead of copied (reduces storage usage by 17%)
- Steam images become sources immediately after hitting save apps to steam. This means that if you have some (or many) SGDB requests time out you can just wait a few seconds and hit "save apps to steam" again and it will get only those images.
- Major re-factor of parsers service, parsers component, and preview component. Preparation for new and more powerful preview.
- Glob and Glob Regex parsers with
**
now follow sym-links once more (this was broken by the upgrade to glob 9.0, which no longer follows sym links by default).
- Ability to add artwork for unofficial source mods via the steam parser
- Logging for when steamgriddb times out on an artwork request
- Steam parser was broken in 2.4.1
- Race condition bug in saving images to steam.
- Command line interface! 🚀
Unfortunately on the Windows portable version the CLI can't print anything out (see electron-builder issue 3998), but the commands still work. I am tracking this issue and will update electron-builder
as soon as it is fixed.
- New default UI theme by EmuDeck's @dragoonDorise 🚀
- Batched Image downloading 🚀
Solves the issue where SRM would hang on "Writing VDFs" when lots of images were being added. Batching is 500 images (100 games) at a time, with ten seconds in between in order to give SGDB's servers a break.
- Ability to filter by installed status and app type in steam parser (e.g. only get artwork for games, not tools).
- Windows Apps capability for UWP parser.
- Handling for DMCA'd images (SRM doesn't add the "This image has been taken down" fallback to steam)
- MSI Installer
- Helpful placeholders in parser fields.
- Re-worked steam parser to no longer require apps be categorized (credit to @Tormak for the technique). May still change in the future
- Bring all SRM dependencies up to date.
- UWP Parser in cases where pulled json has special characters (credit to @tlt21 for the PR).
- 32 bit linux application (modern versions of electron don't have prebuilt binaries for ia32 linux).
- GOG Parser.
- UPlay Parser.
- EA Desktop Parser.
- XBox Game Pass Parser.
- Command Line Interface.
- Capability to override image searches.
- Ability to set per-parser controller templates.
- 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).
- Bug in UPlay parser that could cause it to fail when Ubisoft left stray registry entries for Ubisoft games installed by steam. Thanks to SGDB Discord user djib for helping to debug.
- Made it so that the docs page returns to the intro page when clicking new parser, and otherwise changes to the main docs page for whatever parser type is clicked.
- EA Parser works for EA Play games (will only add them in launcher mode, skips them in launcherless mode)
- Two UWP parser fixes involving different possible structures for uwp xml and json files. Greatly increases the number of games the parser works for.
- Fix incorrect titles bug for UPlay parser issue
- Hopefully fixed path undefined bug for UPlay parser issue 355 Credit to SGDB Discord user Zedan for helping debug all four of these issues.
- Launcher Mode for EA Desktop Parser
- UWP Parser for XBox Game Pass (credit to @alvaromunoz, great work!)
- Legendary Platform Parser (working on Windows, Linux, and Mac OS)
- Presets for EA Desktop and Legendary Parser
- EA Desktop Platform Parser 🚀
- Several new languages in various stages of translation 🌍. Congrats to everyone who worked on finishing the Brazilian Portuguese translation!
- Hopefully fixed scaling issue on steamdeck where scroll bars were being added to preview page.
- Fixed amazon games parser adding games that had been uninstalled (issue 425)
- Ability to exclude non-local artwork in exceptions (addresses issue 398)
- Image Provider resetting to SGDB even if none was previously selected (issue 336)
- Ability to filter apps by parser title in addition to steam category.
- Significant lag when transitioning from non parser tab to a parser tab, caused by cached controllers templates being destroyed. Fixed by moving them to service.
- Category Filter options getting cleared after leaving the preview page.
- Bug where controllers couldn't be fetched if user had a custom config whose title was a number (ugh). Credit to emu-deck Discord user emotion for discovering the bug.
- Alphabetization for controller templates (you're right @Godsbane it does look better)
- Ability to import and export artwork choices (credit to @MattMckenzy)
- Ability to override drive letter for itch.io apps running via wine/proton on Linux (credit to @Apalatn)
- Crowdin Localization (credit to @doZennn)
- Ability to remove applied controller templates per parser (and globally in settings)
- Vastly improved state management for controller templates
- Totally re-worked select component to allow dynamically changing options
- Steam Deck per-parser controller templates
- Issue where games with special characters in their names couldn't have their controller templates set
- Ability to set per-parser controller templates, a long requested feature
- Steam Parser broke because valve changed the binary encoding of
appinfo.vdf
. See here.
- Ability to open the config directory from settings.
- Incorrect image queries for shortcut passthrough of .desktop files on Linux.
- Fixed weird bug involving a race condition on
.bind(env)
, resulting in the error:
Error: File Parser Execution:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
- Logging of vdf merging errors (no longer produces blank errors sometimes)
this.fileData.shortcuts.push
error. Hopefully.
- Made itch.io fully cross platform (thanks @OneMoreByte for the PR).
- Capacity to build flatpaks! (Only on linux)
- Built in bug-reporter. Thanks @doZennn for making an awesome bug-reporting server!
- Better errors when SGDB can't find a matching title (no more 'Unknown Error').
- Excluding titles and forcing a name change caused an error as of 2.3.37 Issue 308
- .desktop shortcut passthrough now works in the flatpak version of srm.
- Ability to do shortcut passthrough for
.desktop
shortcuts on Linux (thanks @UndarkAido for the PR).
- Totally re-factored the
executeFileParsers
method to use an actually sane promise stack. As an added bonus, the refactoring allowed for per parser error logging and for exceptions to overrule the results of shortcut passthrough.
- 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 re-sized. 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