"Universal Controller", an Android app for emulating various platform controllers
-
Hey guys,
I've been using Reddit users as my alpha testers for the app for a while and they seem to like it, so now I figured it might as well open it up a bit more.
This is an Android app that connects via Bluetooth to the RetroPie, and injects keyboard presses into the system. The app lets you select between different screens with controller layouts on them (SNES, C64, Intellivision etc), at least for me greatly simplifying the interaction with RetroPie. So, when I play a C64 game I will use the SNES controller screen to get around EmulationStation, but then in the actual game I can hit Run/Stop and the F-keys with the C64 screen.
Current list of supported controllers:
- SNES/RetroPie
- Commodore 64 Keyboard
- Commodore Amiga Keyboard
- Intellivision controller
- Mouse
- Joystick
- Android Keyboard
The app is here:
https://play.google.com/store/apps/details?id=com.threbrooks.bluetoothkeyboardbut it also requires the installation of a small client on the RPi itself:
https://github.com/threebrooks/UniversalController
Would be great if you guys could try it out and tell me what you think. It's also entirely open source and easy to extend, so if someone wants to help adding controllers, I'm happy for pull requests on the Git repo as well.
EDIT: Make a backup beforehand. Nobody has reported issues so far, but you never know.
EDIT2: Free of course, and entirely open source. -
Did I post this in the wrong forum? A bit surprised at the complete lack of responses.
-
@3brooks said in "Virtual Controller", an Android app for emulating various platform controllers:
A bit surprised at the complete lack of responses.
I've used a few virtual controllers in the past mostly as a proof of concept but if I'm really playing I've never found them an adequate substitute for physical hardware. Between latency/lag etc. I imagine most people default to physical hardware, particularly when doing PC type Emulation as it feels more natural to have a physical keyboard, though I can see the benefit to this with non standard keyboards. I may try this out to see how it compares with others as I have time
-
@3brooks I tested it out, took a few reboots to finally get it to connect on my phone but once it did it worked, the haptic feedback is anice touch.
As far as the app interface itself I think it would be a nice touch to have a full screen mode as the upper bar being there is a tad distracting if I'm just using the one controller.
I take it the permissions for device files are for people who want to swap out intellivision overlays?
I also imagine there may be some bluetooth wonkiness depending on what other buetooth drivers others may be using for other bluetooth controllers but I didn't really test that as bluetooth can be wonky in it's own right regardless.
well done
-
This post is deleted! -
yeah, the file permissions are for the Intellivision controller, since it looks in the "INTV" folder for the overlays.
In terms of possible Bluetooth wonkiness, supposedly there shouldn't be any because the RPi should be able to connect 8 devices simultaneously.
Yeah, I've been thinking about getting rid of that top bar and regain the screen real estate.
-
Bumbedibump, I released version 1.3 of the app, addressing the issues I know of (e.g. less waste of screen real estate, bug fixes in some controllers).
It now also supports ColecoVision, with overlays!Store link: https://play.google.com/store/apps/details?id=com.threbrooks.bluetoothkeyboard
Github link (a script needs to be installed on the Pi for it to work): https://github.com/threebrooks/UniversalControllerPlease let me know if there are any issues, and rate it if you like it.
-
I know more than 2 years passed, but I wanted my phone to config retropie without using a Keyboard and tested your app. From your code on Github there are 2 problems in the main .py file.
1 - You're importing 2 times subprocess, which is redundant, no big problem whatsoever here
2- There's a Syntax error on line 114 that prevented the service to start on my PI3. There aren't () both at start and end from the print command.
So I changed it, copied the file to /usr/bin/ and it worked like a charm.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.