github rommapp/romm 4.2.0
v4.2.0

one day ago

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
Gallery Details

Out-of-the-box PSP and DOS Emulation

Our programming wizard @adamantike cast a spell on the code base, and now PSP and DOS play is support out-of-the-box, no custom reverse proxy settings or browser launch arguments required! You'll now see play buttons on supported games, though please note that performance is limited by the browser's WASM engine, and performance will vary.

#2356 + #2376

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
#   cache_limit: null # Cache limit per ROM (in bytes, null is default)
#   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: # A MAPPING FOR EACH BUTTON MUST BE SET!
#           value: x # Mapping for keyboard
#           value2: BUTTON_2 # Mapping for connected controller
#       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 + #2352

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, and manually run the "Convert images to WebP task in the /administration page to start generating .webp files. By default the task runs nightly, but you can customize that using the SCHEDULED_CONVERT_IMAGES_TO_WEBP_CRON variable. We also recommend increasing the TASK_TIMEOUT environment variable if you have a large number of games.

#2334

Minor Changes

  • Jump to previous/next game by @gantoine in #2330
  • Use dropzone and add button in upload modal by @gantoine in #2366
  • Console UI improvements by @gantoine in #2377
  • Force titles to display on game cards by @gantoine in #2399
  • Add options to gunicorn call by @gantoine in #2322
    • WEB_SERVER_CONCURRENCY=2:
    • WEB_SERVER_TIMEOUT=300:
    • WEB_SERVER_KEEPALIVE=2:
    • WEB_SERVER_MAX_REQUESTS=1000:
    • WEB_SERVER_MAX_REQUESTS_JITTER=100:
    • WEB_SERVER_WORKER_CONNECTIONS=1000:

Bug Fixes

Other

New Contributors

Full Changelog: 4.1.6...4.2.0-beta.1

Don't miss a new romm release

NewReleases is sending notifications on new releases.