ARCH R

Controls

Hotkeys, joypad layouts and remapping

The two modifier buttons

ArchR uses two different modifiers, and they belong to different layers.

SELECT is the modifier for system actions and for RetroArch. L1 is the modifier for a handful of desktop-level actions. Both come from settings (key.function.a and key.hotkey.a in /storage/.config/system/configs/system.cfg), and a device quirk can change them, but every RK3326 board uses the values above unless you edit them.


System hotkeys

These are handled by the input_sense service, so they work in EmulationStation and inside a game alike.

VOL+ / VOL-               Volume, 5 points per press, repeats while held
SELECT + VOL+ / VOL-      Brightness, 5 points per press, floor at 5%
SELECT + START + VOL+     WiFi on
SELECT + START + VOL-     WiFi off
L1 + SELECT + START       Force-quit whatever is running
L1 + X                    Open the game guides tool
L1 + Y                    Toggle the MangoHud overlay
L1 + A                    Screenshot (off by default, see below)
POWER                     Light sleep, press again to wake

Brightness moves in steps of 5 and never goes below 5%, so there are 20 usable levels. Volume moves in steps of 5 between 0 and 100.

The screenshot hotkey stays inactive until you set archr.screenshot.enabled=1, and it is skipped while RetroArch is running, because RetroArch has its own screenshot function. Files land in /storage/roms/screenshots/.

POWER does not power the console off. It puts it into a light sleep: screen and backlight off, everything still in RAM, and a second press wakes it. If you leave it asleep, it shuts down on its own after 15 minutes (system.shutdown_delay). To power off immediately, use the EmulationStation menu.


RetroArch hotkeys

Written into retroarch.cfg on every launch by setsettings.sh, from the controller profile in /tmp/joypads. On the R36S the hotkey is SELECT:

SELECT + START            Exit the emulator, back to EmulationStation
SELECT + X                RetroArch quick menu
SELECT + Y                FPS and performance overlay
SELECT + R1               Save state
SELECT + L1               Load state
SELECT + R2               Fast forward
SELECT + L2               Rewind

Nothing else is bound to a button. Save-slot switching, reset and screenshot exist in RetroArch but only on the keyboard bindings, so you reach them from the quick menu.

If you want a different set, turn system.autohotkeys off in /storage/.config/system/configs/system.cfg and RetroArch will keep whatever you bind by hand.


Joypad layouts

There are two ways the analogue sticks can be wired on these boards, and the difference is decided by the panel overlay, not by the image you flashed and not by a setting on the console.

  • K36 wiring: both sticks share the multiplexed ADC that also reads the buttons.
  • My Mini wiring: each axis has its own SARADC channel, which needs a different set of io-channels on the joypad node.

The Overlay Generator picks between them. If your stock .dtb carries an /adc-keys node that is present but explicitly disabled, the generator reads that as My Mini hardware and switches the joypad node over. Otherwise it leaves the shared wiring alone. The Joypad layout dropdown on the generator overrides the guess: auto, K36 (2 sticks) or My Mini (1 stick), which appear in the option string as JPk36 and JPmm.

The same page has two toggles for stick direction, LSi and RSi, for boards where the left or right stick reads inverted.

If the sticks behave wrongly, generate the overlay again with the layout forced instead of looking for a console-side setting. There is no joypad.variant key.


Button layout

controller_layout decides how the four face buttons are reported to emulators and to PortMaster. It is read per platform and per game, and it takes three values:

ValueEffect
nintendo (default)Physical labels, A on the right, B at the bottom
xboxA and B swapped, X and Y swapped
xbox_swap_shoulders_triggersSame as xbox, plus shoulders and triggers swapped

EmulationStation has a separate switch of its own, Switch confirm & cancel buttons in EmulationStation under UI Settings. That one only affects menu navigation, not what a game receives.


RetroArch in-game

Press SELECT + X for the Quick Menu. Common sub-menus:

Resume                    Back to game
State Slot                Pick save slot 0-9
Save State / Load State   In-place save (faster than ROM save)
Take Screenshot           PNG to /storage/roms/screenshots/
Options                   Per-core knobs (resolution, frameskip, BIOS)
Controls                  Remap on the fly
Cheats                    Cheat list (if there is a .cht for the ROM)
Disk Control              Multi-disc PSX swap
Information               Core / system / authors

SELECT + START exits without going through the menu.


Standalone emulators

Each standalone emulator brings its own bindings, and most of them ship the upstream defaults. The one ArchR configures in full is Mednafen, which follows the same shape as RetroArch:

SELECT + START            Exit
SELECT + R1               Save state
SELECT + L1               Load state
SELECT + Y                Toggle FPS
SELECT + A                Screenshot
SELECT + L2               Rewind
SELECT + R2               Fast forward
START + left / right      Previous / next save slot
START + L1 / R1           Select disc / insert or eject disc
START + R2                Insert coin
START + L2                Open the input configuration

For the others (PPSSPP, Flycast, DraStic, melonDS, Yabasanshiro, DuckStation, ScummVM), open the emulator's own menu and read its input page: the combination differs from one to the next. L1 + SELECT + START force-quits any of them and returns you to EmulationStation.


Custom remaps

Per-core RetroArch overrides live in /storage/.config/retroarch/config/, one folder per core, and are written by RetroArch itself when you save an override from the quick menu.

Per-game input remaps live in /storage/remappings/. Launch the game, SELECT + X → Controls → Save Game Remap File.

Custom hotkey bindings: edit /storage/.config/retroarch/retroarch.cfg and look for the input_*_btn keys. Remember that setsettings.sh rewrites the hotkey block on every launch while system.autohotkeys=1.


PortMaster ports

Ports use a separate input layer, gptokeyb, which translates joypad input into keyboard and mouse events for the original binary. The default mapping is /storage/roms/ports/PortMaster/control.txt, copied there by start_portmaster.sh; most ports override it with their own config.

The exit combination is part of each port's own configuration, so read the port's description in PortMaster. L1 + SELECT + START works as a fallback.

On this page