Emulator | Notes |
Amiberry | Standalone |
Dolphin (dolphin-sa) | Standalone
```
HOTKEYS (BASED ON GAMECUBE CONTROLLER PROFILE)
=======
SELECT hotkey enable
START exit to EmulationStation ("ES")
R save state
L load state
A screenshot
B internal resolution
Z game speed (fast forward)
X aspect ratio
Y fps on / off
DUP +1 save state slot
DDOWN -1 save state slot
```
|
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) | |