-
Notifications
You must be signed in to change notification settings - Fork 2
In Game Reset
In-Game Reset lets you leave a running game and come straight back to RiptOPL — or power the console off — without touching the console's own Reset button. It is a controller shortcut that works from inside the game.
RiptOPL installs a small hook into the running game that watches the controller for a reserved button combination. When it sees one, it tears the game down and either returns you to the browser or shuts the console down.
Every combination starts the same way: hold all four shoulder buttons — L1 + L2 + R1 + R2 — and then, while still holding them, press the second half.
| Hold | Then press | Result |
|---|---|---|
| L1 + L2 + R1 + R2 | Start + Select | Reset — quit the game and return to RiptOPL |
| L1 + L2 + R1 + R2 | L3 + R3 | Power off the console |
| L1 + L2 + R1 + R2 | Up | In-game screenshot — see Screenshots |
L3 and R3 are the analog-stick clicks, so the power-off combination needs a DualShock with the analog light on.
The power button on the front of the console is hooked too, and does not need a controller:
| Power button | Result |
|---|---|
| Press once | Power off |
| Press twice | Reset — return to RiptOPL |
The second press has to land within about a second — RiptOPL waits ~50 vertical blanks after the first press to see whether another arrives, then acts on the count.
ℹ Worth remembering
This is the fallback when a game has stopped responding to the pad entirely — it does not depend on the pad hook having attached.
By default a reset returns you to the RiptOPL browser, started fresh. It does not restore what you had selected: Remember Last Played Game (Settings → General & System) is a separate setting, off by default, and it is what re-selects the last game you ran.
You can send it somewhere else with the IGR Path setting (Settings → General & System). Point it at
an ELF and that ELF is booted on reset rather than the browser — a common use is to drop straight back into a
different launcher or a homebrew menu. The file must live on a memory card (mc0: or
mc1:); leave the setting blank to return to RiptOPL normally.
If you use MMCE cards, IGR Bootcard Slot(s) (Settings → Game Sources → MMCE Settings) additionally sends a "switch to bootcard" command to slot 0, slot 1, both, or neither as the reset happens, so the card is already back on its boot image by the time the next thing loads. See MMCE.
IGR is not universal. It is worth knowing the three cases where the combinations will do nothing, so you do not spend time hunting a fault that is not there.
The hook attaches by patching the game's own scePadPortOpen / scePad2CreateSocket
call. Until the game asks for a pad, there is nothing hooked — so IGR does not respond during very early boot
logos on some titles. The console power button still works.
A few games handle input in a way the hook disturbs. Per-game compatibility Mode 6 — Disable IGR turns the hook off for that title. If a game misbehaves in a way that started when you launched it through RiptOPL, this is the mode to try — at the cost of losing IGR for that game. See Per-game Settings.
⚠ Neutrino has no IGR
This is a property of that loader, not a RiptOPL limitation, and it is why Mode 6 is greyed out whenever the Loader Core is set to Neutrino — there is no hook there to disable. To leave a Neutrino-launched game, use the console's power or reset button. See Neutrino Core.
PS1 titles are a separate case again: they run under POPSTARTER or Ember, each of which has its own independent IGR behaviour built into that binary. RiptOPL's hook is not involved. See PS1 Games and the sister POPStarter docs.
The L1+L2+R1+R2 + Up combination captures the current frame to a bitmap on memory card slot
1, named from the game's ID with a zero-padded sequence number starting at 001 — for example
mc1:/SLUS_012.34_GS(001).bmp. The number increments to a maximum of 255 per game.
Two conditions gate it, and both catch people out:
- GSM must be enabled for the running game. The capture is gated on the game's GSM setting, so with GSM off the combination does nothing at all.
-
The build must include IGS. The
MakefiledefaultsEXTRA_FEATURESto0andIGSfollows it, and the main release loader is built with that default — so the loader most people run has no IGS and the Up combination is simply inert.
ℹ You do not have to build it yourself
The rolling release also publishes an IGS-enabled loader. Inside RIPTOPL-VARIANTS-*.zip, the
variants named -extra1 are built with EXTRA_FEATURES=1, which turns IGS on; they
come in pademu0/pademu1 and optional -ds5 flavours. Building from
source with make IGS=1 works too. See Releases.
⚠ RetroAchievements and IGS are mutually exclusive
The RA loader (RIPTOPL-RetroAchievements-*.zip) is deliberately built without EXTRA_FEATURES:
GSM 1080p plus IGS and RA will not both fit in the console's ram84 region. You can have
achievements or in-game screenshots, not both. See RetroAchievements.
Nothing happens when I press the combination. Check, in order: the game has actually started (past the early boot logos); the Loader Core is OPL rather than Neutrino; Mode 6 is not set for this game; and — for the power-off combination specifically — the controller is in analog mode, since L3 and R3 are the stick clicks. The screenshot combination uses Up, so it needs no analog mode.
Try the console power button as a cross-check: if that resets and the pad combination does not, the hook is fine and the problem is in the pad half.
Reset takes me somewhere unexpected. Check IGR Path in Settings → General & System. A stale path left over from an earlier setup will boot that ELF instead of returning to the browser.
The game resets on its own during play. A game that uses all four shoulders plus Start or Select in normal play can trigger IGR by accident. Set Mode 6 — Disable IGR for that title.
Where this lives in the source
| File | Role |
|---|---|
ee_core/src/padhook.c |
The hook itself: pad pattern matching, the VBLANK interrupt handler, combo dispatch, the IGR thread |
ee_core/include/padhook.h |
The combo constants (IGR_COMBO_R1_L1_R2_L2, IGR_COMBO_START_SELECT, IGR_COMBO_R3_L3, IGR_COMBO_UP) |
ee_core/src/cd_igr_rpc.c |
IOP-side reset RPC |
ee_core/src/igs_api.c |
Screenshot capture and BMP writing |
include/iosupport.h |
COMPAT_MODE_6 — the Disable IGR flag |
Detailed reference: In-game reset reference.
Source: igr.html @ fc2e13154e51. 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
- 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