You are not logged in.

#1 2019-07-28 00:39:29

alfalfa
Member
Registered: 2017-06-30
Posts: 63
Website

Retrolink: Seamless link of frontend and emulators with gamepad hotkey

Retrolink fill the gap between the frontend (ie. EmulationStation) and the emulators. It allows binding a key combination on any Bluetooth gamepad, which then toggle either the frontend or the emulators. Therefore, both can then be opened and closed without a keyboard, solely by using a wireless controller. The wrapper also provides a black background to avoid the flickering during the transitions.

Have a look at the GitLab page for more details and nice GIFs.
Click here for the AUR page.

Last edited by alfalfa (2019-07-28 00:44:41)

Offline

#2 2019-08-10 14:04:41

alfalfa
Member
Registered: 2017-06-30
Posts: 63
Website

Re: Retrolink: Seamless link of frontend and emulators with gamepad hotkey

To the repo I added a standalone python wrapper that assist the launch of PC games from EmulationStation. For DRM-Free games, it allows to bypass the steam client entierely, and therefore avoid the arbitrary auto-update and login process to the steam account. Its also great for wine games, as well as games lacking proper gamepad support.

Below is a summary of the implemented features as of today;

Configuration GUI (PyQt)
- Allows binding hotkeys to multiple Bluetooth gamepads
- Provides a script to manage permanent symlinks for these devices
- Run custom scripts before or after the execution of the frontend

Evdev Daemon (PyQt)
- Run in the background and listen for matching evdev events
- Toggle the frontend or the emulators, as needed
- Auto disconnects the gamepads on exit

extra/wrapper.py (Python)
- Take ownership of the game subprocess and it's wrappers; killing wrapper.py closes its children
- Set the SDL_GAMECONTROLLERCONFIG variable for most common (235) Linux gamepads
- Set the current working directory
- Set custom environment variables
- Launch processes before, after, or along with the main program

wrapper.py launcher example:

#!/bin/bash
# ~/.emulationstation/collections/pc/Elastomania.sh
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
$DIR/.games/wrapper.py --run "$DIR/.games/Elastomania/eol2" --env "LD_LIBRARY_PATH=./lib" --wrap "antimicro --profile $DIR/.antimicro/Elastomania.amgp"

Last edited by alfalfa (2019-08-10 23:50:46)

Offline

Board footer

Powered by FluxBB