All notable changes to this project will be documented in this file.
- 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.
This is a big one.
- 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