This is a combination mod and app that lets you use your joystick as an absolute position controller. Normally, if you hold your joystick halfway to the left, your reticle drifts leftward at half its maximum movement speed. When using this app, holding the joystick halfway to the left will move the reticle to the twist position that is half of its leftward maximum. This allows for much more precise aiming.

When unzoomed, the ratio of joystick throw will match the ratio of maximum twist/pitch. Once you zoom in, it will remain in the frame of reference you first zoomed in at, but use the lower zoom sensitivity. This means that movement from this position will no longer match total torso twist to percentage joystick throw, but instead have reduced movement from the point at which you first zoomed. As soon as you return to non-zoomed state, it will "snap" back into 1:1 ratio between joystick and torso.

For example: You move the joystick halfway to the right. The torso is now twisted halfway to the right. Then you zoom in without moving the stick; the torso remains halfway to the right. You now return the stick to center, since the zoom sensitivity is lower the reticles moves about halfway back to center. Once you unzoom, the reticle snaps back to center to match the stick.

How it works

The app maps joystick movements into mouse movements, which the game treats as absolute position updates. In order to determine how much mouse movement to use when you move the joystick, the app pairs with a provided pak file mod. This mod continuously sends updates about your torso position to the app.

A calibration function is provided (press F10 in game and leave it alone for 4 seconds while it sends some movements and measures the results). This should be run every time you change your mech (since different mechs have different torso twist profiles).

Mouse movement naturally has some drift due to lost inputs and rounding errors. The app updates are also used to correct for this drift, as well as "snapping back" when you go back to unzoomed aiming from zoom.

In order to communicate, the mod and app both connect to serial port 8 and 9, respectively. You will need to use a third party program to create these ports as virtual ports and connect them to each other.

Installation

Copy the pak file to MW5Mercs/MW5Mercs/Content/Paks

Install com0com, then in the setup create a new port pair, rename them COM8 and COM9, and click "apply"

The port drivers created may not work, if so try finding the com0com entry in Device Manager, then selecting update drivers from the drivers tab in properties and letting windows search for the most updated version, then restarting your PC

If that still doesn't work, try using the fre-signed version from here

Start up the MW5AbsoluteJoy app, select your stick and axis

​If the app reports that it could not connect to COM9, see the com0com troubleshooting steps above

Make sure the joystick axis are not mapped to anything in game, the game will receive inputs via simulated mouse this is important, the app will get confused if the game is receiving inputs through both methods

Make sure your mouse is not inverted in game, if you want to invert stick use the option in the app

In game, center your mech's torso, then press F10 to calibrate. Do not touch your mouse or joystick during calibration. You will see some slight reticle movement for 4 seconds. You will know calibration is complete when the reticle snaps back to center. Redo calibration any time you change which mech you are piloting

​If the calibration movements reach and exceed the boundaries of your mech's twist or pitch, reduce the ingame mouse sensitivity and rerun calibration.