RomM logo

RomM

Beautiful, powerful, self-hosted rom manager and player

Alternative to: antstream arcade


About Versions (100)

4.2.0-alpha.1

2025-09-04

[!WARNING] This release has a bug that can cause the UI to lag and crash, which has been fixed in 4.2.0-alpha.2.

New Features

Console Mode

Look ma’, I’m on TV! The new console interface is designed for big screens and easy navigation with a controller or remote. It features a grid layout, large icons, and a simplified menu structure to enhance your gaming experience from the comfort of your couch. Launch it from the navigation bar or navigate directly to /console.

#2314

Home
Screenshot 2025-09-03 at 10 09 52 PM
GalleryDetails
Screenshot 2025-09-03 at 10 08 08 PMScreenshot 2025-09-03 at 10 34 12 PM

Global EmulatorJS Config

The config.yml file now accepts a new emulatorjs section that allows you to set custom, per-core options and controls. Setting debug: true will print a list of available options for the current emulator core to the browser console, which you can then set in the settings block. The control block allows you to set a custom control mapping for each core. Both settings and control accept a default “core”, who’s value will be applied to all cores.

#2360

[!NOTE] Custom settings and controls are fully optional, and if not set, the emulator will use its own defaults.

# EmulatorJS per-core options
emulatorjs:
  debug: true # Available options will be logged to the browser console when the emulator is started
  settings:
    parallel_n64: # Use the exact core name
      vsync: disable
    snes9x:
      snes9x_region: ntsc
    default: # These settings apply to all cores
      fps: show
  controls: # https://emulatorjs.org/docs4devs/control-mapping/
    snes9x:
      0: # Player 1
        0: # IF USED, A MAPPING FOR EACH BUTTON MUST BE SET!
          value: x # Mapping for keyboard
          value2: BUTTON_2 # Mapping for connected controller
        1:
          value: y
          value2: BUTTON_4
      1: # Player 2
      2: # Player 3
      3: # Player 4

Incremental RetroAchievements Sync

A new scheduled task has been added to sync RetroAchievements progress for all users on a recurring basis. Enable the task by setting ENABLE_SCHEDULED_RETROACHIEVEMENTS_PROGRESS_SYNC=true in your environment variables. By default the task runs nightly, but you can customize that using the SCHEDULED_RETROACHIEVEMENTS_PROGRESS_SYNC_CRON variable.

[!NOTE] Achievements will only sync for users who have enabled RetroAchievements in their profile settings

#2325

WebP Image Task

Another scheduled task has been added to convert all uploaded images to the modern .webp format. WebP images are 5-10x smaller then JPG/PNG images with no loss of quality, leading to faster load times for cover art in galleries. Enable the task by setting ENABLE_SCHEDULED_CONVERT_IMAGES_TO_WEBP=true in your environment variables. By default the task runs nightly, but you can customize that using the SCHEDULED_CONVERT_IMAGES_TO_WEBP_CRON variable.

#2334

Minor Changes

Bug Fixes

Other

New Contributors

Full Changelog: https://github.com/rommapp/romm/compare/4.1.6…4.2.0-alpha.1