RetroArch cheats not working does not always mean you have a bad code. The cheat file may be missing, the game version may not match, or the code may be loaded without being applied. Some cores also handle cheats differently.
Start with one game, one core, and one simple code. This guide separates downloading, activation, compatibility, and persistence so you can identify the failing step without changing your entire setup.
Quick answer: update the cheat database, load the matching .cht file, enable one code, and apply the change. If nothing happens, check the game revision, core support, and Hardcore restrictions before trying another file.
RetroArch cheats not working? Start with a backup
Back up your normal game save before experimenting. Keep that backup outside the active save folder so an autosave cannot overwrite your clean copy. Avoid testing inventory, progression, or unlock codes on your only completed save.
A save state is useful for convenience, but it is not a substitute for an independent backup. Our save files versus save states guide explains the difference. For troubleshooting, start the game normally and avoid automatically restoring a state from an earlier cheat session.
1. Download the RetroArch cheat database
Open the main menu, enter Online Updater, and choose Update Cheats. Let the download and extraction finish before browsing for files. Updating playlists or core information is a different operation; neither tells you that cheat files were installed.
If the updater reports an error, record the message. Check the device connection and available storage, then try again. If your build does not expose this updater, use the manual file method below instead of assuming the whole installation is broken.
The available updater and cheat controls are documented in the official RetroArch menu reference. Labels and placement can vary with the menu driver and device build.
2. Check the folder when the cheat list is empty
An empty browser points to a file-location problem before it points to an incompatible code. Check the cheat directory under Settings > Directory; some documentation calls this section Directories. Use the configured location on your device, not a Windows or Android path copied from an unrelated tutorial.
Verify that the downloaded files actually exist there and that RetroArch can access the folder. If storage was moved or replaced, an old path may no longer describe your current setup. Libretro explains directory selection in its files and directories guide.
For manual installation, use the official Libretro cheat collection. Find the appropriate system and download the actual .cht file. Do not save the GitHub web page as if it were the cheat file. Copy the file to your accessible cheat folder and browse to it from RetroArch. You do not need a separate executable or a ROM download to install these text-based cheat definitions.
3. Match the game, region, and revision
Similar titles are not enough to establish compatibility. Check the platform, region, and revision named by the cheat file against the game you are running. The Libretro database project includes separate cheat files for different game and ROM versions.
For example, treat a file labeled for a US release as a candidate for that release, not as proof it will work with a European revision. A translated or modified game deserves a separate compatibility check. Renaming your game file does not change its underlying version.
A region mismatch can explain RetroArch cheats not working even when the game itself runs normally. Record the exact game and core names before testing. If one matching code works and another does not, focus on the failing code and its instructions instead of reinstalling RetroArch.
4. Load, enable, and apply one code
Launch the game, open Quick Menu > Cheats, and load the matching file. For a clean test, choose the replace option rather than appending another list. Select one easy-to-observe cheat, switch it on, then choose Apply Changes. Return to gameplay and test the condition described by that code.
Loading a list, enabling an entry, and applying it are separate checks. For example, a health-related code may be easier to evaluate during gameplay than on a title screen. Do not treat the absence of an immediate visual change as conclusive until you have followed the code’s own instructions.
Leave automatic application disabled while diagnosing the first code. Once the manual sequence works, automation becomes a convenience rather than another unknown. If you cannot reliably reach the menu, check our RetroArch hotkeys guide.
5. Check core support and the correct cheat system
RetroArch has two cheat-handling approaches: one passes codes to the emulator core, while the other modifies exposed memory through RetroArch itself. A code for one approach is not automatically suitable for the other. Follow the code source and core documentation rather than changing the handler at random. See the official cheat guide.
Core support matters. For example, the Snes9x feature table lists RetroArch cheats as supported. Check the equivalent page for your actual core; a system name alone does not identify which emulator is running. Our RetroArch cores and settings overview explains that distinction.
FinalBurn Neo is an important exception: its documentation recommends its native cheat system, although it also supports RetroArch cheats. Native cheat files go under SYSTEM_DIRECTORY/fbneo/cheats/, and their controls appear under Quick Menu > Core Options > Cheat. That is not the regular Cheats menu. Follow the pack and folder instructions in the official FBNeo guide instead of mixing the two systems.
6. Enter a manual code carefully
If you have a compatible code but no ready-made file, add a new entry in the Cheats menu. Enter the code, give it a useful description, enable it, and apply the changes. Preserve the format expected by the selected handler and core.
A useful description records what you expect, such as a specific resource staying constant. Keep the source instructions alongside your notes, especially if a code requires several parts or a particular activation moment. A partial code is not a simpler version of the same cheat.
RetroArch also offers memory searching, but finding addresses is a separate, advanced task. Do not start changing random addresses just because a downloaded code failed.
7. Keep cheats separate from Hardcore achievements
Gameplay cheats conflict with RetroAchievements Hardcore requirements. This is not a missing-download problem, and repeated file changes will not remove the restriction. For straightforward practice testing, disable achievements for that session and keep a clean save for achievement play.
Do not assume that switching a setting back on makes a modified session eligible. Follow the Hardcore compliance rules when returning to normal achievement tracking. Our RetroAchievements troubleshooting guide covers login and game-recognition problems separately.
8. Test persistence only after the cheat works
Use the cheat menu’s save-file option to preserve an edited list under a recognizable name. Close the content normally, relaunch it, and confirm you can load that saved list. Only then consider automatic application on game load.
For FBNeo native cheats, needing to re-enable them at boot can be intentional: its documentation explains that injected values can interfere with arcade self-tests. Do not treat that safety behavior as a broken save setting.
For RetroArch cheats not working after a restart, separate persistence from compatibility. If a cheat causes a crash, disable it and restart cleanly. If every code fails, return to the matching file and core checks. When the same single code works reliably across two clean launches, you have a stable baseline for testing another one. Keep the original save backup until you are finished.
