batocera-romslisted
Install: claude install-skill t3chnaztea/batocera-skills
# Batocera ROMs
Managing the game library: where ROMs live, why they do or don't show up, how to
curate a big collection without deleting anything, and how to verify dumps.
Assumes the connection pattern and safety doctrine from `batocera-ops`.
## System directories
ROMs live in `/userdata/roms/<system>/`, one directory per system. The directory
name is Batocera's internal system name, which is **not always** the obvious
one. Don't guess — look it up on the box:
```bash
# Every system Batocera knows, with its dir name and display name:
SSHB "grep -E '<name>|<fullname>' /usr/share/emulationstation/es_systems.cfg"
# What you actually have ROMs for:
SSHB "ls /userdata/roms/"
```
Names that trip people up: Cave CV1000 arcade lives in **`cave3rd`** (not
`cv1000`); Odyssey 2 is `odyssey2` (renamed from `o2em`); Half-Life is
`halflife` (renamed from `xash3d_fwgs`). Directory renames across versions are
common — the batocera-maintenance migration reference lists the ones that bite.
## Why a game doesn't appear
In rough order of likelihood:
1. **Wrong extension for that system.** Each system accepts a fixed set of
extensions; a file with any other extension is invisible to ES. Check the
accepted list:
`SSHB "grep -A2 '<system>' /usr/share/emulationstation/es_systems.cfg | grep extension"`.
A bare `.bin` is a frequent offender — for many disc systems `.bin` is *not*
an ES extension (you need a `.cue` or `.chd`).
2. **It's hidden.** `<hidden>true</hidden>` in `ga