RomM logo

RomM

Beautiful, powerful, self-hosted rom manager and player

Alternative to: antstream arcade


About Versions (114)

5.1.0

2026-07-29

[!WARNING] When binary logging is on and the connecting user lacks SUPER, trigger DDL is refused unless the global log_bin_trust_function_creators flag is 1. Run this on your MariaDB as an admin/root user (not the romm app user):

SET GLOBAL log_bin_trust_function_creators = 1;

SET GLOBAL is lost on DB restart. Either add to your MariaDB my.cnf under [mysqld]:

log_bin_trust_function_creators = 1

Or grant the app user the privilege (MariaDB 10.5+):

`GRANT BINLOG ADMIN ON *.* TO 'romm'@'%';`   -- or: GRANT SUPER ON *.* TO 'romm'@'%';

[!WARNING] If your reverse proxy caches responses itself, or overrides/strips Cache-Control, it will defeat our built-in cache and serve a stale index.html that points at bundles the new image no longer ships, which usually shows up as a blank page or a broken UI after upgrading. After upgrading, purge your proxy’s or CDN’s existing cache once so clients stop being served entries stored under the old (header-less) behaviour.

Highlights

Emulator streaming

Launches a game into a native emulator running in a separate container and streams the picture, sound, and input back to your browser. Unlike EmulatorJS, the emulation runs server-side on real emulator binaries (PCSX2, Dolphin, Xemu), so the heavy lifting happens on the host rather than in the client. #3211

[!IMPORTANT] Emulator streaming is in early development, and documentation is coming soon! If you really want to try it today, refer to this pull request in the rommapp/docs repo.

image2

Per-field artwork priority overrides

Optional per-field artwork priority to prioritize metadata sources differently for covers, screenshots, and manuals, which fall back to the shared scan.priority.artwork. #3838

scan:
  priority:
    cover: # Cover art only
      - igdb
      - ss
    screenshot: # Screenshots only
      - ss
      - igdb
    manual: # Game manuals only
      - launchbox
    region_mode: prefer_rom_tags  Region tags win over priority list

Scan settings UI

Brand new UI to edit the whole scan.* section of config.yml. #3854

Screenshot 2026-07-21 at 8 20 20 PM

Manual cover search filters

Client-side filters to the manual cover-search dialog to quickly narrow SteamGridDB results instead of scrolling through dozens of community covers. #3857

Screenshot 2026-07-21 at 8 20 44 PM

Minor changes

[!NOTE]

Environment variables

variabledefaultdescription
PLAYMATCH_API_URLhttps://playmatch.retrorealm.dev/api/v2Use self-hosted instance of Playmatch
STREAMING_BROKER_SECRET-Required for emulator streaming
STREAMING_SAVE_TIMEOUT45Save request timeout (in seconds)
ROMM_CORS_ALLOWED_ORIGINSComma-separated list of allowed CORS origins (empty allows all)
ROMM_SESSION_SECURE_COOKIE'falseMark session and CSRF cookies Secure (enable when served over HTTPS)
MAX_ASSET_UPLOAD_SIZE_BYTES536870912Max size of a save/state/screenshot upload request in bytes (0 disables the limit)
MAX_AUTOCLEANUP_LIMIT100Max number of saves a client can keep per slot when autocleanup is on (minimum 1)

Fixes

Other changes

New Contributors

Full Changelog: https://github.com/rommapp/romm/compare/5.0.0…5.1.0