Repository navigation
Cheats
RiptOPL ships the full PS2RD cheat engine. Drop a .cht file in the CHT
folder, enable cheats in Game Settings, and choose whether OPL applies them automatically or
shows you a selection menu before the game boots.
Neutrino and cheats
The PS2RD cheat engine is an OPL core feature. When a game's Loader Core is set to Neutrino, opening Cheat Settings shows a notice that the feature is not used with the Neutrino core, and no cheat options are presented; the cheat engine does not run — Neutrino manages the game environment itself. If you need cheats for a title, leave its Loader Core on OPL (the default). See Neutrino Core and Per-game Settings for details.
OPL looks for cheat files in the CHT/ folder on your storage device (USB, MMCE,
MX4SIO, iLink, SMB, or the internal HDD). The folder lives alongside DVD/,
CD/, CFG/, and the other standard OPL folders. On an APA/PFS HDD it lives in
the OPL data partition — pfs0:CHT/, i.e. hdd0:+OPL by default — and only
becomes pfs0:OPL/CHT/ (hdd0:<partition>/OPL/CHT/, e.g.
hdd0:__common/OPL/CHT/) when conf_hdd.cfg
points hdd_partition at a partition whose name does not start with +.
Each file covers exactly one game. The filename must match the game's startup name (its disc
ID, e.g. SLUS_123.45) with a .cht extension — .CHT is accepted
too, because PFS and the BDM FAT drivers do not fold case and several published cheat packs ship the
uppercase spelling:
CHT/SLUS_123.45.cht
OPL also reads cheats out of CHT/cht.tar — a flat ustar archive of
<startup>.cht members at a device root — and looks there first, searched
across devices in the tar engine's own device order (the member name is retried with an uppercase
.CHT extension as well). The loose file above is the fallback: a tar miss, an empty
member, a member over 1 MB, or a member that fails to parse all fall through to
CHT/<startup>.cht rather than failing the launch. If that loose file is missing too, a
member that was there but empty, too large or unparseable is reported as a cheat file that failed to load
— never as "no cheats".
The format is plain text in PS2RD format: a cheat is a description line (the cheat name) followed by one or more hex code lines. A code line is exactly 16 hex digits — two groups of 8 — which OPL reads as an address (first 8) and a value (last 8):
Infinite Health
20123456 3F800000
Infinite Ammo
2034ABCD 00000063
- The 16 digits may be upper- or lower-case, split by any amount of spaces/tabs — or run together with none. Anything that isn't 16 hex digits (plus whitespace) is read as a name line instead.
- A cheat starts with its name line; the code lines that follow belong to it. Code lines that appear before any name line are ignored, so always put the name first.
-
//or#begins a comment (a whole line, or a trailing note after a code). Keep whole-line comments at the start of the line — an indented comment can leave stray whitespace that hijacks the next cheat's name.;is not a comment marker. - A name can be up to 128 characters; one cheat can carry many code lines. OPL stores up to 250 named cheats per file. Blank lines are ignored, and both LF and CRLF (Windows) line endings work.
A Master Code is required. Almost every PS2RD file begins with a Master Code — a
special line whose address starts with 9 (e.g. 90123ED8 …). It is
the hook that lets the engine run; without it, none of the other codes do anything (they
load silently and simply never fire). Master Codes are game-specific — copy the correct one from
a cheat database for your exact disc ID. In Select Game Cheats mode it always stays on and
can't be toggled off.
Save this as CHT/SLUS_000.01.cht (using your game's boot ID). Every address
and value here is an illustrative placeholder — get real codes for your title from a cheat
database:
"Example Game /ID SLUS_000.01" // optional title line — decoration only
Mastercode # REQUIRED hook. Address starts with 9.
90123ED8 0C048DB6 # Copy the real one from a cheat DB.
Infinite Health
20365DB8 42C80000
20365DBC 42C80000 // a cheat can have many code lines
Max Money
203C5F00 05F5E0FF
Have All Items
D0456788 0000FBFB # D-type: apply the next line only if a value matches
103C6210 0000270F
OPL displays each named block (Infinite Health, Max Money, …) as one toggle in the launch-time cheat menu. If cheats don't take effect, the Master Code is almost always the culprit — verify it matches your exact disc revision.
Which code types does the engine support?
The first digit of a code's address is its type, and it decides what the line does. The
type is the only part of the syntax OPL interprets — everything else is just address and value.
RiptOPL runs the PS2RD code handler, which implements these types (verified against
ee_core/src/cheat_engine.S):
| Type | Name | What it does |
|---|---|---|
9 |
Master Code (hook) | The activator hook — required, one per file (only the first that matches is used). See the callout above. |
0 |
8-bit constant write | Continuously writes a byte to the address. |
1 |
16-bit constant write | Continuously writes a halfword. |
2 |
32-bit constant write | Continuously writes a full word. The most common cheat type. |
3 |
Increment / Decrement | Adds to or subtracts from the value at an address (8/16/32-bit; 32-bit uses two lines). |
4 |
Serial write | Two lines: writes a value to n addresses, stepping the address and value each time (fills tables/arrays). |
5 |
Copy bytes | Two lines: copies a block of bytes from one address to another. |
6 |
Pointer write | Two lines: reads a base pointer from an address, adds an offset, and writes to the result. |
7 |
Boolean operation | Bitwise OR / AND / XOR of a value with what's at the address (8/16-bit). |
C |
Conditional (equal) | Runs all following codes only if the 32-bit value at the address equals the given value. |
D |
Conditional (multi-line) | Runs the next n code lines only if a test passes (equal, not-equal, <, >, NAND, AND, NOR, OR). |
E |
Conditional (legacy) | Older encoding of the D test; handled the same way. |
Not implemented: types 8, A, and B are parsed but
silently skipped — a cheat that relies on one of them simply won't do anything. (Type F
is a Master-Code variant, handled like type 9.) This matches upstream PS2RD; it is
not a RiptOPL limitation. If a known-good code doesn't work, check whether it uses one of these
unsupported types.
Where do I find .cht files?
PS2RD-format cheat files are the same format used by PCSX2 and many older cheat databases. Search for your game's disc ID plus "ps2rd" or "cht" to find community-maintained files, or build one by hand from Action Replay / CodeBreaker codes converted to the raw address/value form. The OPL compatibility list at OPL-CL sometimes lists known-working codes for specific titles.
Highlight the game in any list and press Triangle to open the game menu, then choose Cheat Settings.
The Settings Mode picker at the top of the Cheat Settings panel controls whether
OPL reads cheat options from the Global Settings (shared across all games) or
Per-game Settings (stored in a per-title file under CFG/). Choose
Per-game Settings if you want different cheat choices per title.
Toggle PS2RD Cheat Engine on. The hint reads: "Lets PS2RD Cheat Engine patch your game." The cheat mode selector below it becomes active once cheats are enabled.
See the Cheat Modes section below. Select Auto Select Cheats or Select Game Cheats and save.
What happens depends on where cheats were turned on:
-
Global Settings (every game): the game starts without cheats, with no message. Most games
have no
.cht, so with cheats on for everything a missing file is normal. - Per-game Settings (this game only): RiptOPL shows No cheats found and lists every place it looked. Accept starts the game without cheats; Back returns to the menu.
A cheat file that exists but can't be read always shows a message, however cheats were turned on. That
covers a cht.tar member that is empty, over 1 MB or won't parse, and a loose
.cht the device refuses to open — access denied, or held open by another session on a network
share. One exception: a generic I/O error while opening still counts as missing, because an SMB
share reports a file that isn't there that way.
The PS2RD Cheat Engine Mode setting has two options:
| Mode | Behaviour |
|---|---|
| Auto Select Cheats | All cheat entries in the .cht file are enabled and applied automatically when the game launches. No selection screen is shown. |
| Select Game Cheats | A cheat selection menu appears at launch time: tick the cheats you want and press Start. Your picks are remembered for that game and are already ticked next time, on either core. They are matched by cheat name, so a .cht that gains or reorders cheats keeps them. The first time, only the Master Codes are on. Master Codes cannot be disabled — they are required for any other codes to function and are always applied. A game started by Auto Loading runs its remembered picks without showing the menu. |
Master Codes
A Master Code (sometimes called a "must be on" or "activator" code) is a prerequisite hook that
the cheat engine must write before any other codes in the file take effect. OPL recognises them by
their heading — Mastercode, Master Code or Enable Code (Must Be On), in any
case and spacing — and always keeps them enabled, even in Select Game Cheats mode.
You will see them in the selection menu but cannot toggle them off.
A game set to the Neutrino core uses the same .cht file, the same settings and the same
selection menu. At launch RiptOPL writes the enabled codes to riptopl-cheats.toml where Neutrino
reads its configs — its config/ folder, the Neutrino folder itself for a flat install, or a
-cwd= you forward — and adds -cfg=riptopl-cheats to the launch. The file is
rewritten every time and is safe to delete.
- No enabled codes means no file and no
-cfg. - A
-cfg=of your own still loads: Neutrino keeps only its last-cfg, which is ours, and ours names yours in itsdepends. - If the folder will not take the file (a read-only share, a full card), RiptOPL asks before launching without cheats. Auto Loading launches without them.
- The PS2RD Cheat Image (
.img) is OPL-core only and is greyed for a Neutrino game. -
Show Launch Arguments (see Neutrino Core) shows the
-cfgbefore you launch.
In addition to text .cht codes, OPL supports a prebuilt PS2RD cheat image
— a binary patch file (extension .img) that is applied directly to the game at boot,
in parallel with (and independently of) any text cheat codes. This is a separate, optional feature
controlled by its own per-game toggle.
Image files live in an IMG/ folder on the same device, alongside CHT/.
The filename convention mirrors the cheat file: the game's startup name with an .img
extension:
IMG/SLUS_123.45.img
In Cheat Settings for the game, find the PS2RD Cheat Image toggle (config key
$EnableImage). The hint reads: "Apply a
prebuilt PS2RD .img patch to your game." This toggle is off by default. Turn it on to
have OPL load and apply the .img file when the game next launches.
- The
$EnableImagetoggle is independent of PS2RD Cheat Engine — you can use the image patch with or without text cheats enabled. - If the
.imgfile is absent or fails to load, OPL logs the error and continues; the game still boots. - The image is limited to 4 KB (1 024 32-bit words). Larger files are truncated to that limit.
- Like text cheats, the image patch does not apply when the game's Loader Core is set to Neutrino.
What is a PS2RD .img file?
A PS2RD cheat image is a flat binary array of 32-bit address/value word pairs in the same
format as the in-memory cheat list the engine compiles from text codes. It can be produced by
tools that export cheat engine state or by hand-crafting the binary. Unlike a .cht
file there is no human-readable text — it is a raw patch list loaded directly into the EE core
at boot. It was popularised by wOPL and the wider OPL community as a way to distribute patches
that bypass the text-parsing step entirely.
Cheat settings are written to the per-game CFG/ file (or to the global settings
if the source is set to Global). The relevant config keys are:
| Key | Values | Meaning |
|---|---|---|
$CheatsSource |
0 = Global, 1 = Per-game | Which config layer cheat settings are read from. |
$EnableCheat |
0 = Off, 1 = On | Enables the PS2RD Cheat Engine for this game. |
$CheatMode |
0 = Auto Select, 1 = Select Game Cheats | Whether all cheats run automatically or a selection menu appears at launch. |
$EnableImage |
0 = Off, 1 = On | Loads and applies the prebuilt .img binary patch alongside (or instead of) text codes. |
$CheatSel000, $CheatSel001, … |
a cheat name | The optional cheats picked in Select Game Cheats mode, one name per key. Rewritten on every pick; Master Codes are never stored. |
Source: cheats.html @ 0a6143cd8956. Read on the documentation website.
Start here
Storage and networking
- USB, MX4SIO and iLink
- MMCE
- Internal HDD: APA and exFAT
- SMB shares
- Network boot: UDPFS and UDPBD
- HTTP
- NBD server
Games and features
- Neutrino core
- PS1: POPStarter and Ember
- Per-game settings
- Virtual memory cards
- GSM video modes
- In-game reset
- Cheats
- PADEMU
- RetroAchievements
- Apps
Interface and customization
Help and reference
- Troubleshooting
- ZSO format
- Backward-compatible PS3
- Credits and sources
- Features in other forks
- Project overview
Detailed references
- Fresh-start defaults reference
- Complete repository guide
- Rolling release reference
- APA hard disk safety and code 402
- Autolaunch and global settings
- Controls reference
- GSM reference
- HTTP reference
- In-game reset reference
- Folders, parental lock and audio
- Language maintenance
- MX4SIO launch reference
- Neutrino reference
- PADEMU reference
- RetroAchievements reference
- Theme engine: full authoring reference
- PS1/VCD reference
- HTTP server conformance tools
- APA recovery tool