Skip to content

Releases: rommapp/romm

v4.1.0-beta.1

14 Aug 14:26
a02e320
Compare
Choose a tag to compare
v4.1.0-beta.1 Pre-release
Pre-release

Caution

As of this version, a valid config.yml file is required to run the app, and must be mounted before upgrading to 4.1.0. Please refer to the instructions at the top of this example config.yml file. The file can be used as-is without making any changes.

Warning

Some platform slugs have been updated to fix common setup issues and remove duplicates. If you use any of the following platforms, the system will migrate to the new slugs will happen automatically, and update your config.yml file accordingly. No manual intervention is required.

cpc, apple-i, apple2, apple2gs, apple3, mattel-aquarius, atari-2600, atari-5200, atari-7800, atari-8-bit, bally-astrocade, bbc-micro, cd-i, cdtv, channel-f, commodore-16-plus4, dragon-3264, dreamcast, edsac--1, electron, elektor-tv-games-computer, fmtowns, game-com, gameboy, gameboy-color, gameboy-advance, game-gear, gamecube, genesis-slash-megadrive, macintosh, microcomputer--1, microvision--1, neo-geo, odyssey--1, nintendo-ds, palmos, pc88, pc98, pet, pdp-7--1, pdp-8--1, playstation, ps, ps4--1, playstation-4, playstation-5, ps-vita, sega-32x, sega-cd, sega-cd-32x, sega-master-system, sega-saturn, sharp-x1, sinclair-zx81, sg-1000, switch2, thomson-mo, trs-80-coco, turbografx-16-slash-pc-engine-cd, turbo-grafx, turbografx16--1, watara-slash-quickshot-supervision, windows, zx-spectrum

New Features

Missing games admin page

There's a new tag under the Library Management section of the admin panel that displays all ROMs present in the database but missing from the file system. You can choose to delete single games, groups of games using multi-select, or simply purge (cleanup) all missing games from the database with a single click.

#2172

Smart collections

Create smart, self-updating collections for a selection of search terms and filters! On the search page, change the search term and/or filters, and a new button will appear in the top bar. The dialog will display which filters will be set and allow you to give this smart collection a name and description.

Note: the list of games will only update when you view the contents of the collection

Screenshot 2025-08-09 at 3 40 44 PM

#2136

Minor Changes

Note

The API responses for the following endpoints have changed. Please refer to the swagger docs under /api/docs for the updated response types.

/api/firmware/delete, /api/rom/delete, /api/tasks/{task_id}, /api/tasks/run and /api/tests/run/{task_name}

Bug Fixes

Other

New Contributors

Full Changelog: 4.0.1...4.1.0-beta.1

4.1.0-alpha.1

09 Aug 19:48
c048383
Compare
Choose a tag to compare
4.1.0-alpha.1 Pre-release
Pre-release

Caution

As of this version, a valid config.yml file is required to run the app, and must be mounted before upgrading to 4.1.0. Please refer to the instructions at the top of this example config.yml file. The file can be used as-is without making any changes.

Warning

Some platform slugs have been updated to fix common setup issues and remove duplicates. If you use any of the following platforms, the system will migrate to the new slugs will happen automatically, and update your config.yml file accordingly. No manual intervention is required.

cpc, apple-i, apple2, apple2gs, apple3, mattel-aquarius, atari-2600, atari-5200, atari-7800, atari-8-bit, bally-astrocade, bbc-micro, cd-i, cdtv, channel-f, commodore-16-plus4, dragon-3264, dreamcast, edsac--1, electron, elektor-tv-games-computer, fmtowns, game-com, gameboy, gameboy-color, gameboy-advance, game-gear, gamecube, genesis-slash-megadrive, macintosh, microcomputer--1, microvision--1, neo-geo, odyssey--1, nintendo-ds, palmos, pc88, pc98, pet, pdp-7--1, pdp-8--1, playstation, ps, ps4--1, playstation-4, playstation-5, ps-vita, sega-32x, sega-cd, sega-cd-32x, sega-master-system, sega-saturn, sharp-x1, sinclair-zx81, sg-1000, switch2, thomson-mo, trs-80-coco, turbografx-16-slash-pc-engine-cd, turbo-grafx, turbografx16--1, watara-slash-quickshot-supervision, windows, zx-spectrum

New Features

Missing games admin page

There's a new tag under the Library Management section of the admin panel that displays all ROMs present in the database but missing from the file system. You can choose to delete single games, groups of games using multi-select, or simply purge (cleanup) all missing games from the database with a single click.

#2172

Smart collections

Create smart, self-updating collections for a selection of search terms and filters! On the search page, change the search term and/or filters, and a new button will appear in the top bar. The dialog will display which filters will be set and allow you to give this smart collection a name and description.

Note: the list of games will only update when you view the contents of the collection

Screenshot 2025-08-09 at 3 40 44 PM

#2136

Minor Changes

Note

The API responses for the following endpoints have changed. Please refer to the swagger docs under /api/docs for the updated response types.

/api/firmware/delete, /api/rom/delete, /api/tasks/{task_id}, /api/tasks/run and /api/tests/run/{task_name}

Bug Fixes

Other

New Contributors

Full Changelog: 4.0.1...4.1.0-alpha.1

v4.0.1

26 Jul 18:14
d0a6d88
Compare
Choose a tag to compare

Minor changes

  • Added clean resources task + revamped the whole task system by @zurdi15 in #2135
  • [ROMM-2118] Store last scan selected sources in storage by @gantoine in #2120
  • [ROMM-1975] Add YOUTUBE_BASE_URL for custom youtube proxy by @gantoine in #2125
  • [ROMM-1230] Add background color picker to ruffle by @gantoine in #2129
  • Display version information in the banner by @zurdi15 in #2117

Fixes

Other changes

New Contributors

Full Changelog: 4.0.0...4.0.1

v4.0.0: Hashed Edition

20 Jul 22:19
23ff6d6
Compare
Choose a tag to compare

It's here, it's real and it's awesome: 4.0.0 is our most feature-packed release yet! 💫

We're thrilled to finally announce the long-awaited hash-based metadata matching feature, which allows you to validate your ROMs against popular DATfile databases like No-Intro, Redump and TOSEC.

Caution

This release fixes a critical authenticated arbitrary file write vulnerability (CVE-2025-54071) in all API endpoints that accept uploaded files, which can lead to remote code execution on the system. All previous versions are affected. All users should update immediately to this version, or see the mitigations in the advisory below. #2085
GHSA-fgxf-hggc-qqmq

Highlights

Hash-based metadata matching

We've partnered with two friends and members of the community, @michael-j-green and @DevYukine, to bring you a powerful new feature that allows you to match your ROMs against hash databases like No-Intro, Redump and TOSEC. They've built new public and free APIs, Hasheous and Playmatch respectively, that validate the contents of your ROM files against these databases. In the case of Hasheous, it also proxies metadata from IGDB, so you no longer need to set up IGDB credentials to fetch metadata from IGDB.

To start using Hasheous, simply set HASHEOUS_API_ENABLED=true in your environment variables, and future scans will use the Hasheous API. And for Playmatch, set PLAYMATCH_API_ENABLED=true in your environment variables. Note that you'll need to set up IGDB credentials to use Playmatch, as it does not proxy IGDB metadata like Hasheous does.

You can find popular metadata provider combinations for scans in the documentation.

Screenshot 2025-07-20 at 6 16 21 PM

#1931 #1990 #1997

LaunchBox metadata

The LaunchBox Games Database is a community-driven database that provides metadata, cover art, and screenshots. Like the LaunchBox desktop application, RomM downloads the entire database locally and matches games based on their exact filenames. This is a privacy-friendly option for users who want to import metadata without relying on online APIs, and/or already use LaunchBox to manage their game collections.

To enable LaunchBox, set LAUNCHBOX_API_ENABLED=true in your environment variables. You can enable regular updates of the database by setting ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA, and set the frequency of the cron job with SCHEDULED_UPDATE_LAUNCHBOX_METADATA_CRON (defaults to 5:00 AM every day).

#1515

SteamGridDB during scans

SteamGridDB, the community-driven platform for cover art, is now available to use during scans. When selected as a source on the scan page, RomM will prioritize high-quality cover art from SteamGridDB for both matched and unmatched (no metadata found) games. Instructions for setting up SteamGridDB are available in the documentation.

Screenshot 2025-07-20 at 6 14 08 PM

Mark games with missing files as "missing"

In previous versions, RomM would delete games from the database if the file(s) were missing from the filesystem. This would lead to the loss of notes, save files and manual metadata matches. Now, these games will be marked as "missing" instead of being deleted, allowing you to restore them later if the files are added back. Use the filter bar on the search, platform and collection pages to easily find these games.

#1977

Android app

Community member and developer extraordinaire @mattsays has just released an unofficial companion app for RomM. The app allows you to browse, manage, and organize your retro gaming collection directly from your Android device, as well as download games to it. While the app is not yet available on the Google Play Store, you can download the latest APK from the GitHub repository.

DOS with EmulatorJS

Playing MS-DOS games in the browser is now possible with EmulatorJS, with a bit of setup required. As with PSP emulation, we recommend using the unofficial desktop app, which enables the required browser features without compromising your security.

Minor changes

Fixes

Other changes

Warning

API endpoint changes

  • Remove deprecated boolean parameters from get_roms endpoint by @adamantike in #2004
  • Remove support for deprecated GUNICORN_WORKERS variable by @adamantike in #2003

New Contributors

Read more

v4.0.0-rc.1

19 Jul 14:42
24c0b18
Compare
Choose a tag to compare
v4.0.0-rc.1 Pre-release
Pre-release

What's Changed

Full Changelog: 4.0.0-beta.4...4.0.0-rc.1

v4.0.0-beta.4

