RetroDECK icon indicating copy to clipboard operation
RetroDECK copied to clipboard

RetroDECK - Controller Unification Project (CUP) 🍵

Open Lazorne opened this issue 3 years ago • 5 comments

Original pitch:

We need to go through each emulator and make sure all the hotkeys are correct and as we want them then update the input configs inside the emulators, generate a new steam controller layout and new wiki entries.

These controllers should just be applied if you are using the Steam Deck as a device.


In the future there are more things to consider

A user commented as well to include more configurations for systems with multple inputs like the Wii:

it would be awesome if retrodeck includes already configured systems such as emudeck does for example for Wii https://github.com/dragoonDorise/EmuDeck/tree/main/configs/org.DolphinEmu.dolphin-emu/config/dolphin-emu

Docked mode: External controllers only

Handheld: As now

WiiU Steam Deck mode: Steam Deck as a WiiU gamepad.

WiiU Controller mode: Wii U with external WiiU Controller

GuitarHero/RockBand mode: Music Controllers

Lightgun Mode: Lightguns

Wii Controller Mode: Wii


As we also wants to move onto the standard Linux Desktop & other SteamOS devices post 1.0, there will be a need for dynamic controller configs based upon Device Detection + Device Mode + Plugged in Controllers.

Lazorne avatar Oct 18 '22 11:10 Lazorne

Emulators - Category Classification by Hotkey type

Catagory 1 - Keyboard hotkey based:

Information:

  • Don't allow gamepad inputs as hotkeys.
  • Don't allow combination of letter characters as hotkeys
  • Allows special keyboard inputs and combination as hotkeys (don't allow E+T but allows Shift+T)

Emulators: Citra, Yuzu

Catagory 2 - Keyboard and Gamepad combination based:

Information:

  • Allows gamepad input and combination as hotkeys
  • Allows keyboard inputs and combination as hotkeys
  • Don't allow combination of letter characters as hotkeys (Like Letter T+ Letter R)

Emulators: PCSX2, Duckstation, MelonDS, Dolphin/Primehack

Catagory 3 - RetroArch

  • Don't allow custom rebinding of all hotkeys
  • Support keyboard input and gamepad input combinations as hotkeys
  • Only supports one toggle button for hotkeys (you can't mix CTRL + X and ALT + X)

Emulators: RetroArch

Catagory 4 - Single gamepad/keyboard button hotkey based

Information:

  • Only allow single letters or single gamepad or keyboard input as hotkeys (Letter T or Button B)

Emulators: PPSSPP

Catagory 5 - Hotkeybinds are not allowed

Information:

  • Don't allow hotkeys at all in the GUI

Emulators: XEMU, RPCS3

Hotkeymapping priority order

Keyboard based > Gamepad based hotkeys > Single button based

Lazorne avatar Oct 19 '22 06:10 Lazorne

CUP Part 1: Steam Deck - Layout changes:

Hotkey paradigm

Gamepad based hotkeys > Keyboard based > Single button based

Changes to the back buttons

Suggestion 1:

L4 - T L5 - CTRL R4 - R R5 - SHIFT

This allows us to have 4 buttons in combinations and also allows hotkey combination bindings in Category 1

L4 + L5 L4 + R4 L4 + R5 L5 + R4 L5 + R5 L4 L5 R4 R5

It also allows up to use standard gamepad keybindings for Category 2-4

Suggestion 2:

Look into button chording so that each press of a back button could change the inputs of XYAB to something else.

Example:

L4 - Changes XYAB to keybard inputs ABCD L5 - Changes XYAB to keybard inputs DEFH R4 R5

That would allow even more keybinds.

Suggestion 3:

A hybrid of 1 and 2

Right touchpad = As mouse and leftclick

This will allow Lightgun, WiiMote games to work.

Left touchpad = Radial Menu

Information: The goal is to have the Left touchpad as an radial menu with icon glyphs for quick access. This can be divided into submenus per type of input catagory (above) or per function type: Save, Load, Quit etc..

Radial menu:

  • Should access more hotkeys then the button combinations, but as well those that are bound.
  • Should be logical for the users where each emulator is.
  • We can't add a separate submenu for each emulator as it becomes too clustered

Lazorne avatar Oct 19 '22 07:10 Lazorne

The 5 parts:

Part 1: Better Steam Deck inputs

Make a new profile that works with hotkeys in all emulators and rebind all emulators.

Release goal: RetroDECK 0.7b

Part 2: Standard External Controllers

Need to develop:

Controller Play order switcher This allows you to change the playorder of each controller, example: the PS3 controller is now player one, the 360 controller is player 2 ect... This is built into the Steam Deck from the GUI, but for desktop use we wither have to develop our own one or wait for ES-DE to do one.

Controller Profile type switcher and framework You should be able to choose or it can be detected each input device is and it should map all the emulators correctly with keybinds and hotkeys. So in the example above, as soon as we say the PS3 is controller one. All emulators are updated with PS3 inputs as playone with hotkeys.

Include support for standard controllers:

  • Playstation
  • Xbox
  • Nintendo *
  • Valve
  • Generic
  • Arcade Sticks

(*Nintendo WiiMote and WiiU Controller later)

Part 3: JoyToKey for PC-Systems

Add support for the following where it's possible

  • All PCSystems in both Standalone Emulators and Cores.

Release goal: TBA

Part 4: Special External Controllers

Add support for the following where it's possible , make tools for them or at least guides to make them easier to hookup.

  • Wii Mote
  • Wii Sensorbar
  • WiiU Controller
  • Wii Balanceboard
  • Ringfit
  • Guitarhero/Dj hero /Rockband - Music Instruments (They have native emulator support so they might work).
  • Lightguns (Might be licensing issues with Sinden and such. Check how Batocera solved it.)

Release goal: TBA

Part 5: Niche Peripherals

These might not be possible or are very complicated to do. They might need Linux kernel support (outside of our scope) or other issues.

  • 3rd party Clones of those in Part 3
  • Steering wheel + Shifter (The Linux drivers are not good at this moment)
  • Steelbatalion Cockpit
  • Flightsimulator Cockpit
  • Other crazy things

Release goal: TBA or Never

Lazorne avatar Mar 22 '23 11:03 Lazorne

CUP Part 1: Steam Deck Has been delivered in patch 0.7b in it's first iteration

Lazorne avatar Jun 16 '23 15:06 Lazorne

Duckstation's hotkeys are not yet set as they're overwriting the keybaord (so radial) ones.

XargonWan avatar Jun 20 '24 03:06 XargonWan