[Script Release] Gyro Aim "uJSM"

Forum to discuss the scripts, configs and connection of XIM with the Titan devices.

Moderator: antithesis

[Script Release] Gyro Aim "uJSM"

Postby aelius » Mon Dec 19, 2022 11:07 pm

Hello everyone. I have written a script for the Titan Two which takes controller motion aiming and translates it to mouse output. I call it uJSM, aka micro Joy Shock Mapper, because a lot of the feature set and code was referenced from JoyShockMapper, a controller remapper software with emphasis on gyro aiming and flickstick.

You can find the script in Gtuner's online resources by searching for uJSM.

I'm sharing here to the XIM subforum because the most effective way to make use of my script is to feed the titantwo's mouse output into any XIM device. In doing so, you effectively make a XIM Nexus out of any gyro controller.

The elevator pitch for those not familiar: gyro aim done right is roughly on par with mouse aim. In many ways, gyro aim IS a form of mouse input. Programmatically, you can treat gyro outtput as if it were mouse output. Which is why my script works very well with the XIM, and why the XIM Nexus exists in the first place: XIM specializes in mouse-to-joystick mapping, and gyro is a mouse.

For those without a XIM, I've also implemented much of the mouse-to-joystick logic from JSM. It requires fiddling, though.
Additionally, you can use the mouse output directly on PC- in this mode, I have implemented flickstick. I intend to add flickstick to the joystick output in a future update.

Most of the documentation is in the script's interactive config, and you can read more about many of the settings over at JSM's github page linked above. I intend to make some video demonstrations because I'm sure much of this will be confusing and difficult to use for those just starting out. Please feel free to ask questions in this thread.

Note: I consider this alpha quality. Please read through what documentation I have written into the interactive config. If you intend to use mouse output directly to PC, you will need to add your own bindings to the GPC code.

I made this largely as an educational exercise, and am sharing it here in case others find some value in it. Unfortunately, my uJSM script does not work as well as the PC version of JSM. I believe this is an inherent limitation of the way TitanTwo reports gyro information. The accel and gyro sensors, like all other inputs on TitanTwo, are reported on an abstracted scale of -100:100. This has created some headaches for me, and ultimately compromises the Titan's ability to have accurate gyro controls. I hope to get Jefferson's attention, because to truly work with gyro and accel data, I need access to the raw controller data in degrees per second.

Screenshot 2022-12-19 180345.png
Interactive Config
Screenshot 2022-12-19 180345.png (82.86 KiB) Viewed 926 times
User avatar
Staff Sergeant
Staff Sergeant
Posts: 15
Joined: Thu Dec 27, 2018 12:08 pm

Re: [Script Release] Gyro Aim "uJSM"

Postby halloll » Wed Dec 28, 2022 10:24 pm

Currently I make use of gyro aiming by strapping an arduino board that functions as a gyro mouse to a controller and connecting both to a Titan 2, while this method works really well especially since I can use any pre existing input translator script, my method is rather cumbersome though and it means I'm using both usb ports on the Titan 2.
I tried using your script and indeed found it confusing, I don't have a XIM device so I did most of my testing with mouse-to-joystick method but never quite managed to remove the deadzone.

Looking forward to your video :)
User avatar
Private First Class
Private First Class
Posts: 2
Joined: Mon Dec 27, 2021 10:45 am

Return to XIM Apex, XIM4, XIM Edge with Titan devices

Who is online

Users browsing this forum: No registered users and 9 guests