Skip to content

Instantly share code, notes, and snippets.

@michaelbutler
Last active October 26, 2022 15:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaelbutler/dd2b1efa3f831a0901564c77359cb8e2 to your computer and use it in GitHub Desktop.
Save michaelbutler/dd2b1efa3f831a0901564c77359cb8e2 to your computer and use it in GitHub Desktop.
Using GIMX (similar to Xim Apex) on PlayStation 5 PS5 with Remote Play

How to use a Keyboard and Mouse on PS5 Games

In this guide we go over all the components you need to play on a PlayStation 5 console, nearly ANY game, with a Keyboard and Mouse. In my experience with my PlayStation on wired ethernet and my Phone on 5 Ghz WiFi I saw almost no lag (later I'll explain why this technique effectively cuts any latency in half versus using Remote Play normally). You probably already have all these parts at home, except the GIMX adapter and maybe the OTG USB Hub.

Screenshot_20221025_212215 Click to enlarge

Required Components Summary

  • GIMX USB Adapter
  • Laptop or desktop computer placed near your PS5
    • You can also use a Raspberry Pi but there's some additional steps, I won't cover that here
  • Android Phone (doesn't need to be super fast)
  • PSPlay App ($5.99)
    • This is needed for PS remote play AND button remapping support
  • OTG USB Hub with Charging Link
    • This is so you can charge your phone simultaneously while having a USB device plugged in (GIMX). It doesn't have to be that fancy.
  • Any Computer Keyboard Example
  • USB Mouse
    • Should be a quality gaming mouse such as Corsair M65 RGB Pro
    • Highest DPI will be best (e.g. 6000 DPI and up)
  • PlayStation 5 Link
  • TV or Monitor hooked up to your PlayStation 5 Example

Interestingly, a PS5 DualSense controller is NOT Required for this method!

Helpful to Have:

For headphone audio and microphone, I recommend a USB Gaming Headset that you can plug directly into the PS5.

Setting up PS5 Remote Play

First, get PS5 remote play working from your Android Phone. Buy the PSPlay App app. It's well worth the $5.99 as it offers button remapping with multiple profiles. I had problems using Chiaki on Android with the GIMX adapter appearing as a PS3 Sixaxis controller.

There are other guides on how to do this, so once you can successfully use Remote Play on your Android phone, continue on to the next step.

GIMX Adapter

You have to obtain or make a simple GIMX adapter; you can buy these maybe on eBay; Guide on making them.

Downloading GIMX Software

  1. Visit the GIMX website and download GIMX. It works on Windows and Linux, but this guide will cover Linux.
  2. Run the gimx-loader utility. Choose EMUPS3 because we want out GIMX adapter to mimic a PS3 Sixaxis controller.
  3. Plug both ends of the GIMX adapter into the computer and hit LOAD. Follow the onscreen instructions (as some point you'll need to unplug and replug the cable so it starts the flashing process.
  4. Now plug the "Game" end of the GIMX adapter into your OTG USB Hub. Plug the OTG USB HUB into your Android phone. And plug the charging cable into the HUB to, so it stays charged.
  5. Load GIMX Launcher
  6. This is the part that will need some tweaking. You can download community configs and tweak them to your liking, or start from scratch. It might be a good idea to start a new config from scratch so you can learn better how GIMX works and what all the settings mean.

Remapping Controls in Android

Make sure you have a GIMX Config with every control mapped (e.g. D-Pad buttons, Square, Circle, Triangle, X, L1/L2, R1/R2, L3/R3, start/select -- everything). Write down the mapping so you know what key is what.

  1. Open PSPlay but down connect to your PS5 yet
  2. On your Laptop, click Start in Gimx Launcher
  3. As all the cables are connected up properly, it should connect and provide a Virtual PS3 controller to your android phone
  4. In PSPlay, go to Settings and Remap buttons (Gamepad mode, you don't need to do anything with the touchscreen controls)
  5. Type a name for your gamepad profile, such as "PS3Gimx"
  6. Now as it goes through the button prompts, press the corresponding key on your laptop so it matches up. (E.g. if You mapped "Spacebar" to X, press Spacebar when it prompts you to press X.
  7. Important! When it gets to mapping the Right Analog stick, be sure to move your mouse hard in the appropriate direction so it knows what Axis it is. And for left analog stick you might have to tap the WASD keys twice. Same for D-Pad mappings.
  8. Once mapping is complete you should be ready to connect to your PS5 and invoke remote play.

Playing a Game

At this point you should be able to press keys on your keyboard and buttons on your mouse to control your PS5. This works because your computer, combined with the GIMX adapter and software, is acting as a PS3 controller connected to your Phone. And the PSPlay app on Android lets you play your PS5 remotely using any USB controller.

The best part about this whole set up is that you're looking at the monitor which is directly connected to your PS5, you're NOT looking at the Android's screen. This means that only your input controls have latency -- your vision and sound will have essentially zero latency (besides typical internet latency if you're playing an online game). This is because right now the PS5 continues to play (both audio and video) whatever game is being played; Sony might cut this off in the future.

Technical Discussion of Lag & Latency

Imagine a user is playing remotely and also is watching the remote (delayed) video stream. What happens when a rocket is fired at the player?

Screenshot_20221025_215724

Since the game is controlled by the PS5, the rocket starts traveling towards the player before they even know it; they don't receive the information until maybe 50ms later. The player then reacts to it by Jumping... but the data must be sent back to the PS5, and thus the PS5 doesn't know the player jumped until another 50ms later (a total of 100ms since the rocket was fired). The PS5 then increases the player's height, but the player doesn't see their height increase until 50ms later (100ms after they pressed the jump button).

Now look at this improved example, as configured in the aforementioned guide where the player is watching the local PS5 video stream.

Screenshot_20221025_215803

The rocket is fired on the PS5 and the player sees that event instantaneously (ignoring the human brain or monitor render times, which are always present in every setup). Thus, the player can instantly jump -- 50ms quicker than the previous example. HOWEVER because the controls are remote, the PS5 doesn't know the user pressed Jump until 50ms later. That still cuts out one-way of the round trip (a savings of 50ms). When the PS5 increases the player height, the player sees that as soon as possible.

Thus, we can say that this configuration is 50% of the latency of typical remote play. If fully local play has 0ms latency and fully remote play has 200ms latency, we can say that this technique results in 100ms latency.

@michaelbutler
Copy link
Author

michaelbutler commented Oct 26, 2022

This guide can be shared using this link https://tiny.one/gimxPS5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment