RetroArch has a proper cheat system built in, and most of the time it works the first time. When it does not, the reason is almost always one of four things, and none of them is "the code is fake". This guide goes through the path from menu to working code first, then the four reasons.
Two kinds of cheat
RetroArch's own documentation splits cheats into two kinds, and it is worth knowing which you are using:
- Emulator handled. RetroArch passes the code to the emulator core, and it is up to that core to apply it.
- RetroArch handled. RetroArch applies the code itself, by reading and writing the core's memory directly. Codes you find with RetroArch's own cheat search are this kind.
The practical difference: an emulator-handled code depends on the core. The same code can work in one core and do nothing in another, because the second core does not apply it.
Adding a code by hand
These are the steps from the RetroArch documentation:
- Load the game, open the Quick Menu and go to Cheats.
- Choose Add New Code to Top or Add New Code to Bottom.
- Open the new line, select Code, and type the code.
- Optionally, fill in Description so you know what it is later.
- Make sure Enabled is set to on.
- Go back one level and choose Apply Changes.
Step 6 is the one people miss. A code that is typed in and switched on does nothing until the changes are applied.
Where to get codes
The retro game pages on this site carry an Emulator cheat codes section, taken from libretro-database, which is the same open collection RetroArch uses. Each set names the device the codes were written for, the system, and the regional version. For example, the Super Mario World page lists Action Replay, Game Genie and RetroArch sets, and the Sonic the Hedgehog 2 page lists Genesis sets.
If the codes look like noise, our guide How to Read a Retro Cheat Code explains which part is the address and which is the value.
The four reasons a code does nothing
1. The code is for a different version of the game
This is the most common one. A memory code points at a location inside one particular build of a game, and the Japanese release, a European release and a later revision can keep things in different places. Every set on our pages names its version. If your copy is the USA release and the set says Japan, expect it not to work.
2. The changes were never applied
Enabled is on, the code is right, and nothing happens: go back to the Cheats menu and choose Apply Changes.
3. The core does not apply that kind of code
An emulator-handled code relies on the core. If a code does nothing in one core, the same game in a different core for that system is worth a try.
4. RetroAchievements Hardcore mode is on
If you are signed in to RetroAchievements with Hardcore mode on, cheats are switched off. They only work in Casual mode.
Finding your own cheats
RetroArch can also search a game's memory for you. The documented method, using lives as the example:
- Go to Quick Menu → Cheats → Start or Continue Cheat Search.
- Pick a bit size that fits the value. Lives on an old console may fit in 8 bits or less; health in a PlayStation game can need 16.
- Start the search, go back to the game and lose a life.
- Search for values less than before. The number of matches drops.
- Repeat until only a handful remain, then add them to your list and turn them on one at a time.
The code that keeps your lives from falling is the one you want. The documentation's own warning applies: writing to memory blindly can crash the game, so make a save state before you experiment.
One thing we have not done
None of the emulator codes on this site has been tested by us. They are shown with their source file and version so you can check them, and they are kept apart from the site's own codes, which carry a "Reported working" or dated "Tested" label.