Skip to content

Hotkeys and Button Codes

Tim Flaman edited this page Jan 15, 2023 · 1 revision

Hotkey Auto-configuration

By default UnofficialOS will detect your controller and configure RetroArch hotkeys automatically. If this behavior is not desired it can be disabled in the System Settings menu by disabling the "AUTOCONFIGURE RETROARCH HOTKEYS" option.

RetroArch Hotkeys

  • Hotkey Enable: Select (Hold)
    • Exit: Start (Press Twice)
    • Menu: X
    • Favorite: Hold X
    • Show/Hide FPS: Y
    • Save State: R1
    • Load State: L1
    • Rewind: L2
    • Fast-Forward Toggle: R2

Note: X and Y are reversed on some devices, this is normal behavior.

Global Hotkeys

  • Pause: Start
  • Quit: Start+Select
  • Force-Close: L1+Start+Select
  • Skip 5s: R1
  • Back 5s: L1
  • Skip 60s: R2
  • Back 60s: L2
  • Brightness Up: Fn+Vol-Up
  • Brightness Down: Fn+Vol-Down

RG552, and Win600 use R2 rather than FN + Vol-Up/Down for brightness.

Reference

Emulator Hotkeys and Button Assignments

Emulator Notes
Amiberry Standalone
ecwolf Game Engine
gzdoom Game Engine
Hatari (Hatarisa) Standalone
Hypseus-singe Standalone
SELECT        coin
START         start
BUTTON 1      a
BUTTON 2      b
BUTTON 3      x
MOVEMENT      d-pad or left-analog
QUIT          select+start

to add functions, edit /storage/.config/game/configs/hypseus/hypinput.ini under [KEYBOARD] section by changing third number for a function from 0 (disabled) to the joystick button number

retrieve joystick button numbers with

jstest /dev/input/js0

the following assigns quit to L1 and pause to R1

[KEYBOARD]
KEY_QUIT = SDLK_ESCAPE 0 5
KEY_PAUSE = SDLK_p 0 6

lzdoom Game Engine
mupen64plus (mupen64plussa) Standalone
SELECT        hotkey enable
START         start
B             a
Y             b
RIGHT ANALOG  C-stick
LEFT ANALOG   analog
L1            L
L2            Z
R1            R

HOTKEYS
=======
SELECT+START  exit to EmulationStation ("ES")
SELECT+R1     save state
SELECT+L1     load state
SELECT+Y      screenshot
SELECT+B      reset current game

CONTROLLER PROFILES

Z and L button assignment can be changed in ES.

  • Highlight the game and press X
  • Select ADVANCED GAME OPTIONS (A to confirm)
  • Set EMULATOR to either MUPEN64PLUSSA
  • Change INPUT CONFIGURATION
    • DEFAULT: L1 = L, L2 = Z
    • Z & L SWAP: L1 = Z, L2 = L
    • CUSTOM: Users can create their own controller layout in /storage/.configs/game/configs/mupen64plussa
Openbor Standalone
START         start, confirm
A             attack 1
X             attack 2
L1            attack 3
R1            attack 4
B             jump
Y             special
D-PAD         up/down/left/right
SELECT        cancel, screenshot

note: pressing A on title screen will exit

PPSSPPSDL Standalone
START         start
SELECT        select
B             cross
A             circle
X             triangle
Y             square
L1            L
R1            R
ANALOG LEFT   analog
ANALOG RIGHT  cross(down) circle(right) triangle(up) square(left)
D-PAD         up/down/left/right
L3            PPSSPPSDL menu
Raze Game Engine
Scummmvm (Scummvmsa) Standalone
vice (vicesa) Standalone
SELECT        onscreen keyboard
START         show menu
A             back (in menus); show menu
B             fire (joystick port 1); confirm (in menus)
L1            back (in menus); show menu
L2            assign hotkey
L3            fire (joystick port 2)
R1            confirm (in menus)
R2            swap joystick port (either [left analog + B=fire] or [right analog + L3=fire])

Notes:

Games will require keyboard key presses to progress through messages and to launch (e.g. SPACE, RSTR [run/start], F3, F7).

SELECT to show onscreen keyboard, left analog/d-pad to move cursor, B to confirm

C= on keyboard resets the machine

L2 to assign highlighted key or menu function to gamepad button (save config to retain)

To cancel onscreen keyboard, move cursor to blank area and A/L1 to close keyboard or click on X in top left corner of keyboard

Joystick can be assigned to port 1 or 2. R2 to switch ports. port 1: [left analog] + [B = fire] port 2: [right analog] + [L3 = fire].

To quit emulator, START, highlight Exit Emulator, B to confirm

Yabasanshiro Standalone
SELECT        menu
START         start
D-PAD         up/down/left/right
Y             a
B             b
A             c
X             x
L1 (shoulder) y
R1 (shoulder) z
L2 (trigger)  l
R2 (trigger)  r
LEFT ANALOG   analog stick
START+SELECT+L1+R1  exit emulator
Retroarch with Libretro Cores (RA:) 64-bit and 32-bit versions use shared config files
SELECT+START: exit (press twice)
SELECT+A:     pause emulation
SELECT+B:     reset emulation
SELECT+X:     Retroarch menu
SELECT+Y:     toggle fps
SELECT+L1:    load state
SELECT+R1:    save state
SELECT+L2:    rewind toggle
SELECT+R2:    fast-forward toggle
Port Master Port Installer

Button Codes

From ssh terminal:

evtest

then select retrogame_joypad to see details for each button press, including button labels, codes and analog stick values in real-time

jstest-sdl -t 0

to see interactive keymap

Joypad Button Button Codes
DIGITAL RG552/RG503/RG353P RG351MP RG351P/M RG351V
A (EAST) 1 (305 BTN_EAST) 1 (305 BTN_EAST) 0 (305 BTN_EAST) 0 (305 BTN_EAST)
B (SOUTH) 0 (304 BTN_SOUTH) 0 (304 BTN_SOUTH) 1 (304 BTN_SOUTH) 1 (304 BTN_SOUTH)
X (NORTH) 2 (307 BTN_NORTH) 2 (307 BTN_NORTH) 2 (307 BTN_NORTH) 2 (307 BTN_NORTH)
Y (WEST) 3 (308 BTN_WEST) 3 (308 BTN_WEST) 3 (306 BTN_C) 3 (306 BTN_C)
L1 4 (310 BTN_TL) 4 (310 BTN_TL) 4 (308 BTN_WEST) 4 (308 BTN_WEST)
L2 6 (312 BTN_TL2) 6 (312 BTN_TL2) 10 (314 BTN_SELECT) 10 (314 BTN_SELECT)
L3 11 (317 BTN_THUMBL) 14 (706 BTN_TRIGGER_HAPPY3) 8 (312 BTN_TL2) 8 (312 BTN_TL2)
R1 5 (311 BTN_TR) 5 (311 BTN_TR) 5 (309 BTN_Z) 5 (309 BTN_Z)
R2 7 (313 BTN_TR2) 7 (313 BTN_TR2) 11 (315 BTN_START) 11 (315 BTN_START)
R3 12 (318 BTN_THUMBR) 15 (707 BTN_TRIGGER_HAPPY4) 9 (313 BTN_TR2) 9 (313 BTN_TR2; F)
SELECT 8 (314 BTN_SELECT) 12 (704 BTN_TRIGGER_HAPPY1) 7 (311 BTN_TR) 7 (311 BTN_TR)
START 9 (315 BTN_START) 13 (705 BTN_TRIGGER_HAPPY2) 6 (310 BTN_TL) 6 (310 BTN_TL)
HOTKEY ENABLE 10 (316) 12 (704 BTN_TRIGGER_HAPPY1) 7 (311 BTN_TR) 7 (311 BTN_TR)
DPAD UP 13 (544 BTN_DPAD_UP) 8 (544 BTN_DPAD_UP) hat(1) (16 -ve ABS_HAT0Y -1) hat(1) (16 -ve ABS_HAT0Y -1)
DPAD DOWN 14 (545 BTN_DPAD_DOWN) 9 (545 BTN_DPAD_DOWN) hat(4) (16 +ve ABS_HAT0Y 1) hat(4) (16 +ve ABS_HAT0Y 1)
DPAD LEFT 15 (546 BTN_DPAD_LEFT) 10 (546 BTN_DPAD_LEFT) hat(8) (17 -ve ABS_HAT0X -1) hat(8) (17 -ve ABS_HAT0X -1)
DPAD RIGHT 16 (547 BTN_DPAD_RIGHT) 11 (547 BTN_DPAD_RIGHT) hat(2) (17 +ve ABS_HAT0X 1) hat(2) (17 +ve ABS_HAT0X 1)
ANALOG RG552/RG503/RG353P RG351MP RG351P/M RG351V
LEFTANALOGLEFT AXIS 0 -ve (ABS_X) AXIS 0 -ve (ABS_X) AXIS 2 +ve (ABS_Z 4095) AXIS 2 +ve (ABS_Z 4095)
LEFTANALOGRIGHT AXIS 0 +ve (ABS_X) AXIS 0 +ve (ABS_X) AXIS 2 -ve (ABS_Z 0) AXIS 2 -ve (ABS_Z 0)
LEFTANALOGUP AXIS 1 -ve (ABS_Y) AXIS 1 -ve (ABS_Y) AXIS 3 +ve (ABS_RX 4040) AXIS 3 +ve (ABS_RX 4040)
LEFTANALOGDOWN AXIS 1 +ve (ABS_Y) AXIS 1 +ve (ABS_Y) AXIS 3 -ve (ABS_RX 0) AXIS 3 -ve (ABS_RX 0)
RIGHTANALOGLEFT AXIS 2 -ve (ABS_RX) AXIS 2 -ve (ABS_RX) AXIS 4 -ve (ABS_RY)
RIGHTANALOGRIGHT AXIS 2 +ve (ABS_RX) AXIS 2 +ve (ABS_RX) AXIS 4 +ve (ABS_RY)
RIGHTANALOGUP AXIS 3 -ve (ABS_RY) AXIS 3 -ve (ABS_RY) AXIS 5 -ve (ABS_RZ)
RIGHTANALOGDOWN AXIS 3 +ve (ABS_RY) AXIS 3 +ve (ABS_RY) AXIS 5 +ve (ABS_RZ)