XIM Community

XIM4, SandhawC & Steam Controller  (Read 1507 times)

Offline rand0m

  • Member
  • *
  • Posts: 4
    • View Profile
XIM4, SandhawC & Steam Controller
« on: 04:52 PM - 08/25/17 »
Since there is only very little information on the XIM4+Steam Controller integration and I ended up doing things a little differently than the guides I found, I decided to put together a few loose notes on my setup.

First of all - ever since I first tried out the Steam Controller with gyro aiming on a PC and realised that the PS4 controller has had a gyro for years, I've been wondering how motion controls aren't considered essential in all console shooters by now. It's a huge improvement in terms of precision (I'd put it somewhere between analog sticks and mouse but it's definitely closer to mouse) and just as important if not more so - it feels amazing. The physicality of aiming the gun by moving the controller is unmatched by both standard controllers and mouse/keyboard and contributes greatly to immersion (for me at least).

The way I set this up is by adding SandhawC as a third-party application to Steam, creating a controller configuration for it in Big Picture Mode and launching it from Steam. A few important notes on the setup:

* As someone mentioned around here, the negative acceleration with XIM when a quick movement goes over a game's speed limit (negative in the sense that moving a certain distance fast can lead to a smaller in-game movement than going the same distance slow) is much more noticeable on the small trackpad than when using a mouse with more space to move around in. In theory. One solution (which, as it happens, is exactly the way I used to play on PC anyway) is to set the touchpad to trackball mode with low friction and no acceleration. Every somewhat larger aim adjustment, 180 turns, etc. is done by flicking the 'trackball' and stopping it at the right moment. Works well and feels great to me. I like the haptics at medium.

* Set vertical friction to max, so the aim doesn't go all over the place when doing 180 turns. I also like to reduce vertical sensitivity on the touchpad somewhat.

* Touchpad sensitivity is set to max and gyro sensitivity to 2/3rds. Sensitivity is then adjusted in SandhawC/XIM Manager so that a 90 degree rotation of the controller leads to about 270 degrees rotation in-game.

* Other than the touchpad and gyro being set to mouse mode, all other controls are set as controller inputs/triggers/bumpers, etc. This means that for every game you play, you have to map the controls one to one in SandhawC - RB to RB, LB to LB, etc. This seemed to me to be the most hassle-free way to handle this as opposed to maintaining different keyboard-based configurations for multiple games (with the Steam Controller outputting keystrokes rather than controller buttons).

The mapping itself is a bit confusing, you click the button you want to map in XIM Manager, then enable SandhawC with 'Break', then hit the correct button on the controller, then disable SandhawC again. Rinse and repeat for each and every button. It's a minor hassle, takes a minute, but you only do it once for every game you want to play with XIM.

* A few small adjustments I like to make - I use the left trigger to sprint (it's mapped to the left stick in Steam) and aggressive hipfire mode on the right trigger to combine aiming and shooting (soft pull is mapped to left trigger, full pull to right trigger), so that a fast pull is hipfire and a minimally slower pull enables ADS first. I also use the left paddle for crouch (mapped to B) and the right one for jump (mapped to A).


Two questions/issues:

* I didn't get the point of Cornet, so maybe I'm missing something - does it do something that my setup doesn't or is it considered deprecated anyway?

* Using 'Break' with no option to change it as an on/off switch for SandhawC is a huge hassle. I don't have 'Break' on the keyboards I own and it doesn't seem to be trivially assignable to some other key (I tried and failed with SharpKeys). It is my understanding that the key used to be PrtSc before and that would be just perfect for me - what was the rationale behind the change? As it stands, I have to use the Windows on screen keyboard to click on Break with the mouse and awkwardly move the window around when it gets in the way, it's just a giant pain in the arse.

Although there's some minor room for improvement here and there, all in all I'm very happy with this setup. Huge thanks to the XIM4 and SandhawC guys/gals - you done good!

EDIT - additional notes:

* If you want to access the Steam Controller configuration after launching SandhawC from big picture mode, just click on the background outside SandhawC to focus Steam and then alt-tab back to SandhawC when you're done. Using the Steam Controller button kinda freezes things. If you accidentally press it, just press it again. It seems to be opening the Steam Overlay in the background, but it's not actually visible, so it looks like SandhawC has frozen, until the second press exits the overlay.

* I changed the global Steam Button chord configuration to emit Esc for Steam Button + Start and then I map Esc to the controller home button in SandhawC otherwise there's no way to press it (since the Steam Button doesn't work for that purpose).

