Retro Tech
My ROM Naming Convention: Genre Codes Up Front, Region at the Back

Part 4 of the thread Keeping a media library tidy
- The format is
(GENRE) Title (REGION) (NOTES).ext, like(PLAT) Super Metroid (USA).sfc. - A four-letter genre code at the front means any file browser groups the folder by genre, no frontend needed.
- Three-letter region codes and a short list of note codes for hacks, betas, translations and re-releases.
- The rule that matters most is consistency. Pick your codes once and use them everywhere.
Most naming standards for game backups, like No-IntroPreservation projects that keep checksums of known-good game dumps. No-Intro covers cartridges, Redump covers discs. A matching checksum means a perfect copy.More: Preserving Your Own Game Collection: Dumps, Backups, Boxes and Old Hardware's, are built for identifying a file exactly. That's the right job for them. But when you're scrolling a folder of hundreds of NES games looking for something to play, "exactly which revision" matters less than "what kind of game is this".
So on the copies I actually browse, I put the genre first. Every file starts with a four-letter code, which means the folder sorts itself by genre in any file browser, on any device, with no frontend or database involved.
The format
(GENRE) Title (REGION) (NOTES).ext
| Part | What goes there |
|---|---|
(GENRE) |
A four-letter code for the main genre |
Title |
A clean, recognizable title, without the subtitle clutter |
(REGION) |
A three-letter region code |
(NOTES) |
Optional: hack, beta, translation and so on |
.ext |
The original extension, untouched: .nes, .sfc, .chd, .iso |
Some examples:
(PLAT) Super Mario Bros (USA).nes
(RPGE) Final Fantasy VII (USA).chd
(FGHT) Street Fighter II (JPN).zip
(METV) Super Metroid (USA).sfc
(PLAT) Super Mario Bros (USA) (HACK).nes
(RPGE) Final Fantasy V (USA) (TRAD).sfc
(ACTN) Mega Man X (JPN) (BETA).sfc
(RACE) F-Zero (USA EUR JPN).sfc
(PUZZ) Tetris (USA JPN).gb
The genre codes
Four letters, all caps. Enough to be readable, short enough not to crowd the title.
| Code | Genre | Code | Genre |
|---|---|---|---|
ACTN |
Action | PLAT |
Platformer |
ACTV |
Action-adventure | PNBL |
Pinball |
ADVN |
Adventure | PRGM |
Programming |
ARKD |
Arcade | PUZZ |
Puzzle |
AUTO |
Auto-scrolling | QUIZ |
Quiz and trivia |
BEAT |
Beat-'em-up | RACE |
Racing |
BMUP |
Bullet hell | RCNG |
Combat racing |
BORD |
Board game | RCES |
Resource management |
CARD |
Card game | RHYM |
Rhythm |
DEFN |
Tower defense | RPGE |
RPG |
EDUC |
Educational | RROG |
Roguelike |
FGHT |
Fighting | RUNR |
Runner |
FLAT |
2D simulation | SCRL |
Scrolling shooter |
FLGT |
Flight | SHOT |
Shooter |
HACK |
Hack and slash | SIMU |
Simulation |
HORR |
Horror | SNDK |
Sandbox |
LGHT |
Light gun | SPRT |
Sports |
MECH |
Mech combat | STGY |
Strategy |
METV |
Metroidvania | STLH |
Stealth |
MOBA |
Arena battle | SURV |
Survival |
MZLR |
Maze | TACT |
Tactics |
TEXT |
Text adventure | TIME |
Time management |
TYNG |
Typing | VISN |
Visual novel |
WRST |
Wrestling |
Note
HACKis both a genre (hack and slash) and a note (a ROMA copy of a game cartridge's contents in a single file. It's what an emulator actually plays.More: Keep One Copy of Each Game in Your ROM Backups, by Region hack). Position tells them apart: the genre is always first, notes are always last. If that bugs you, rename one. Just do it everywhere.
Region and note codes
| Region | Code | Note | Code | |
|---|---|---|---|---|
| United States | USA |
Beta | BETA |
|
| Japan | JPN |
Prototype | PROT |
|
| Europe | EUR |
Demo | DEMO |
|
| France | FRA |
ROM hack or mod | HACK |
|
| Germany | GER |
Re-release | RELN |
|
| Spain | ESP |
Remix or edit | RMIX |
|
| Italy | ITA |
Fan translation | TRAD |
|
| Official translation | TRAN |
|||
| Unlicensed | UNLS |
A game released in several regions gets them all, space-separated: (USA EUR JPN). Multiple notes work the same way: (HACK TRAN).
The rules I stick to
- Pick the one most representative genre. Plenty of games are two things. Choose the one you'd browse for.
- Clean the title. Drop subtitles, version numbers and extra junk. You can always look it up.
- Use the main release region when it's messy, or list them all.
- Keep a master list of which game got which genre. It's the thing that makes the second pass, and the next system, fast.
- Be consistent. One standard across every system, or it stops being useful.
Heads up
Frontends and scrapers that match games by file name may stop finding artwork after you rename. Scrapers that hash the file don't care. If your frontend matters more than your file browser, keep a set with the standard names for it, and use genre names on the copies you browse by hand.
Doing it without typing every name
Nobody should rename a library by hand. The order that works for me:
- Clean up the old dump names with Rename-RomFile.
- Thin out extra regional copies with Remove-DuplicateRom.
- Add the genre codes from a CSV of titles and codes with Add-RomGenreTag.
For a system I don't have a script for yet, I keep a template for describing the job to an AI assistant, so I ask for it the same way every time: the platform, the extensions, the naming format above, the genre codes, how regions appear in the old names, and a requirement for a dry-run mode and a log. Then I read the result carefully and test it on 10 or 20 files before letting it near the whole folder.
- Folders by Platform: How I Lay Out a Multi-System Game Backup LibraryRetro Tech
- The Licensed Retro Emulation Business I Talked Myself Out OfRetro Tech
- Tag Game Backups With a Genre Code From a CSVScript Library
- Preserving Your Own Game Collection: Dumps, Backups, Boxes and Old HardwareRetro Tech
- The TurboGrafx-16 and PC Engine: NEC's Brilliant Middle ChildRetro Tech