[PPSSPP] Native Cheats Not Working in RetroArch for Switch
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
CWCheat-formatted codes in the libretro-database PSP cheat files appear to have no effect under RetroArch on Switch.
Expected behavior
Cheats formatted for specific emulator cores should be passed through and evaluated consistently across platforms, as they are on x64 builds.
Steps to reproduce the bug
- Download and install the Nintendo Switch version of RetroArch from the official downloads page.
- Transfer RetroArch and the appropriate game(s) and cheat codes.
(Please refer to the documentation on specific details.) - Run the game and enable the native cheat(s).
Version/Commit
1.22.1 (Git 9f9a984)
Present in the nightly version
I don't know
Platform & operating system
Nintendo Switch
Affected Cores
PPSSPP (8e24692)
Environment information
- Switch Firmware: 17.0.1
- Custom Firmware: Atmosphère 1.9.5
- Bootloader: hekate v6.4.2, Nyx v1.8.2
Further details
Here's an example from Mega Man Powered Up (ULUS-10091):
cheat14_desc = "Infinite Lives"
cheat14_code = "_L 0x202E88D9 0x00000009"
This is a standard CWCheat write that works correctly in PPSSPP standalone, on real hardware via CWCheat, and on the x64 version of RetroArch using the PPSSPP core. However, under RetroArch specifically on the Nintendo Switch, this code appears to have no effect at all.
Other "emulator-handled" cheat formats function as expected under RetroArch on the Switch (for example, NES and Super NES Action Replay codes), and I have not encountered similar issues with other cores. The PPSSPP core is the only one where CWCheat-formatted entries, parsed by the emulator core rather than RetroArch's internal cheat handler.
As a workaround on the Switch version, I was only able to get this cheat working by converting it to a RetroArch-handled raw RAM write:
cheat14_address = "11438297" ; Raw RAM address ($AE88D9) in decimal
cheat14_desc = "Infinite Lives"
cheat14_handler = "1" ; Force RetroArch to handle the write
cheat14_value = "9"
This suggests that, at least on the Nintendo Switch build, CWCheat-formatted codes are either:
- not being passed correctly to the PPSSPP core, or
- not supported by RetroArch's cheat interface on this platform.
Am I misunderstanding how CWCheat-style entries in the PSP .cht database are expected to work under RetroArch? Or are these entries simply non-functional on some platforms (e.g. Switch)?
Thank you.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the CWCheat example on the Nintendo Switch build and compare it with the x64 build, using the PPSSPP core and the linked libretro-database .cht entry. Trace how CWCheat-formatted entries reach the PPSSPP core through RetroArch’s cheat interface. Done means identifying whether the issue is Switch-specific pass-through or unsupported handling and verifying the result with the sample code.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100