Download Latest Version 5.1.0 source code.zip (127.8 MB)
Email in envelope

Get an email when there's a new version of ROMM

Home / 5.1.0
Name Modified Size InfoDownloads / Week
Parent folder
5.1.0 source code.tar.gz 2026-07-29 126.3 MB
5.1.0 source code.zip 2026-07-29 127.8 MB
README.md 2026-07-29 17.1 kB
Totals: 3 Items   254.2 MB 8

[!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):

sql SET GLOBAL log_bin_trust_function_creators = 1; SET GLOBAL is lost on DB restart. Either add to your MariaDB my.cnf under [mysqld]: cnf log_bin_trust_function_creators = 1 Or grant the app user the privilege (MariaDB 10.5+): sql `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]

:::yaml
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

variable default description
PLAYMATCH_API_URL https://playmatch.retrorealm.dev/api/v2 Use self-hosted instance of Playmatch
STREAMING_BROKER_SECRET - Required for emulator streaming
STREAMING_SAVE_TIMEOUT 45 Save request timeout (in seconds)
ROMM_CORS_ALLOWED_ORIGINS Comma-separated list of allowed CORS origins (empty allows all)
ROMM_SESSION_SECURE_COOKIE 'false Mark session and CSRF cookies Secure (enable when served over HTTPS)
MAX_ASSET_UPLOAD_SIZE_BYTES 536870912 Max size of a save/state/screenshot upload request in bytes (0 disables the limit)
MAX_AUTOCLEANUP_LIMIT 100 Max 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

Source: README.md, updated 2026-07-29