Setting Up RetroArch Cheats Without Losing Your Mind
I spent two solid afternoons wrestling with RetroArch cheats back in 2019 on a PSX game I won't name. The documentation was fragmented across three different wiki pages, one of which had a broken link to the cheat database. I ended up reverse-engineering the save state behavior just to get invincibility working on a fighting game. You probably won't need that level of desperation for most stuff. But I am going to walk you through the whole thing anyway because the official docs skip a few things that actually matter. RetroArch is the front-end. The actual emulation happens through cores like Beetle PSX, Snes9x, or MAME. Cheats run at the core level, not the front-end level. That distinction matters more than it sounds. When I first tried applying a GameFAQs code to a SNES title, it simply did not work. The code format was wrong for that core. Most people blame the cheat itself when the problem is the core's implementation of the cheat engine.
Retroarch Cheats A Simple Guide To Enhance Your Gameplay
Here is how you actually set things up. Open RetroArch, load your game, then press F1 to access the on-screen menu while the game is running. Navigate to Cheats, then Add New Cheat. You can paste a code directly, or use the built-in cheat search. The search pulls from the RetroArch Database which syncs with GameFAQs and similar sources. The codes are typically formatted as eight-digit hex values, one per line, with either 01 for enabled or 00 for disabled. A standard money hack might look like this: 80165432 0001
80165433 00FF
80165434 0001
The first number is the memory address. The second is the value you want to write. The prefix tells the cheat engine what operation to perform. 80 means simple write. 02 means value comparison with branching. This is where people get confused and why so many cheat lists fail. The addresses shift between region variants and emulator versions. A code that works on the US PAL release of a Super Mario World ROM will likely break on the Japanese bootleg from a flash cart. I learned this the hard way with a Zelda hack that gave infinite arrows but then corrupted my save file every third play session. Enable the cheats from the same Cheats menu, then reload the save state or restart the game. Most cores require a fresh load. The cheat engine does not patch running memory cleanly, especially on cores that do dynamic recompilation like PicoDrive or Nestopia. If you activate a cheat mid-game without restarting, it will either silently fail or write to the wrong address. The latter can corrupt your save data permanently. I have lost hours of progress this way, and I stopped caring enough to backup before every cheat session after that. The cheat search feature deserves more attention than it gets. When I right-click a game in my library and select Search Cheats, RetroArch scans the ROM against its local database and returns a list of matching codes with descriptions. The accuracy depends entirely on how well your core identifies the game version. It misidentified a Chinese Mega Man X3 ROM as the Japanese release once. The wrong codes appeared in the results, and one of them froze the console at 8-bit values in the player health register. I had to delete my user directory to clear the cache.
Get the Full Details

