RomM logo

RomM

Beautiful, powerful, self-hosted rom manager and player

Alternative to: antstream arcade


About Versions (100)

4.6.0-alpha.1

2026-01-12

[!NOTE] API Changes

  • ⚠️ Endpoint GET /api/roms now only accepts multiple values for the following fields:
    • platform_id -> platform_ids
    • selected_genre -> genres
    • selected_franchise -> franchises
    • selected_collection -> collections
    • selected_company -> companies
    • selected_age_rating -> age_ratings
    • selected_status -> statuses
    • selected_region -> regions
    • selected_language -> languages
  • The endpoint also accepts the following new fields:
    • last_played: Whether the rom has a last played value for the current user
    • player_counts: Associated player counts
    • genres_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.media from config file via ConfigResponse.SCAN_MEDIA property

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

Screenshot 2026-01-12 at 1 16 34 PM

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

Screenshot 2026-01-12 at 12 25 11 PMScreenshot 2026-01-12 at 12 25 23 PM

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
Screenshot 2026-01-12 at 12 25 37 PM

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.bin

#2873

Minor changes

Fixes

Other changes

New Contributors

Full Changelog: https://github.com/rommapp/romm/compare/4.5.0…4.6.0-alpha.1