Working with the Right ROM
Related: Achievements for ROM hacks, Subsets
Only one achievement set is allowed per game per console. This is true in cases of existing official revisions (ex. Rev 1), official and unofficial fix patches, and alternate regions.
Subsets are an exception to this rule, but are considered an extension to a standard set and follow different rules for what types of achievements are allowed.
Regional exceptions may exist -rarely- when regional variations massively change the game.
Almost every game has multiple ROM versions available, sometimes dozens. Often there are major differences under the hood that prevent achievement compatibility between version. Because of this, finding the best ROM for achievements is critical and should be done carefully.
Region Selection: For TV-connected consoles, when possible choose No-Intro (cartridge) or Redump (disc)
NTSC USArelease ROMs, because 60Hz is a smoother gaming experience and generally matches the intended play speed.
PAL Europeanreleases run at 50Hz, and are to be avoided in most cases.
NTSC Japanreleases also run at 60Hz, but are only the best choice if the game was a Japan-exclusive release.
PAL Europeanreleases should be used as a last resort only (Europe-only exclusive), and are typically limited to a very select few unique games from the entire console's library. Handheld consoles don't have regional timing differences, so language options should be prioritized there whenever possible.
Revision Selection: Since revisions primarily contain bug and typo fixes, unless you have a -specific- reason not to, always choose the final revision. This will often save both players and developers headaches in the long run. Before working on a game, do a quick search for known revisional changes and take a look at TCRF to see if there's a reason to prefer an earlier revision.
Ring Codes: Some systems, such as Sega Saturn, have multiple version of the game with different "ring codes". These are alphanumeric identifiers stamped on the inner ring of the physical discs. In most cases these will have no functional effect on the game or perhaps even the hash, but as mentioned with Revisions, check to see if there are known differences first.
Format: For most systems this won't be an issue if you've used verified good dumps. For N64 in particular, games can exist in three formats based on the order of the bytes in the file: n64 (little endian), v64 (byteswapped), and z64 (big endian). Despite producing unique hashes, these three formats are identical for the same dump. Because big endian is the most accurate representation of the N64's cartridges, the big endian (z64) hash -must- be linked for any N64 game, in addition to whatever format you may wish to use personally as a developer. This ensures a single set of roms can consistently be used to play. If required, Tool64 can be used to change byte order.
Arcade: Arcade ROMs are a bit of a special case because FBNeo mandates the exact contents of the game's archive. When different versions exist, the base version of the name should be preferred in general (for instance, mslug2 should be preferred over mslug2dg or mslug2t). This is merely a guideline, as there may be various reasons to prefer a different version.
No Mods: Use a clean ROM. Do not use a ROM with a modded/custom launch screen such as Mode7 and RisingSun have because it changes RAM values and complicates users' ability to use their own legally dumped ROMs.
No Trainers: Do not use a ROM that includes an integrated cheat feature. These are most often refereed to as after-market
ROM trainers, are not official, and are not in any way supported by RetroAchievements. These ROMs cannot be linked even as secondary options.
No-Intro and Redump are the primary groups responsible for verifying clean dumps of console games, excluding all modifications and untrustworthy sources in the process. They offer dat files that can be used to verify your own dumps via a ROM manager. ROMs verified by these groups are preferred whenever possible, and can generally be identified by the following naming scheme:
Game Name (Region) (Available Languages if Applicable) (Current Revision if Applicable) Example: Diddy Kong Racing (USA) (En,Fr) (Rev 1)
TOSEC is another less restrictive preservation group. Their hashes often will match Redump for discs, but will frequently contain less thoroughly verified dumps. For floppy discs, cassettes, and less well-known systems where No-Intro and/or Redump verification aren't avaliable, TOSEC is a good fallback choice.
You can verify that your ROM checksum matches the databases of No-Intro, Redump, or TOSEC either by using a rom manager with a dat provided by the preferred group or by verifying checksum manually and searching the dat for it in a text editor. Bear in mind that unlike a manual check, the rom manager may be able to skip over external headers to accurately verify integrity. Standard choices are clrmamepro and Romulus.
Preferred Groups Per Consolelink
|Console ID||Console Name||Preferred Group|
|02||Nintendo 64||No Intro|
|03||Sufami Turbo||No Intro|
|04||Game Boy||No Intro|
|05||Game Boy Advance||No Intro|
|06||Game Boy Color||No Intro|
|07||Famicom Disk System||No Intro|
PC Engine CD
|10||Sega 32X||No Intro|
|13||Atari Lynx||No Intro|
|14||Neo Geo Pocket||No Intro|
|14||Neo Geo Pocket Color||No Intro|
|15||Game Gear||No Intro|
|17||Atari Jaguar||No Intro|
|18||Nintendo DS||No Intro|
|23||Magnavox Odyssey 2||No Intro|
|24||Pokemon Mini||No Intro|
|25||Atari 2600||No Intro|
|27||Arcade||Final Burn Neo|
|28||Virtual Boy||No Intro|
|29||MSX (Cartridges)||No Intro|
|29||MSX2 (Cartridges)||No Intro|
|41||PlayStation Portable||No Intro|
|47||NEC PC-8001||Neo Kobe|
|47||NEC PC-8801||Neo Kobe|
|51||Atari 7800||No Intro|
|53||WonderSwan Color||No Intro|
|63||Watara Supervision||No Intro|
(see also: ROM Localization Policy below)
English is the Primary language of RetroAchievements. Translation Patches are sometimes applied by developers to non-English titles as the main hash for an achievement set where no licenced English version exists. In these cases patching instructions will be provided in the forum thread of that title. Whenever reasonable, the original unpatched version should still be supported as well.
Sometimes translation patches may produce critically different memory from the linked hashes. All linked hashes are expected to be fully supported by the -entire- achievement set. If you can't personally guarantee this, don't link the hash.
If you aren't the original developer of the set in question and the developer is active, verify memory personally using testing mode and contact the developer before attempting to add a new translation.
ROM Localization Policylink
As English is the primary language of the community, English ROMs are preferred. When choosing which ROM to build achievements for, we give priority to No-Intro or Redump US ROMs for non-handheld consoles and European ROMs for handheld consoles.
We would like to continue improving our support for all regional versions, especially Japanese (as the majority of our game library was created in Japan). Some users may also prefer a specific regional version of a game and it is better to include broad support so that any good ROM can link to a good entry and give appropriate achievements. That said, regional variants must still be fully supported, and 50Hz slowdown needs to be mitigated (via additional patches) or proven to be a non-issue when present.
When looking at how games with regional versions are handled, our standard is one entry per game per console. It is ideal that if a player loads up the US or Japanese version of Donkey Kong, Pac-Man, or Contra, they will earn the same achievements from the same entry. As mentioned above, there are some extremely rare situations where it is better for our library and players to split off regional versions into their own unique entry. If the community has reason to believe that it's better for an entry to be split, it can be reviewed and approved by the RetroAchievements staff.
Tip: For games with text-triggered achievements (especially RPGs) it's recommend to find an event flag instead of hooking onto text or text ID. Text presentation varies between regional versions, making multi-region support difficult.
The types of changes made during localization (most commonly from Japanese to English) can vary wildly. Any of the following changes may result from a localization:
- Little or no change at all;
- Passwords replace battery saves;
- Bugs fixed;
- Light or extensive translations;
- Light or extensive cosmetic changes including "offensive" elements being censored, sfx changes, licenced assets being replaced with generic ones, and/or unknown characters becoming Nintendoed (e.g. Tetris Attack, Super Mario Bros. 2);
- Stages added, modified or removed;
- Game physics and game mechanics modified;
- Game modes, difficulty levels and game options added or removed;
- Cheat codes or debug modes added or removed;
- Game rebalancing resulting in a harder or easier experience, sometimes significantly so;
- Two games combined into one;
- And more.
Because of this variation and to avoid filling the database with unnecessary duplicates, our goal is to minimize the number of split sets. For a set to be split it needs compelling reasons; we take great care to determine when to approve these splits.
Last 10 changes on this page:
[2022-02-25 20:41] televandalist:Changed bonus set link to subset link - added a preferred group table for each console
[2020-06-02 06:00] Sanaki:Added revision and N64 format guidelines, removed entire section on region splitting procedure, made numerous grammar and detail updates
[2019-08-13 19:49] Kvon:Working with the right rom: text hooking tip added
[2019-05-03 11:30] meleu:typo
[2019-05-03 10:55] meleu:merge "ROM Localization Policy" into here
[2018-11-17 08:07] Kvon:changed one word, for clarifcation
[2018-09-17 17:56] meleu:capital 'R' in the title (Right)