Custom Platforms
RomM ships with support for ~400 platforms. If yours isn't in the list, you can still load it as a custom platform, but we won't have metadata provider coverage for it.
Adding a custom platform
Make a folder for the platform under your library root. Rules:
- All lowercase.
- Use
-to separate words. - No whitespace.
Examples:
| Folder name | Displays as |
|---|---|
pocket-challenge-v2 |
Pocket Challenge V2 |
my-homebrew-console |
My Homebrew Console |
wasm4 |
Wasm4 |
Then either run a Quick Scan (the platform is auto-discovered) or trigger a New Platforms scan from the Scan page.
Mapping to a canonical platform (preferred when possible)
If your platform is one RomM supports but under a different slug, you don't need a custom platform. Just remap it in your config.yml:
This gets you full metadata provider support with your preferred folder name (see Configuration File → system.platforms).
Adding a custom platform icon
If your platform isn't in the built-in icons list, RomM shows a default fallback icon.
To load your own:
- Mount the platform icons directory
Bind-mount a host directory onto the container's icon path:
- Seed it with the official icons
The built-in icons live at frontend/assets/platforms. Download them all and drop into your mounted directory, otherwise built-in platforms lose their icons too (because your mount overrides the whole directory).
- Add your custom
.icofiles
The filename has to match the platform slug. Examples:
| Platform | Platform slug | Filename |
|---|---|---|
| Amstrad CPC | acpc |
acpc.ico |
| My Homebrew Console | my-homebrew-console (custom) |
my-homebrew-console.ico |
| NES | nes |
nes.ico |
- Restart RomM
docker compose up -d picks up the new icon mount.
To replace an existing platform's icon, use a filename matching an existing platform's slug and your file overrides the built-in.