Releases: rommapp/romm
Release list
4.7.0-alpha.1
Note
API Changes
- New endpoints that only return identifiers (IDs)
GET /api/collections/identifiersGET /api/collections/virtual/identifiersGET /api/collections/smart/identifiersGET /api/firmware/identifiersGET /api/platforms/identifiersGET /api/roms/identifiersGET /api/roms/{id}/notes/identifiersGET /api/saves/identifiersGET /api/states/identifiersGET /api/users/identifiers
- New endpoint for device registration
POST /api/devices/register_deviceGET /api/devicesGET/PUT/DELETE /api/devices/{device_id}
- New endpoints for save management
GET /api/saves/summary: Saves summary grouped by slotGET /api/saves/{id}/content: Download save contentGET /api/saves/{id}/downloaded: Confirm downloadPOST /api/saves/{id}/untrack: Disable sync tracking for a save on a devicePOST /api/saves/{id}/track: Re-enable sync tracking for a save on a deviceGET /api/savescan be filtered byrom_id,platform_id,device_idorslot
- New PKGJ feed endpoints in
.tsvformat- PSP games:
GET /api/feeds/pkgj/psp/games - PSP DLC files:
GET /api/feeds/pkgj/psp/dlc - PS Vita games:
GET /api/feeds/pkgj/psvita/games - PS Vita DLC files:
GET /api/feeds/pkgj/psvita/dlc - PSX games:
GET /api/feeds/pkgj/psx/games
- PSP games:
Collection.user__username->Collection.owner_username⚠️ SmartCollectionSchema.user__username ->SmartCollectionSchema.owner_username`⚠️ RomUserSchema.user__usernameremoved⚠️ - New field on
/heartbeatresponseOIDC.AUTOLOGIN RomFileCategoryenum includescheatvalue- New fields on
SaveSchemaandStateSchemaobjectsslot:string | nullcontent_hash:string | nulldevice_syncs:list[DeviceSyncSchema]
Highlights
Auto-export gamelist.xml
Automatically generate an ES-DE compatible gamelist.xml file during scans by enabling the option in your config.yml. This will place the new gamelist.xml file within the platform folder for selected/discovered platforms.
scan:
export_gamelist: trueDevice-based save synchronization
Thanks to @tmgast, we've laid the ground work for device-based save synchronization to enable multi-device save management, as defined in RFC-0001. Devices (handhelds, PCs, etc.) can register with the server and track which saves they've synced, enabling conflict detection when a device tries to upload stale data.
Note that this is purely foundational work to set up an initial structure and API implementation and in intended for third-party developers. #2917
Minor changes
- Add support for ScummVM shortnames by @gantoine in #2957
- Add
OIDC_AUTOLOGIN=trueenv var to automatically login using OIDC by @pR0Ps in #2969 - Group games with same name (but different tags) as versions/siblings by @zeroSteiner in #2984
- Search by mutliple keywords with
|by @gantoine in #2996zelda|mario|sonicwould show all games withzelda,marioORsonicin the name
- New
PKGJfeed endpoints in.tsvformat by @gantoine in #2986- PSP games:
GET /api/feeds/pkgj/psp/games - PSP DLC files:
GET /api/feeds/pkgj/psp/dlc - PS Vita games:
GET /api/feeds/pkgj/psvita/games - PS Vita DLC files:
GET /api/feeds/pkgj/psvita/dlc - PSX games:
GET /api/feeds/pkgj/psx/games
- PSP games:
Fixes
- [HOTFIX] Fix all roms displayed in all platforms by @gantoine in #2948
- [ROMM-2956] Fix refresh on card edit by @gantoine in #2962
- Invalid category values fix by @LoneAngelFayt in #2979
- Filter keys now plural by @camhorn in #2982
- [ROMM-2991] Allow set completion to 0 by @gantoine in #2995
- [ROMM-2997] Fix HLTB search term fetching by @gantoine in #2998
- [ROMM-2983] Fix negative filter by verified by @gantoine in #3000
- [ROMM-2976] Fix no games displayed for status filter by @gantoine in #3001
- [ROMM-2974] Stop displaying public collections in "add to collection" dialog the user doesn't own by @gantoine in #3002
- [ROMM-2972] Fix /props returning stale data by @gantoine in #3003
- [ROMM-2965] Check file count for file select menu emulatorjs by @gantoine in #3005
- [ROMM-2943] Match scanned platform based on fs_slug by @gantoine in #3008
Other changes
- New endpoints to fetch all IDs by @gantoine in #2921
- Example config ES-DE update/fix by @ricardovdheijden in #2963
- Use vite copy plugin to load rom-patcher by @gantoine in #2964
- Skip opentelemetry-instrument when OTEL is disabled by @Wadenschwinger in #2968
- Update uses of roms to ROMs by @gantoine in #3009
- [ROMM-2927] Add default folders to config manager by @gantoine in #3007
- Bump tar from 7.5.6 to 7.5.7 in /frontend by @dependabot[bot] in #2954
- Bump protobuf from 6.31.1 to 6.33.5 by @dependabot[bot] in #2981
- Bump cryptography from 45.0.5 to 46.0.5 by @dependabot[bot] in #3013
- Bump axios from 1.12.1 to 1.13.5 in /frontend by @dependabot[bot] in #3010
- Bump pillow from 10.4.0 to 12.1.1 by @dependabot[bot] in #3015
New Contributors
- @ricardovdheijden made their first contribution in #2963
- @Wadenschwinger made their first contribution in #2968
- @pR0Ps made their first contribution in #2969
- @LoneAngelFayt made their first contribution in #2979
- @camhorn made their first contribution in #2982
- @tmgast made their first contribution in #2917
- @zeroSteiner made their first contribution in #2984
- @ItzCobaltboy made their first contribution in #2987
Full Changelog: 4.6.1...4.7.0-alpha.1
4.6.1
What's Changed
- [HOTFIX] Fix 0063 migration postgres by @gantoine in #2940
- Bump python-multipart from 0.0.20 to 0.0.22 by @dependabot[bot] in #2939
- Add workflow to run migrations on PR by @gantoine in #2941
- Add match-none-logig entries to locales by @gantoine in #2944
Full Changelog: 4.6.0...4.6.1
4.6.0
Highlights
Additional metadata
The edit dialog now allows you to manually set metadata properties that would otherwise only be aggregated from metadata sources, if those metadata sources don't support/populate certain fields. #2848
Enhance folder structure config
We've improved the web interface that lets you configure platform bindings and versions, and excluded files and folders. This change should simplify the process of configuring how library folders are interpreted and what content is ignored during scanning. #2809
![]() |
![]() |
|---|
Patcher.js
- We're introducing a new ROM patching feature to the app that enables your admins and editors to apply various types of patches to ROM files. At this time both ROM and patch files must be downloaded locally and re-uploaded via the patcher, with future work planned to patch ROMs directly from your library. #2787
UI settings sync
UI settings are now synced between devices for every user! These settings do not affect third-party apps, and any setting must be changed at least once for this sync to take effect. #2777
BIOS file defaults
A default BIOS file can now be specified per emulator core directly in your config.yml:
emulatorjs:
settings:
mgba:
bios_file: gba_bios.binMinor changes
- Add library structure management on setup wizard by @zurdi15 #2784
- Added player count metadata from SS with display and filter by @DevOldSchool in https://github.com/rommapp/romm/2872
- Add support for version tag from filename by @gantoine in #2820
- Support for multi-value filters by @adamantike in #2411
- Allow chd lookups in the hasheous database by @josegonzalez in #2866
- ROMs filter endpoint + refactor by @gantoine in #2904
- Add NONE support for filter logic operators by @gantoine in #2933
- Update platform display in Scan.vue to use display_name and enhance item details by @zurdi15 in #2935
Fixes
- Fix YAML indentation in netplay section of config example file by @Zuko in #2812
- [HOTFIX] Fix scrolling load more in gallery views by @gantoine in #2813
- [HOTFIX] Multi roms should only consider top-level files by @gantoine in #2821
- Notes flag by @zurdi15 in #2817
- [ROMM-2824] Also replace - with : for edge cases in HLTB and LB handlers by @gantoine in #2827
- [ROMM-2844] Use webp images for game covers in list view by @gantoine in #2845
- [ROMM-2835] Fix appearance of chevron screenshot buttons by @gantoine in #2846
- [ROMM-2833] Fix using default locales in igdb handler by @gantoine in #2847
- [ROMM-2796] Add check to overwrite media assets by @gantoine in #2851
- Allow deleting single chip in additional metadata by @SaraVieira in #2861
- [ROMM-2853] Update rom_file.category column enum by @gantoine in #2860
- [HOTFIX] Dont schedule tasks if already queued by @gantoine in #2885
- [ROMM-2808] Stop filtering nsfw games from search results by @gantoine in #2852
- [ROMM-2856] Use platform slug to fetch feed games by @gantoine in #2862
- [HOTFIX] Check if gamelist metadata source selected before populating cache by @gantoine in #2865
- [ROMM-2889] Add media to update_config_file by @gantoine in #2897
- [HOTFIX] Rename selected_statuses to statuses by @gantoine in #2902
- [HOTFIX] Only add ? to qs on download path by @gantoine in #2907
- [ROMM-2874] Feature/updated-after-query-param by @BrandonKowalski in #2898
- [ROMM-2906] Fix icon color light mode by @gantoine in #2913
- [HOTFIX] Remove
filesfrom model_dump in scan by @gantoine in #2914 - [ROMM-2891] Empty String Flashpoint ID by @BrandonKowalski in #2918
Other changes
- Improve performance of queries on roms table by @MaienM in #2811
- Add CPS1-3 and TIC-80 by @SaraVieira in #2828
- Update docker compose variables by @SaraVieira in #2849
- Configure and run deptry by @adamantike in #2859
- [HOTFIX] Set metadata fields as nullable by @gantoine in #2864
- [ROMM-2877] Drop index on rom file content by @gantoine in #2878
- Add
WEB_SERVER_GUNICORN_WAITenv var for slow systems by @gantoine in #2887 - Collection updated after query param by @BrandonKowalski in #2915
- Decompress 7z archives on the fly rather than extracting to disk by @Delgan in #2931
- Add CHEAT to RomFile category types by @gantoine in #2937
- Bump tar from 7.4.3 to 7.5.3 in /frontend by @dependabot[bot] in #2908
- Bump authlib from 1.6.5 to 1.6.6 by @dependabot[bot] in #2909
- Bump urllib3 from 2.6.2 to 2.6.3 by @dependabot[bot] in #2910
- Bump aiohttp from 3.12.14 to 3.13.3 by @dependabot[bot] in #2911
- Bump python-socketio from 5.11.1 to 5.14.0 by @dependabot[bot] in #2912
- Bump tar from 7.5.3 to 7.5.6 in /frontend by @dependabot[bot] in #2929
- Bump lodash from 4.17.21 to 4.17.23 in /frontend by @dependabot[bot] in #2932
New Contributors
- @Zuko made their first contribution in #2812
- @josegonzalez made their first contribution in #2866
- @DevOldSchool made their first contribution in #2872
- @BrandonKowalski made their first contribution in #2898
- @Delgan made their first contribution in #2931
Full Changelog: 4.5.0...4.6.0
4.6.0-beta.2
Highlights
Additional metadata
The edit dialog now allows you to manually set metadata properties that would otherwise only be aggregated from metadata sources, if those metadata sources don't support/populate certain fields. #2848
Enhance folder structure config
We've improved the web interface that lets you configure platform bindings and versions, and excluded files and folders. This change should simplify the process of configuring how library folders are interpreted and what content is ignored during scanning. #2809
![]() |
![]() |
|---|
Patcher.js
- We're introducing a new ROM patching feature to the app that enables your admins and editors to apply various types of patches to ROM files. At this time both ROM and patch files must be downloaded locally and re-uploaded via the patcher, with future work planned to patch ROMs directly from your library. #2787
UI settings sync
UI settings are now synced between devices for every user! These settings do not affect third-party apps, and any setting must be changed at least once for this sync to take effect. #2777
BIOS file defaults
A default BIOS file can now be specified per emulator core directly in your config.yml:
emulatorjs:
settings:
mgba:
bios_file: gba_bios.binMinor changes
- Add library structure management on setup wizard by @zurdi15 #2784
- Added player count metadata from SS with display and filter by @DevOldSchool in https://github.com/rommapp/romm/2872
- Add support for version tag from filename by @gantoine in #2820
- Support for multi-value filters by @adamantike in #2411
- Allow chd lookups in the hasheous database by @josegonzalez in #2866
- ROMs filter endpoint + refactor by @gantoine in #2904
- Add NONE support for filter logic operators by @gantoine in #2933
Fixes
- Fix YAML indentation in netplay section of config example file by @Zuko in #2812
- [HOTFIX] Fix scrolling load more in gallery views by @gantoine in #2813
- [HOTFIX] Multi roms should only consider top-level files by @gantoine in #2821
- Notes flag by @zurdi15 in #2817
- [ROMM-2824] Also replace - with : for edge cases in HLTB and LB handlers by @gantoine in #2827
- [ROMM-2844] Use webp images for game covers in list view by @gantoine in #2845
- [ROMM-2835] Fix appearance of chevron screenshot buttons by @gantoine in #2846
- [ROMM-2833] Fix using default locales in igdb handler by @gantoine in #2847
- [ROMM-2796] Add check to overwrite media assets by @gantoine in #2851
- Allow deleting single chip in additional metadata by @SaraVieira in #2861
- [ROMM-2853] Update rom_file.category column enum by @gantoine in #2860
- [HOTFIX] Dont schedule tasks if already queued by @gantoine in #2885
- [ROMM-2808] Stop filtering nsfw games from search results by @gantoine in #2852
- [ROMM-2856] Use platform slug to fetch feed games by @gantoine in #2862
- [HOTFIX] Check if gamelist metadata source selected before populating cache by @gantoine in #2865
- [ROMM-2889] Add media to update_config_file by @gantoine in #2897
- [HOTFIX] Rename selected_statuses to statuses by @gantoine in #2902
- [HOTFIX] Only add ? to qs on download path by @gantoine in #2907
- [ROMM-2874] Feature/updated-after-query-param by @BrandonKowalski in #2898
- [ROMM-2906] Fix icon color light mode by @gantoine in #2913
- [HOTFIX] Remove
filesfrom model_dump in scan by @gantoine in #2914 - [ROMM-2891] Empty String Flashpoint ID by @BrandonKowalski in #2918
Other changes
- Improve performance of queries on roms table by @MaienM in #2811
- Add CPS1-3 and TIC-80 by @SaraVieira in #2828
- Update docker compose variables by @SaraVieira in #2849
- Configure and run deptry by @adamantike in #2859
- [HOTFIX] Set metadata fields as nullable by @gantoine in #2864
- [ROMM-2877] Drop index on rom file content by @gantoine in #2878
- Add
WEB_SERVER_GUNICORN_WAITenv var for slow systems by @gantoine in #2887 - Collection updated after query param by @BrandonKowalski in #2915
- Decompress 7z archives on the fly rather than extracting to disk by @Delgan in #2931
- Bump tar from 7.4.3 to 7.5.3 in /frontend by @dependabot[bot] in #2908
- Bump authlib from 1.6.5 to 1.6.6 by @dependabot[bot] in #2909
- Bump urllib3 from 2.6.2 to 2.6.3 by @dependabot[bot] in #2910
- Bump aiohttp from 3.12.14 to 3.13.3 by @dependabot[bot] in #2911
- Bump python-socketio from 5.11.1 to 5.14.0 by @dependabot[bot] in #2912
- Bump tar from 7.5.3 to 7.5.6 in /frontend by @dependabot[bot] in #2929
- Bump lodash from 4.17.21 to 4.17.23 in /frontend by @dependabot[bot] in #2932
New Contributors
- @Zuko made their first contribution in #2812
- @josegonzalez made their first contribution in #2866
- @DevOldSchool made their first contribution in #2872
- @BrandonKowalski made their first contribution in #2898
- @Delgan made their first contribution in #2931
Full Changelog: 4.5.0...4.6.0-beta.2
4.6.0-beta.1
Highlights
Additional metadata
The edit dialog now allows you to manually set metadata properties that would otherwise only be aggregated from metadata sources, if those metadata sources don't support/populate certain fields. #2848
Enhance folder structure config
We've improved the web interface that lets you configure platform bindings and versions, and excluded files and folders. This change should simplify the process of configuring how library folders are interpreted and what content is ignored during scanning. #2809
![]() |
![]() |
|---|
Patcher.js
- We're introducing a new ROM patching feature to the app that enables your admins and editors to apply various types of patches to ROM files. At this time both ROM and patch files must be downloaded locally and re-uploaded via the patcher, with future work planned to patch ROMs directly from your library. #2787
UI settings sync
UI settings are now synced between devices for every user! These settings do not affect third-party apps, and any setting must be changed at least once for this sync to take effect. #2777
BIOS file defaults
A default BIOS file can now be specified per emulator core directly in your config.yml:
emulatorjs:
settings:
mgba:
bios_file: gba_bios.binMinor changes
- Add library structure management on setup wizard by @zurdi15 #2784
- Added player count metadata from SS with display and filter by @DevOldSchool in https://github.com/rommapp/romm/2872
- Add support for version tag from filename by @gantoine in #2820
- Support for multi-value filters by @adamantike in #2411
- Allow chd lookups in the hasheous database by @josegonzalez in #2866
- ROMs filter endpoint + refactor by @gantoine in #2904
Fixes
- Fix YAML indentation in netplay section of config example file by @Zuko in #2812
- [HOTFIX] Fix scrolling load more in gallery views by @gantoine in #2813
- [HOTFIX] Multi roms should only consider top-level files by @gantoine in #2821
- Notes flag by @zurdi15 in #2817
- [ROMM-2824] Also replace - with : for edge cases in HLTB and LB handlers by @gantoine in #2827
- [ROMM-2844] Use webp images for game covers in list view by @gantoine in #2845
- [ROMM-2835] Fix appearance of chevron screenshot buttons by @gantoine in #2846
- [ROMM-2833] Fix using default locales in igdb handler by @gantoine in #2847
- [ROMM-2796] Add check to overwrite media assets by @gantoine in #2851
- Allow deleting single chip in additional metadata by @SaraVieira in #2861
- [ROMM-2853] Update rom_file.category column enum by @gantoine in #2860
- [HOTFIX] Dont schedule tasks if already queued by @gantoine in #2885
- [ROMM-2808] Stop filtering nsfw games from search results by @gantoine in #2852
- [ROMM-2856] Use platform slug to fetch feed games by @gantoine in #2862
- [HOTFIX] Check if gamelist metadata source selected before populating cache by @gantoine in #2865
- [ROMM-2889] Add media to update_config_file by @gantoine in #2897
- [HOTFIX] Rename selected_statuses to statuses by @gantoine in #2902
- [HOTFIX] Only add ? to qs on download path by @gantoine in #2907
- [ROMM-2874] Feature/updated-after-query-param by @BrandonKowalski in #2898
- [ROMM-2906] Fix icon color light mode by @gantoine in #2913
- [HOTFIX] Remove
filesfrom model_dump in scan by @gantoine in #2914 - [ROMM-2891] Empty String Flashpoint ID by @BrandonKowalski in #2918
Other changes
- Improve performance of queries on roms table by @MaienM in #2811
- Add CPS1-3 and TIC-80 by @SaraVieira in #2828
- Update docker compose variables by @SaraVieira in #2849
- Configure and run deptry by @adamantike in #2859
- [HOTFIX] Set metadata fields as nullable by @gantoine in #2864
- [ROMM-2877] Drop index on rom file content by @gantoine in #2878
- Add
WEB_SERVER_GUNICORN_WAITenv var for slow systems by @gantoine in #2887 - Collection updated after query param by @BrandonKowalski in #2915
- Bump tar from 7.4.3 to 7.5.3 in /frontend by @dependabot[bot] in #2908
- Bump authlib from 1.6.5 to 1.6.6 by @dependabot[bot] in #2909
- Bump urllib3 from 2.6.2 to 2.6.3 by @dependabot[bot] in #2910
- Bump aiohttp from 3.12.14 to 3.13.3 by @dependabot[bot] in #2911
- Bump python-socketio from 5.11.1 to 5.14.0 by @dependabot[bot] in #2912
New Contributors
- @Zuko made their first contribution in #2812
- @josegonzalez made their first contribution in #2866
- @DevOldSchool made their first contribution in #2872
- @BrandonKowalski made their first contribution in #2898
Full Changelog: 4.5.0...4.6.0-alpha.2
4.6.0-alpha.4
What's Changed
- [ROMM-2891] Empty String Flashpoint ID by @BrandonKowalski in #2918
Full Changelog: 4.6.0-alpha.3...4.6.0-alpha.4
4.6.0-alpha.3
What's Changed
- [HOTFIX] Remove
filesfrom model_dump in scan by @gantoine in #2914 - Feature/collection-updated-after-query-param by @BrandonKowalski in #2915
Full Changelog: 4.6.0-alpha.2...4.6.0-alpha.3
4.6.0-alpha.2
Highlights
Additional metadata
The edit dialog now allows you to manually set metadata properties that would otherwise only be aggregated from metadata sources, if those metadata sources don't support/populate certain fields. #2848
Enhance folder structure config
We've improved the web interface that lets you configure platform bindings and versions, and excluded files and folders. This change should simplify the process of configuring how library folders are interpreted and what content is ignored during scanning. #2809
![]() |
![]() |
|---|
Patcher.js
- We're introducing a new ROM patching feature to the app that enables your admins and editors to apply various types of patches to ROM files. At this time both ROM and patch files must be downloaded locally and re-uploaded via the patcher, with future work planned to patch ROMs directly from your library. #2787
UI settings sync
UI settings are now synced between devices for every user! These settings do not affect third-party apps, and any setting must be changed at least once for this sync to take effect. #2777
BIOS file defaults
A default BIOS file can now be specified per emulator core directly in your config.yml:
emulatorjs:
settings:
mgba:
bios_file: gba_bios.binMinor changes
- Add library structure management on setup wizard by @zurdi15 #2784
- Added player count metadata from SS with display and filter by @DevOldSchool in https://github.com/rommapp/romm/2872
- Add support for version tag from filename by @gantoine in #2820
- Support for multi-value filters by @adamantike in #2411
- Allow chd lookups in the hasheous database by @josegonzalez in #2866
- ROMs filter endpoint + refactor by @gantoine in #2904
Fixes
- Fix YAML indentation in netplay section of config example file by @Zuko in #2812
- [HOTFIX] Fix scrolling load more in gallery views by @gantoine in #2813
- [HOTFIX] Multi roms should only consider top-level files by @gantoine in #2821
- Notes flag by @zurdi15 in #2817
- [ROMM-2824] Also replace - with : for edge cases in HLTB and LB handlers by @gantoine in #2827
- [ROMM-2844] Use webp images for game covers in list view by @gantoine in #2845
- [ROMM-2835] Fix appearance of chevron screenshot buttons by @gantoine in #2846
- [ROMM-2833] Fix using default locales in igdb handler by @gantoine in #2847
- [ROMM-2796] Add check to overwrite media assets by @gantoine in #2851
- Allow deleting single chip in additional metadata by @SaraVieira in #2861
- [ROMM-2853] Update rom_file.category column enum by @gantoine in #2860
- [HOTFIX] Dont schedule tasks if already queued by @gantoine in #2885
- [ROMM-2808] Stop filtering nsfw games from search results by @gantoine in #2852
- [ROMM-2856] Use platform slug to fetch feed games by @gantoine in #2862
- [HOTFIX] Check if gamelist metadata source selected before populating cache by @gantoine in #2865
- [ROMM-2889] Add media to update_config_file by @gantoine in #2897
- [HOTFIX] Rename selected_statuses to statuses by @gantoine in #2902
- [HOTFIX] Only add ? to qs on download path by @gantoine in #2907
- [ROMM-2874] Feature/updated-after-query-param by @BrandonKowalski in #2898
- [ROMM-2906] Fix icon color light mode by @gantoine in #2913
Other changes
- Improve performance of queries on roms table by @MaienM in #2811
- Add CPS1-3 and TIC-80 by @SaraVieira in #2828
- Update docker compose variables by @SaraVieira in #2849
- Configure and run deptry by @adamantike in #2859
- [HOTFIX] Set metadata fields as nullable by @gantoine in #2864
- [ROMM-2877] Drop index on rom file content by @gantoine in #2878
- Add
WEB_SERVER_GUNICORN_WAITenv var for slow systems by @gantoine in #2887 - Bump tar from 7.4.3 to 7.5.3 in /frontend by @dependabot[bot] in #2908
- Bump authlib from 1.6.5 to 1.6.6 by @dependabot[bot] in #2909
- Bump urllib3 from 2.6.2 to 2.6.3 by @dependabot[bot] in #2910
- Bump aiohttp from 3.12.14 to 3.13.3 by @dependabot[bot] in #2911
- Bump python-socketio from 5.11.1 to 5.14.0 by @dependabot[bot] in #2912
New Contributors
- @Zuko made their first contribution in #2812
- @josegonzalez made their first contribution in #2866
- @DevOldSchool made their first contribution in #2872
- @BrandonKowalski made their first contribution in #2898
Full Changelog: 4.5.0...4.6.0-alpha.2
4.6.0-alpha.1
Note
API Changes
⚠️ EndpointGET /api/romsnow only accepts multiple values for the following fields:platform_id -> platform_idsselected_genre -> genresselected_franchise -> franchisesselected_collection -> collectionsselected_company -> companiesselected_age_rating -> age_ratingsselected_status -> statusesselected_region -> regionsselected_language -> languages
- The endpoint also accepts the following new fields:
last_played: Whether the rom has a last played value for the current userplayer_counts: Associated player countsgenres_logic: Logic operator for genres filter: 'any' (OR) or 'all' (AND)franchises_logic: Logic operator for franchises filter: 'any' (OR) or 'all' (AND)collections_logic: Logic operator for collections filter: 'any' (OR) or 'all' (AND)companies_logic: Logic operator for companies filter: 'any' (OR) or 'all' (AND)age_ratings_logic: Logic operator for age ratings filter: 'any' (OR) or 'all' (AND)regions_logic: Logic operator for regions filter: 'any' (OR) or 'all' (AND)languages_logic: Logic operator for languages filter: 'any' (OR) or 'all' (AND)statuses_logic: Logic operator for statuses filter: 'any' (OR) or 'all' (AND)player_counts_logic: Logic operator for player count filter: 'any' (OR) or 'all' (AND)
- New field
UserSchema.ui_settings/UserForm.ui_settings: sync UI settings between devices - New field
RomMetadataSchema.player_count: Aggregate player count for games (1, 2, 2-4, etc) - New field
RomSchema.has_notes: Whether a ROM + user combo has at least 1 note - New field
RomSchema.manual_metadata: Manually set metadata fields typically aggregated from metadata sources - New endpoint
GET /api/setup/library: Get library structure information for setup wizard - New endpoint
POST /api/setup/platforms: Create platform folders during setup wizard - Expose
scan.mediafrom config file viaConfigResponse.SCAN_MEDIAproperty
Highlights
Additional metadata
The edit dialog now allows you to manually set metadata properties that would otherwise only be aggregated from metadata sources, if those metadata sources don't support/populate certain fields. #2848
Enhance folder structure config
We've improved the web interface that lets you configure platform bindings and versions, and excluded files and folders. This change should simplify the process of configuring how library folders are interpreted and what content is ignored during scanning. #2809
![]() |
![]() |
|---|
Patcher.js
- We're introducing a new ROM patching feature to the app that enables your admins and editors to apply various types of patches to ROM files. At this time both ROM and patch files must be downloaded locally and re-uploaded via the patcher, with future work planned to patch ROMs directly from your library. #2787
UI settings sync
UI settings are now synced between devices for every user! These settings do not affect third-party apps, and any setting must be changed at least once for this sync to take effect. #2777
BIOS file defaults
A default BIOS file can now be specified per emulator core directly in your config.yml:
emulatorjs:
settings:
mgba:
bios_file: gba_bios.binMinor changes
- Add library structure management on setup wizard by @zurdi15 #2784
- Added player count metadata from SS with display and filter by @DevOldSchool in https://github.com/rommapp/romm/2872
- Add support for version tag from filename by @gantoine in #2820
- Support for multi-value filters by @adamantike in #2411
- Allow chd lookups in the hasheous database by @josegonzalez in #2866
Fixes
- Fix YAML indentation in netplay section of config example file by @Zuko in #2812
- [HOTFIX] Fix scrolling load more in gallery views by @gantoine in #2813
- [HOTFIX] Multi roms should only consider top-level files by @gantoine in #2821
- Notes flag by @zurdi15 in #2817
- [ROMM-2824] Also replace - with : for edge cases in HLTB and LB handlers by @gantoine in #2827
- [ROMM-2844] Use webp images for game covers in list view by @gantoine in #2845
- [ROMM-2835] Fix appearance of chevron screenshot buttons by @gantoine in #2846
- [ROMM-2833] Fix using default locales in igdb handler by @gantoine in #2847
- [ROMM-2796] Add check to overwrite media assets by @gantoine in #2851
- Allow deleting single chip in additional metadata by @SaraVieira in #2861
- [ROMM-2853] Update rom_file.category column enum by @gantoine in #2860
- [HOTFIX] Dont schedule tasks if already queued by @gantoine in #2885
- [ROMM-2808] Stop filtering nsfw games from search results by @gantoine in #2852
- [ROMM-2856] Use platform slug to fetch feed games by @gantoine in #2862
- [HOTFIX] Check if gamelist metadata source selected before populating cache by @gantoine in #2865
- [ROMM-2889] Add media to update_config_file by @gantoine in #2897
Other changes
- Improve performance of queries on roms table by @MaienM in #2811
- Add CPS1-3 and TIC-80 by @SaraVieira in #2828
- Update docker compose variables by @SaraVieira in #2849
- Configure and run deptry by @adamantike in #2859
- [HOTFIX] Set metadata fields as nullable by @gantoine in #2864
- [ROMM-2877] Drop index on rom file content by @gantoine in #2878
- Add
WEB_SERVER_GUNICORN_WAITenv var for slow systems by @gantoine in #2887
New Contributors
- @Zuko made their first contribution in #2812
- @josegonzalez made their first contribution in #2866
- @DevOldSchool made their first contribution in #2872
Full Changelog: 4.5.0...4.6.0-alpha.1
4.5.0
Highlights
Netplay
The incredibly smart and beautiful people over at the EmulatorJS project have added Netplay to their client, allowing you to play with your friends on the same instance over the internet! Enable netplay and configure the STUN/TURN servers in your config.yml:
emulatorjs:
netplay:
enabled: true
ice_servers:
- urls: "stun:stun.relay.metered.ca:80"
- urls: "turn:global.relay.metered.ca:80"
username: "<username>"
credential: "<password>"To host a game, start it, then hit the 🌐 icon in botton bar. Set your name, create a room (password optional), and other players should be able to see and join your room. All players need access to your RomM server to join a room and play together. #2728
Multiple notes
You've begged for it, and boy did we ever delivered! Write and store multiple notes for each game, with full mark down support; sharable, swapable, and easily identified with the 📝 icon. #2665
Metadata locale selection for IGDB and ScreenScraper
You can now set the order of your preferred locales/regional variants when fetching metadata from IGDB and ScreenScraper. The options below are available and can be set in your config.yml. #2700
scan:
priority:
region:
- "us" # United States (no localization needed)
- "wor" # World (default)
- "ss" # Screenscraper (default)
- "eu" # Europe
- "jp" # Japan
- "kr" # Korea
- "cn" # China (simplified)
- "tw" # Taiwan (traditional)
Minor changes
- Query parameter handling for tabs and sub-tabs by @zurdi15 in #2695
- Redirect related games to RomM entry if exists by @zurdi15 in #2729
- Make hashing during scan optional with
filesystem.skip_hash_calculationinconfig.ymlby @zurdi15 in #2703 - Console mode locale by @Slabak007 in #2710
- Add translations for firmware management dialogs by @tvdu29 in #2714
- Hungarian translation added (finish, 12/12 files done). by @Soderes in #2718
- Improved save/state layout by @zurdi15 in #2779
- [ROMM-2697] Use colocated es-de folders to import art not present in gamelist.xml by @gantoine in #2766
Fixes
- Czech language pluralization by @Slabak007 in #2701
- Fixed link to documentation in filestructure error by @Descent098 in #2713
- Fix French translations and add locale-aware date formatting by @tvdu29 in #2740
- Invalidate invite token before creating user by @gantoine in #2715
- Fix kekatsu tsv format by @phramusca in #2719
- Update /gamelist/export to generate a correct Batocera gamelist.xml by @vargash in #2720
- Migration 0057 fix by @Tux00-repo in #2739
- [ROMM-2746] Drop + from filenames on update by @gantoine in #2752
- [ROMM-2748] Add
OIDC_USERNAME_ATTRIBUTEby @gantoine in #2755 - [ROMM-2721] Fix saving user without password by @gantoine in #2754
- [ROMM-2722] Fix matching special chars in ssfr by @gantoine in #2753
- Catch RomsNotFoundException in scan file precalculation by @gantoine in #2756
- [ROMM-2685] Fix updating ssfr ID art assets by @gantoine in #2758
- Strip keys from ssfr api query params by @gantoine in #2778
- Change scan type to QUICK for scheduled library scans by @zurdi15 in #2782
- [HOTFIX] Fetch security token for HLTB by @gantoine in #2772
- [ROMM-2774] Remove unsupported language tags by @gantoine in #2775
- [ROMM-2791] Stop filtering out None values in order_by filter by @gantoine in #2804
- [ROMM-2806] Fix arcade ssid in screenscraper by @gantoine in #2807
- Game details view little fixes by @zurdi15 in #2803
Behind-the-scenes
- Cache parsed gamelist.xml files on each scan by @gantoine in #2699
- Add redis-backed session middleware by @gantoine in #2716
- Fix scan_rom tests by @gantoine in #2731
- Move merged_screenshots and merged_ra_metadata to simple RomSchema by @gantoine in #2744
- [ROMM-2668] Speedup feeds endpoint by @gantoine in #2757
- [ROMM-2762] Add get_rom_by_hash endpoint by @gantoine in #2764
- [ROMM-2763] Add MSX2 to ssfr platforms list by @gantoine in #2765
- Add OpenBOR metadata entry for screenscraper by @ronzano in #2760
New Contributors
- @Descent098 made their first contribution in #2713
- @phramusca made their first contribution in #2719
- @vargash made their first contribution in #2720
- @Soderes made their first contribution in #2718
- @Tux00-repo made their first contribution in #2739
- @ronzano made their first contribution in #2760
Full Changelog: 4.4.1...4.5.0



