2.5.45
Added
- Quiver Launcher Parser added (thanks @rombat !)
Fixed
- Issue 891 disabling steam input wasn't working because steam changed which ID they used to identify the setting. Thanks @sean0407 !
- Improved Github Launcher Parser by honoring user install paths.
2.6.0
A big one: SRM's insides were rebuilt so the app, its command line and its tests all share one core, and that work turned up (and fixed) a long list of bugs.
Added
- Themes. Six new app themes: Sunset, Solarized Dark, Solarized Light, Mint, Pride and Cyberpunk.
- Theme editor (Settings > Theme editor). Make your own themes: duplicate any app theme, change any color, size, font or animation with a live preview on the whole app, then save, use or delete it. Paint values (backgrounds, the bar next to the navigation) have a gradient builder with angle, colors, hard-edged stripes and flag presets. Themes are JSON files in
userData/themes/user, easy to share. - Languages. All 31 languages are now offered in Settings. Anything not yet translated shows in English instead of breaking. Help translate on Crowdin.
- Command line: manage parsers.
srm create,edit,deleteandviewcover every setting in the parser editor, with the same required fields and validation. Parsers can be named by id or by name in every command. See the wiki. - Command line:
add --only/remove --onlyrun just the parsers you name, enabled or not. - Standalone command line. Each release has
srm-cli-<version>-<os>-<arch>for Windows, Linux and macOS (x64 and arm64): one executable, no gui app needed. It uses the installed app's data, or auserDatafolder next to it.
Changed
- Exceptions are now two lists: Changes (renames, Fix match, launch options and so on per game) and Excluded games. Excluding a game no longer throws away its changes, and putting it back restores them. Each rule shows whether it matches one game from Add Games or every game with a title. Your existing exceptions are converted automatically, and older SRM versions can still read the file. The "Add a change" / "Exclude a title" button stays in view at the top of the list, new rules appear right under it with the cursor in their title, and a new rule can be cancelled with its ×.
- Fix match replaces the artwork search box with the matched game until you clear it.
- Faster saves and parsing, most noticeably for big libraries: artwork, collections and controller templates are each read once per save, SteamGridDB is searched once per title, and the Microsoft Store parser starts PowerShell twice per run instead of up to three times per game.
- The command line no longer needs an internet connection: it uses SRM's cached data (it only downloads what has never been downloaded).
- Offline mode now also skips the custom variables, presets and shell script downloads.
- Security: the window no longer has access to Node or Electron. Everything that touches your files runs in the main process behind a fixed list of allowed actions.
- Electron 32 → 44. Electron no longer makes 32-bit Windows builds, so neither does SRM: Windows releases are 64-bit (x64) and ARM (arm64).
Fixed
Steam
- Saving failed outright with "restart Steam" on and "kill Steam" off.
- Saving duplicated your own Steam collections a little more every time.
- "Remove all" left SRM's forced Proton settings behind, so a re-added game got them back.
- A save could erase your own Proton choices for Steam games handled by an artwork-only parser.
- A failed artwork download (404, 5xx) was saved as the artwork, replacing the good file.
- Controller settings: backups were never made, removed games' Steam Input settings were left behind, and one account without
localconfig.vdfbroke controllers for every account after it. - Steam was stopped and restarted twice per save; now once.
- A Steam folder without user accounts (old install, removed SD card) broke "Remove all" and View Games.
- Horizontal grid artwork failed on Windows without admin rights or Developer Mode.
Parsers
- The parser editor could carry settings from one parser into another one you opened after it.
- Choosing a preset for a parser and then moving it to a group changed the preset itself.
- GOG Galaxy: linked games got the wrong
/gameIdin their launch options. - EA Desktop failed with "Received an instance of Blob".
- Microsoft Store: updated apps were listed once per old version left on disk, sometimes with an executable that no longer exists, and some apps showed their package name instead of their real name.
- "Skip file if variable not found" shifted the titles of every file after a skipped one.
${cv:group|input}ignored the group and returned "undefined"; it now returns the variable's value..desktopshortcuts passed field codes like%Uto Steam.- Steam source mods' titles were cut at the first space or comma.
- A parse could hang forever when SteamGridDB or an image folder couldn't be read.
Add Games and View Games
- Renames and Fix match picks in a game's details were sometimes silently lost on save.
- The category and parser filters kept old values after parsing again, which could hide every game.
- The Export/Import art buttons looked like plain text.
- Log text couldn't be selected or copied.
- View Games always showed Steam Input as "default".
Settings and data
- Upgrading from very old versions reset the preview settings and lost the parsers' default tall image.
- "Update custom variables" hid your own variables until a restart.
- The fuzzy list was downloaded again at every start.
- An empty or unreadable settings or parsers file no longer silently loses your changes: SRM's files are now written safely (a crash mid-save can't truncate them), and an empty file left behind by an older version counts as a fresh start.
- Choosing any language but English disabled saving settings.
Notes
- 32-bit Windows is no longer supported (Electron 44 has no 32-bit build). If you're on 32-bit Windows, stay on 2.5.x.
- If you switch to one of the new themes or a language other than English and then go back to 2.5.x, 2.5.x won't accept your settings file. Choose a 2.5.x theme (Deck, Classic or EmuDeck) and English first, or delete
userSettings.jsonafter downgrading.