RomM logo

RomM

Beautiful, powerful, self-hosted rom manager and player

Alternative to: antstream arcade


About Versions (114)

5.1.0-alpha.1

2026-07-22

[!NOTE]

Environment variables

cariabledefaultdescription
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)

API changes

ChangeDescription
PUT /config/scanReplace the scan.* section of the configuration.
GET /platform/filesystemRetrieve platform folders on disk that have no database row yet.
GET /romsNow accepts a with_rom_id_index parameter.
DELETE /{rom_id}/files/{file_id}Delete a single file belonging to a ROM.
BulkOperationResponseSwaps failed_items: int for failed_ids: list[int].
ConfigResponseAdds SCAN_ARTWORK_PRIORITY_OVERRIDES, GAMELIST_AUTO_EXPORT_ON_SCAN, and PEGASUS_AUTO_EXPORT_ON_SCAN.

Streaming endpoints

MethodPathDescription
GET/streaming/configReturns streaming config flag plus a sanitized container list
POST/streaming/sessionsClaims a session for a game to launch it
POST/streaming/sessions/{platform}/save-and-exitReleases the session
POST/streaming/sessions/{platform}/volumeSet from 0-100
POST/streaming/sessions/{platform}/muteToggles or explicitly sets mute state
POST/streaming/sessions/{platform}/save-stateSaves to a manual slot without stopping the emulator
POST/streaming/sessions/{platform}/load-stateLoads from a manual slot or the platform’s autosave slot
DELETE/streaming/sessions/{platform}Releases the session and best-effort tells the broker to stop the emulator
GET/streaming/sessionsDebug view of all active sessions
DELETE/streaming/sessionsForce-releases every active session.

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

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

Fixes

Other changes

New Contributors

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