This makes Esc the only keystroke mapped to a controller button, all other mappings in SandhawC are essentially passthrough - RB -> RB, RT -> RT, etc. for all games.

* I've created a second action set in the Steam Controller configuration, where both triggers act as analog triggers (as opposed to the default action set, where they simply emit the trigger events, in my case left stick for the left trigger and LT/RT for the right trigger soft/hard pull.) I've mapped a long press on the Select and Start buttons on the controller to switch between the configurations with haptics on (Select is for default, Start for analog triggers).

This is required for my setup where I am using a dual stage right trigger, etc. because in a game where there's driving for example, I need to be able to switch between the dual stage trigger and analog trigger for throttle, etc. If you don't require a dual stage trigger you don't need the second action set.

« Last Edit: 11:08 AM - 09/08/17 by rand0m »

Offline W11cE

  • Moderator
  • MVP
  • *
  • Posts: 1519
    • View Profile
Re: XIM4, SandhawC & Steam Controller
« Reply #1 on: 05:37 PM - 08/29/17 »
Thanks for writing this :) I havent used Steam Controller in a long time, even on pc. Recently played few hours of borderlands 2 but thats it. Maybe I will revisit the usage with XIM soon.

I know tapping the Pause key on binding is a hassle, but that is necessary since the manager is running on the side.

Quote
* I didn't get the point of Cornet, so maybe I'm missing something - does it do something that my setup doesn't or is it considered deprecated anyway?
On the steam controller release the only way to configure game profiles for the controller was with steam big picture overlay. And it pops up only on rendered objects. So I had to make separate application where the overlay can hook into. Now it is not needed anymore as there are much better alternatives. Just a little side project that I was not even going to release at first.

Quote
* Using 'Break' with no option to change it as an on/off switch for SandhawC is a huge hassle. I don't have 'Break' on the keyboards I own and it doesn't seem to be trivially assignable to some other key (I tried and failed with SharpKeys). It is my understanding that the key used to be PrtSc before and that would be just perfect for me - what was the rationale behind the change? As it stands, I have to use the Windows on screen keyboard to click on Break with the mouse and awkwardly move the window around when it gets in the way, it's just a giant pain in the arse.
You can map other keys to pause with ahk script. I can post an example later. I changed the key, because print screen contains already actions that are used. Pause is not really used anywhere. Since SandhawC was designed to work globally no matter where it is hiding, you could not have used print screen to capture the screen while it was running. Not a big deal really, but I did not like the use of that key anyway.
« Last Edit: 05:43 PM - 08/29/17 by W11cE »

Offline rand0m

  • Member
  • *
  • Posts: 4
    • View Profile
Re: XIM4, SandhawC & Steam Controller
« Reply #2 on: 02:08 PM - 09/07/17 »
I seem to have missed the notification for your answer - thanks for clearing things up. Regarding the AHK script for 'Break' - that would do the trick. I've used AHK before, I'll set this up - I'm guessing it's a simple 'Send {Break}', but if any additional black magic is required, do let me know. Thanks :)

Offline rand0m

  • Member
  • *
  • Posts: 4
    • View Profile
Re: XIM4, SandhawC & Steam Controller
« Reply #3 on: 02:12 PM - 09/07/17 »
By the way - do you know if AHK introduces additional input lag in this scenario, particularly with me sending controller commands from Steam rather than keystrokes?