mirror of
https://github.com/rommapp/romm.git
synced 2026-06-28 06:46:00 +00:00
Adds an RBox3D primitive that builds a rotatable, fake-3D game box from three flat ScreenScraper scans (front, back, spine) using CSS 3D transforms. Box proportions derive from the images themselves; it rotates via pointer drag, arrow keys / gamepad D-pad, and the right analog stick, drifts gently when idle, and honours prefers-reduced-motion. The game detail hero (CoverColumn) upgrades to the spinning box when the "3D box" boxart style is selected and the rom has the full set of faces, falling back to the flat cover otherwise. Backend: persist the box-2D-side (spine) scan locally, mirroring the existing box-2D-back handling — new BOX2D_SIDE media type + box2d_side_path on ss_metadata, opt-in via scan.media. - RBox3D primitive + Storybook story (controls + keyboard-rotation play()) - useBoxFaces composable resolving the three faces + a `complete` gate - box3d-alt i18n key across all locales - backend BOX2D_SIDE persistence + tests Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019itLXRfJXGGbhPY3JyqnuN
179 lines
6.2 KiB
YAML
179 lines
6.2 KiB
YAML
# This is a generic example of a configuration file
|
|
# Rename this file to `config.yml`, copy it to a `config` folder, and mount that folder as per the docker-compose.example.yml
|
|
# Only uncomment the lines you want to use/modify, or add new ones where needed
|
|
|
|
# exclude:
|
|
# # Exclude platforms to be scanned
|
|
# platforms:
|
|
# - excluded_folder_a
|
|
# - excluded_folder_b
|
|
|
|
# # Exclude ROMs or parts of ROMs to be scanned
|
|
# roms:
|
|
# # Single file games section.
|
|
# # Will not apply to files that are in sub-folders (multi-disc ROMs, games with updates, DLC, patches, etc.)
|
|
# single_file:
|
|
# # Exclude all files with certain extensions to be scanned
|
|
# extensions:
|
|
# - xml
|
|
# - txt
|
|
|
|
# # Exclude matched file names to be scanned
|
|
# # Supports unix filename pattern matching
|
|
# names:
|
|
# - 'info.txt'
|
|
# - '._*'
|
|
# - '*.nfo'
|
|
|
|
# # Multi files games section
|
|
# # Will apply to files that are in sub-folders (multi-disc ROMs, games with updates, DLC, patches, etc.)
|
|
# multi_file:
|
|
# # Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games)
|
|
# # Common ES-DE media folders are listed below
|
|
# names:
|
|
# - 3dboxes
|
|
# - backcovers
|
|
# - covers
|
|
# - fanart
|
|
# - manuals
|
|
# - marquees
|
|
# - miximages
|
|
# - physicalmedia
|
|
# - screenshots
|
|
# - titlescreens
|
|
# - videos
|
|
# - downloaded_media
|
|
# - media
|
|
|
|
# # Exclude files within sub-folders.
|
|
# parts:
|
|
# # Exclude matched file names to be scanned from multi file roms
|
|
# # Keep in mind that RomM doesn't scan folders inside multi files games,
|
|
# # so there is no need to exclude folders from inside of multi files games.
|
|
# names:
|
|
# - 'data.xml'
|
|
# - '._*' # Supports unix filename pattern matching
|
|
|
|
# # Exclude all files with certain extensions to be scanned from multi file roms
|
|
# extensions:
|
|
# - xml
|
|
# - txt
|
|
|
|
# system:
|
|
# # Asociate different platform names to your current file system platform names
|
|
# # [your custom platform folder name]: [RomM platform name]
|
|
# # In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder
|
|
# platforms:
|
|
# gc: ngc
|
|
# ps1: psx
|
|
|
|
# # Asociate one platform to it's main version (IGDB only)
|
|
# versions:
|
|
# naomi: arcade
|
|
|
|
# filesystem:
|
|
# # Custom games folder name only (eg. `retro_games/`)
|
|
# roms_folder: 'roms'
|
|
# # Skip file hash calculations on low power devices (eg. Raspberry PI)
|
|
# skip_hash_calculation: false
|
|
|
|
# scan:
|
|
# # Metadata priority during scans
|
|
# priority:
|
|
# # Below are the default priority values used
|
|
# metadata: # Top-level metadata source priority
|
|
# - igdb # IGDB (highest priority)
|
|
# - moby # MobyGames
|
|
# - ss # Screenscraper
|
|
# - ra # RetroAchievements
|
|
# - launchbox # Launchbox
|
|
# - gamelist # ES-DE gamelist.xml
|
|
# - hasheous # Hasheous
|
|
# - flashpoint # Flashpoint Project
|
|
# - hltb # HowLongToBeat (lowest priority)
|
|
# artwork: # Cover art and screenshots
|
|
# - igdb # IGDB
|
|
# - moby # MobyGames
|
|
# - ss # Screenscraper
|
|
# - ra # RetroAchievements
|
|
# - launchbox # Launchbox
|
|
# - libretro # Libretro
|
|
# - gamelist # ES-DE gamelist.xml
|
|
# - hasheous # Hasheous
|
|
# - flashpoint # Flashpoint Project
|
|
# - hltb # HowLongToBeat
|
|
# region: # Used by IGDB and ScreenScraper for regional variants
|
|
# - us
|
|
# - wor
|
|
# - ss
|
|
# - eu
|
|
# - jp
|
|
# language: # Used by ScreenScraper for descriptions
|
|
# - en
|
|
# - fr
|
|
# # Media assets to download
|
|
# # Only used by Screenscraper and ES-DE gamelist.xml
|
|
# media:
|
|
# # Used as alternative cover art
|
|
# - box2d # Normal cover art (always enabled)
|
|
# - box3d # 3D box art
|
|
# - miximage # Mixed image of multiple media (v1 / mixrbv1)
|
|
# - miximage_v2 # Mixed image of multiple media (v2 / mixrbv2)
|
|
# - physical # Disc, cartridge, etc.
|
|
# # Added to the screenshots carousel
|
|
# - screenshot # Screenshot (enabled by default)
|
|
# - title_screen # Title screen
|
|
# - fanart # User uploaded artwork
|
|
# # Bezel displayed around the emulatorjs window
|
|
# - bezel
|
|
# # Manual in PDF format
|
|
# - manual # Manual (enabled by default)
|
|
# # Gameplay video
|
|
# - video # Video (warning: large file size)
|
|
# - video_normalized # Normalized video (smaller file size than video)
|
|
# # Media used for batocera gamelist.xml export
|
|
# - box2d_back # Back cover art
|
|
# - box2d_side # Box spine (enables the interactive 3D box on detail pages)
|
|
# - logo # Transparent logo
|
|
# # Other media assets (might be used in the future)
|
|
# - marquee # Custom marquee
|
|
# # Auto-export metadata files after scan completes
|
|
# gamelist:
|
|
# export: false # Whether to export gamelist.xml for ES-DE/Batocera/RetroBAT
|
|
# media:
|
|
# # Select a media type from the list above (eg. box2d, screenshot, etc.)
|
|
# thumbnail: box2d # Use as the <thumbnail> tag in the exported gamelist.xml
|
|
# image: screenshot # Use as the <image> tag in the exported gamelist.xml
|
|
# pegasus:
|
|
# export: false # Whether to export metadata.pegasus.txt for Pegasus
|
|
|
|
# EmulatorJS per-core options
|
|
# emulatorjs:
|
|
# debug: true # Available options will be logged to the browser console
|
|
# cache_limit: null # Cache limit per ROM (in bytes)
|
|
# disable_batch_bootup: false
|
|
# disable_auto_unload: false
|
|
# settings:
|
|
# parallel_n64: # Use the exact core name
|
|
# vsync: disabled
|
|
# snes9x:
|
|
# snes9x_region: ntsc
|
|
# default: # These settings apply to all cores
|
|
# fps: show
|
|
# netplay:
|
|
# enabled: true
|
|
# ice_servers:
|
|
# - urls: "stun:stun.relay.metered.ca:80"
|
|
# - urls: "turn:global.relay.metered.ca:80"
|
|
# username: "<username>"
|
|
# credential: "<password>"
|
|
# 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
|