-
Notifications
You must be signed in to change notification settings - Fork 10
Working with the Right ROM
Related: Achievements for ROM hacks, Bonus Sets
Only one achievement set is allowed per game per console. This is true in cases of existing official revisions (ex. Rev A), official and unofficial fix patches, and over regions.
Bonus Sets 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.
Almost every game has multiple ROM versions out there, sometimes dozens. Often there are major differences under the hood to the point where for one game, one ROM will not be compatible with the achievements of another ROM of the same game. Thus, finding the best ROM for achievements is important and should be done carefully.
-
Region Selection: Where possible choose no-intro
NTSC USA
release ROMs, because 60 FPS is a smoother gaming experience.PAL European
releases run at 50 FPS, and are to be avoided in most cases.NTSC Japan
releases also run at 60 FPS , but is only the best choice if the game was a Japan-exclusive release. Needing to resort to aPAL European
release game should be a last resort case (Europe-only exclusive), and is typically a very select few unique games from the entire console's library. The PAL/NTSC issue does not apply to GBA emulation, which runs all region versions at the same FPS. -
No Mods: Do not use a ROM with a modded/custom launch screen like Mode7 and RisingSun have because it messes up RAM.
-
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 not in any way supported by Retro Achievements.
No-Intro ROMs are the preferred type of ROMs to be linked in the RA database, and should be the ones that you should use to make your set where possible. They filter out bad dumps, hacks, fakes, overdumps, underdumps, etc. and only display the ROMs that are most accurate to the original cartridge. No-Intro ROMs can 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 A)
GoodTools Game Name (Region) [!], as well as some of the Game Name (Region) (Rom Dumper Group) ROMs from an earlier era might match those in the No-Intro database but it is not guaranteed.
You can verify that your ROM checksum matches the No-Intro database here. Unfortunately some of the RA Emulators don't calculate the checksum correctly (namely NES) so you may need to find your ROM checksum from another source.
(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 MD5 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. Providing an up-to-spec translation patch for an existing title is possibly allowed to make a game more accessible to other native language speakers. You must deep-memory inspect your translation contribution against the core set and submit it for approval before handing it over to the developer of the set for posting in their thread along with the game.
Sometimes translation patches may critically differ from the developer MD5 in memory differences that you may find online. Before linking these patches check with the original developer or do deep memory tests to ensure total compatibility. You can link translation patches you find online to core sets as long as the game's core achievements all function correctly and do not make the game more or less difficult.
As English is the primary language of the community, English ROMs are preferred. When choosing which ROM to build achievements out of various regional versions we give priority to No-Intro US ROMs for non-handheld consoles and European ROMs for handheld consoles.
We welcome and would like to continue improving our support for all regional versions, especially Japanese (as the majority of our game library was created in Japan). Also, some users simply 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.
When looking at how games with regional versions are handled our standard is one entry per game per console. It is ideal that if one loads up the US or Japanese version of Donkey Kong, Pac-Man or Contra, they will earn the same achievements from the same entry. But there are some 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 developer team after a discussion and vote.
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 elements considered offensive censored, sfx changes, or licenced assets being made generic, 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;
- The game is rebalanced making it harder or easier, sometimes significantly;
- Two games are combined into one;
- And more.
Because of this variance 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.
Approval follows the same flow as revision votes, such as posting your plan in the forum and the #revision-voting channel in Discord; allowing time for discussion and waiting 72 hours for majority approval is necessary.
Remember the goal to reduce duplication in the library; only allow a set to be split when it is strongly preferred.
The developer who intends to split a set should make a strong case for why the set deserves a new entry and why it's not possible to create the intended experience within a single entry.
Developers wanting to split sets are expected to act in good faith. Sets should be split for the betterment of our game library and the community and not as self-indulging way to remake a set or chase freebie dev points.
- There are major aesthetic changes to the point where it could be mistaken to be an entirely new game.
- There are major balance changes such as significant changes in difficulty.
- There are major content changes such as new game modes, heavily edited stages, new abilities, etc.
- There are major mechanical changes.
Examples of games that qualify:
- Awaiting examples of precedent
- The gameplay, balance, game content or mechanics are mostly unchanged.
- The various versions examined (such as Rev A) are within the same region.
- One region is slightly easier/harder than the other.
- The only change is a translation or name change.
- Minor or moderate cosmetic changes.
- Cheat codes or debug modes are added or removed.
Considering all this, it is still be up to the collective judgement of the developers.
Examples of games that (probably) don't qualify:
- Super Mario Bros. (NES); the J and US release is the same file.
- Earthbound, Chrono Trigger, Bionic Commando (NES); the (main) differences here are light cosmetic, translations and censorship.
- Rockman/Mega Man (NES); the main difference being a few sfx changes and a new title and title screen.
- The Legend of Zelda (NES), A Link to the Past (SNES); besides translation, the main difference are in the US release a number of bugs were fixed.
- Contra (NES); the Famicom version has animated backgrounds, more images, a stage select mode, etc. The E version has a new name Probotector and characters and enemies are sprite swapped with robots.
It is not acceptable to simply duplicate sets into split off entries. Split off sets should be treated as a new entry and not a sub-set (where Bonus sets are sub-sets). They should have a different feel, pacing and challenges that speak to the unique features of the game that caused it to be split off in the first place.
- User Guidelines
- Developer Guidelines
- Content Guidelines
- FAQ
- Setup Guide
- Emulator Support and Issues
- Ways to Contribute
- RABot, the RA Discord Robot
- Events
- Overlay Themes
- Useful Links
- Contributing with the docs
- About Us
- Tutorials
- Developer Docs
- How to Become an Achievement Developer
- Getting Started as an Achievement Developer
- Game Identification
- Achievement Design
- Achievement Scoring
- Difficulty Scale and Balance
- Progression and Win Condition Typing
- Badge and Icon Creation
- Achievement Development Overview
- Flags
- BitCount Size
- Alt Groups
- Hit Counts
- Delta Values
- Prior Values
- Value Definition
- Condition Syntax
- Minimum Required Versions for Logic Features
- Memory Inspector
- Real Examples
- Set Development Roadmap
- Achievement Templates
- Tips and Tricks
- Leaderboards
- Rich Presence
- RATools
- Console Specific Tips
- Emulator Hotkeys for Developers
- libretro core support
- Docs To Do List
- WIP User Code of Conduct
- WIP CoC FAQ
- WIP Content Guidelines
- WIP-Jr
- WIP---Dev-Tips---Code-Notes-En-Masse
- WIP-‐-Reauthorship-Policy
- Manifesto RetroAchievements
- Código de Conduta do Usuário
- FAQ - Perguntas Frequentes
- Como contribuir se você não é um desenvolvedor
- Tutorial para Jogos Multi-Discos
- Introdução
- Primeiros Passos como um Desenvolvedor de Conquistas
- Recursos de Lógica para Achievements
- Exemplos Reais
- Dicas e Truques
- Dicas Específicas de Console
- Modelos de Achievement
- Escala de Dificuldade e Equilíbrio
- Roteiro de Desenvolvimento de um Set de Conquistas
- Criação de Ícones e Emblemas
- Leaderboards
- Rich Presence
- Design de Conquistas
- Manifesto RetroAchievements
- Código de Conducta del Usuario
- FAQ - Preguntas Frecuentes
- Tablas Globales y Reglas para la Casería de Logros
- Mi juego no esta cargando los logros
- Como contribuir si no eres un desarrollador
- Por que no deberías utilizar la función de cargar estado
- Contribuyendo con los documentos
- Como funciona la Documentación de RA
- Descargas
- Intro
- Código de Conducta del Desarrollador
- Como convertirme en un Desarrollador de Logros
- Primeros pasos como un Desarrollador de Logros
- Un vistazo al Inspector de Memoria
- Características en la Logica de un Logro
- Ejemplos Reales
- Intro
- Utilizando Hit Counts como un Temporizador
- Utilizando Valores Delta y Hit Counts para Detectar un Incremento
- Un Ejemplo Simple en como evitar el Abuso de Estados de Guardado
- Evitar el Problema de que un Contador se Incremente Dos Veces en el Mismo Frame
- Creando un Temporizador con un ResetIf Hits basándote en la Velocidad de un Juego
- Plantillas para Logros
- Tips y Trucos
- Escala de Dificultad y Balance
- Diseño de Logros
- Mapa de Desarrollo de Set
- Revisiones en Set de Logros
- Creación de Iconos y Badges
- Tablas de Clasificación
- Rich Presence
- Trabajando con el ROM apropiado
- Identificación del Juego
- Guía para Sets Bonus
- Logros para ROM hacks
- Tips Específicos por Consola