GIMX stands for Game Input MultipleXer or Game Input MatriX. The purpose of this software is to control a video game console with a computer (e.g. a PC or a Raspberry Pi). It works with the PS3, the Xbox 360, and the PS4.
¤ over bluetooth: works with Linux (PS3, PS4) only. A compatible bluetooth dongle is required.
¤ over usb: works with Linux and Windows (PS3, PS4, 360). A USB adapter is required.
The application gets data from the peripherals (mice, keyboards and joysticks) and sends controls to the game console over bluetooth or usb. Other controls such as gesture or voice are possible through the use of external software that emulate peripherals.
Fundraising for PS4/Xbox One support: http://blog.gimx.fr/fundraising-for-gimx-ps4-xbox-one-support/
GIMX can now control a PS4 over USB in both Linux and Windows! I will release in the next days a new firmware for the DIY USB adapter and a new GIMX software.
The connection diagram is as follow:
DS4 -- PC -- USB to UART adapter -- AVR USB board -- PS4
The DIY USB adapter is unchanged: it is composed of a AVR USB board and a USB to UART adapter.
The AVR USB board (such as a Teensy 2.00) enumerates similarly to a Hori Pad 4 FPS.
When the AVR USB board receives a control request from the PS4 that is part of the authentication scheme, this request is forwarded to the USB to UART adapter, then to the PC, and finally to the DS4. The reply from the DS4 takes the opposite path.
As for the 360, authentication data goes in both direction, but for the PS4 it is periodic. GIMX processes authentication data from the serial port and from the DS4 asynchronously. This makes data forwarding fast and efficient.
The drawback compared to the bluetooth solution is that it’s not possible to emulate touchpad & motion sensing controls, which are required in some games (mostly in PS4 exclusive ones). The other adapters (XIM/Titan/VenomX) have these limitations, and there no work-around yet. At least the USB solution is usable in most cross-platform games.
Posted in Uncategorized
I pushed gimx-config & gimx-fpsconfig updates in the git repository.
In gimx-config, there is a new “Type” menu that allows to change the controller type. Setting the right controller type allows to display controller-specific axis and button names.
I will now work on merging gimx-serial and gimx-bluetooth in a unified launcher that will also support the PS4.
I pushed touchpad support in the git repository.
People that already cloned the source can run the following commands to update GIMX:
sudo make install
I wrote a configuration for KillZone Shadow Fall that showcases this touchpad support. It can be downloaded via gimx-serial or gimx-bluetooth, using the “Help>Get Configs” menu (the file is named PS4_KillZoneShadowFall.xml). Key ‘f’ controls finger presence and the mouse axes control finger coordinates.
I will now work on updating the GUIs.
I managed to send touchpad inputs using a button and two axes (a mouse). The button controls the finger presence, and the axes control the finger coordinates. This allows me to control the drone modes in Killzone! The source code needs some refactoring before landing into the git repository.
A few products (venom x, xim4, titan) have announced PS4 support over USB. They are mixing the USB transfers from the Hori pad and from the DS4. They all lack touchpad support, and there is no evidence touchpad inputs can work over USB.