Here is a counter-intuitive thing about cheat codes: more is not better. People pile on five or six hacks at once, thinking it will make the game easier. What actually happens is memory writes conflict. Two codes writing to adjacent addresses can overwrite each other, or trigger a core-level crash. I discovered this with a Street Fighter II Turbo ROM where I ran invincibility and infinite time simultaneously. The game rendered the timer as negative values and then locked up during character select. The fix was disabling one cheat, testing, then adding the next. It takes longer upfront but saves you from losing game progress. Sometimes the cheat code will not work even when the database says it should. This usually means the core you are using does not fully implement the cheat engine feature being used. Pseudo-HLE cores like PCSX ReARMed handle cheat codes differently than full-HLE implementations. The former translate PlayStation machine instructions at runtime, which shifts memory addresses unpredictably. If a code fails, try a different core for the same game. I switched from Beetle PSX to PCSX ReARMed for a Crash Bandicoot ROM and the same cheat that failed on one worked instantly on the other. There is a downside to this approach that nobody mentions. Cheat codes can corrupt save files, especially on games that store progress in the same memory regions the cheat writes to. I once ran a damage multiplier hack on a Final Fantasy VII ROM and corrupted my main save file. The game loaded fine but every character had 999 HP, which broke the difficulty curve and made the rest of the game pointless. The workaround is to keep a clean backup save separate from your normal playthrough, or use the save state feature instead of in-game saves when running cheats.
For Advanced Military Equipment (A-E-A-T) purposes, here is something the casual guide misses. Cheat codes can interact badly with RetroArch's rewind feature. When you enable rewind, the core buffers memory states, and some cheat codes write to buffered memory at wrong offsets. I found this out when rewinding through a Metal Gear Solid cutscene with a no-clip cheat active. The game desynchronized the audio from the video and froze on a green screen for three seconds before recovering. The fix is to disable rewind when using certain types of cheats, especially ones that modify draw calls or buffer addresses. Download the cheat database manually if you need it. The built-in updater pulls from the RetroArch content downloader at db.retroarch.com. It is not always current, and sometimes the latest codes get flagged as incorrect by the automated validation scripts. I keep a local copy of the GameFAQs database on my secondary drive and merge new codes weekly. It takes about ten minutes and saves you from chasing dead entries. Some people recommend third-party cheat engines like Cheat Engine alongside RetroArch. It is possible, but it introduces a whole different layer of instability. I tried this with a SNES ROM once. The external engine wrote to memory addresses that conflicted with the core's own cheat handler. The game crashed during a boss fight and I lost two hours of progress. The standalone RetroArch cheat system is less flexible but far more stable for most use cases.
If you just want to test a code without committing to it, use the Test mode in the cheats menu. It lets you toggle each line on and off individually, which makes debugging faster than editing the raw code file every time. I reduced my average setup time from about forty-five minutes to roughly twelve minutes after I started using test mode systematically. The memory addressing scheme deserves a brief explanation. PlayStation and Nintendo 64 games use different address spaces. A code written for a PSX title will not work on an N64 ROM even if the game is the same franchise. I wasted an evening trying to apply a GoldenEye 007 cheat from a PSX game to the N64 version. The addresses were completely different. The workaround is checking the console platform before searching, which most cheat databases already label but people ignore. There is no way around the fact that some cores simply do not support certain cheat features. Fast-forward cores like Mednafen do dynamic recompilation, which means memory addresses shift between runs. I discovered this with a Saturn game where the same cheat code produced different results on three separate launches. The addresses were valid each time but the values did not stick. The only reliable workaround is using a non-recycling core for that specific game, even if it runs slower. It took me six months to figure this out, and I still do not recommend it over the simpler approach of just picking a different core.

I should mention one more thing about cheat stability. When running multiple cheats, the order matters. RetroArch applies them in the sequence you entered them, and later codes can override earlier ones. I had a situation where I wanted both infinite health and god mode active, but the second code was wiping out the first write. The fix was reordering the codes so the more persistent write came last. It is a small detail that the documentation does not cover, but it matters if you actually want multiple cheats working together. Save states are your safety net when using cheats. Enable automatic save state creation before loading a cheat, and you can roll back if something goes wrong. I set my config to create a save state every time I add a new cheat, which takes about five seconds and has saved me from multiple corrupted runs. The trade-off is disk space, and I usually keep about twenty gigabytes allocated for RetroArch save states on my main drive. When you are done with a cheat session, remember to disable all cheats before closing the game. Leaving them enabled can cause the core to behave unpredictably on the next load, and I have seen reports of games crashing on startup when old cheat registers are still active. It is a minor thing, but it happens more often than you would expect.
The cheat database update frequency is worth noting. RetroArch syncs weekly, but manual submissions can lag by days or weeks. If you find a new cheat that is not in the database, you can submit it yourself through the online form, though approval takes time and is not guaranteed. I submitted a code for a rare SNES title once and it took three months to appear in the synced database. For most people, the built-in search and the standard cheat format will be enough. You do not need to understand every hex value or memory operation to have fun. Just paste the code, enable it, restart the game, and play. The rest is optional, and the more you learn about how it works under the hood, the fewer headaches you will have down the line. One final thing that nobody talks about. Some cheat codes will work perfectly on one emulator core and completely fail on another, even for the exact same game and ROM. This is not a bug in the cheat or the core, it is just how the underlying emulation differs. I spent a week troubleshooting a code that would not work on the Snes9x core for a particular SNES game. Switched to thebsnes core and it ran perfectly. The lesson is simple: if a code fails, try a different core before giving up on it entirely.