18 Jul 17:26
9e722f5
Compare
Choose a tag to compare
v4.0.0-beta.4 Pre-release
Pre-release

What's Changed

  • fix: SGDB cover fallback by @zurdi15
  • fix: Load platform icon image source to prefer SVG over ICO format by @zurdi15
  • Centralize filesystem operations in base handler by @gantoine
  • [ROMM-1780] Random game button by @gantoine
  • build(deps): bump @intlify/core-base and vue-i18n in /frontend by @dependabot[bot]

Full Changelog: 4.0.0-beta.3...4.0.0-beta.4

v4.0.0-beta.3

16 Jul 03:54
539a166
Compare
Choose a tag to compare
v4.0.0-beta.3 Pre-release
Pre-release

CVE-2025-53908

Caution

This release fixes a critical authenticated path traversal vulnerability in an API endpoint that could allow unauthorized access to system files. All previous versions are affected. All users should update immediately to this patch version.
GHSA-fx9g-xw4j-jwc3

What's Changed

  • Added proper input validation and sanitization to prevent directory traversal attacks by @gantoine in #2085
  • Scan page icons by @gantoine in #2084

Full Changelog: 4.0.0-beta.2...4.0.0-beta.3

v3.10.3

16 Jul 03:53
97373a7
Compare
Choose a tag to compare

CVE-2025-53908

Caution

This release fixes a critical authenticated path traversal vulnerability in an API endpoint that could allow unauthorized access to system files. All previous versions are affected. All users should update immediately to this patch version.
GHSA-fx9g-xw4j-jwc3

What's Changed

  • Added proper input validation and sanitization to prevent directory traversal attacks by @gantoine in #2086

Full Changelog: 3.10.2...3.10.3

v4.0.0-beta.2

15 Jul 20:19
d351ad1
Compare
Choose a tag to compare
v4.0.0-beta.2 Pre-release
Pre-release

Warning

Using beta builds can cause instability and loss of data. We strongly recommend making backups of the database, resources, assets and games library before upgrading to any beta release. Always closely follow the upgrade instructions when switching to an beta release.

Biggest changes in this release:

  • Use Launchbox GamesDB as a local-only metadata source
  • Use Hasheous to find metadata matches using game hashes (MD5, SHA1)
    • Will populate game info using IGDB metadata without setting up IGDB keys (IGDB proxy)
  • Use Playmatch to find IGDB IDs only using game hashes
    • Still requires setting up IGDB to fetch metadata
  • A missing file will now mark a game as "missing" instead of deleting the entry and notes
  • Re-added stats summary as a display option in the home page
  • Dockerfile for developers now provided for 1-step development setup using devcontainers

Six new environment variables were added in this release (default):

  • LAUNCHBOX_API_ENABLED (false): Download and use the Launchbox database when scanning
  • PLAYMATCH_API_ENABLED (false): Compare hashes against Playmatch to populate IGDB data
  • HASHEOUS_API_ENABLED (false): Compare hashes against Hasheous to populate IGDB IDs
  • SESSION_MAX_AGE_SECONDS (1209600): Length of time until browser session expires, in seconds
  • ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA (false): Update local Launchbox database nightly
  • SCHEDULED_UPDATE_LAUNCHBOX_METADATA_CRON (0 5 * * *): How often to run the Launhbox database update

What's Changed

Full Changelog: 4.0.0-beta.1...4.0.0-beta.2

v4.0.0-beta.1

13 Jul 14:41
c9b09e9
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

Warning

Using beta builds can cause instability and loss of data. We strongly recommend making backups of the database, resources, assets and games library before upgrading to any beta release. Always closely follow the upgrade instructions when switching to an beta release.

Biggest changes in this release:

  • Use Launchbox GamesDB as a local-only metadata source
  • Use Hasheous to find metadata matches using game hashes (MD5, SHA1)
    • Will populate game info using IGDB metadata without setting up IGDB keys (IGDB proxy)
  • Use Playmatch to find IGDB IDs only using game hashes
    • Still requires setting up IGDB to fetch metadata
  • A missing file will now mark a game as "missing" instead of deleting the entry and notes
  • Re-added stats summary as a display option in the home page
  • Dockerfile for developers now provided for 1-step development setup using devcontainers

Six new environment variables were added in this release (default):

  • LAUNCHBOX_API_ENABLED (false): Download and use the Launchbox database when scanning
  • PLAYMATCH_API_ENABLED (false): Compare hashes against Hasheous to populate IGDB data
  • HASHEOUS_API_ENABLED (false): Compare hashes against Playmatch to populate IGDB IDs
  • SESSION_MAX_AGE_SECONDS (1209600): Length of time until browser session expires, in seconds
  • ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA (false): Update local Launchbox database nightly
  • SCHEDULED_UPDATE_LAUNCHBOX_METADATA_CRON (0 5 * * *): How often to run the Launhbox database update

Full Changelog: 4.0.0-alpha.4...4.0.0-beta.1