INSTALLATION AND SETUP: 1. Download and install VJoy at: http://headsoft.com.au/index.php?category=vjoy (Choose "VJoy Virtual Joystick Driver v1.2" at the bottom of the page) 2. Create a shortcut to "Mouse to Joystick.exe". Go to the shortcut properties and at the end of Target add "--sensitivity [your TF2 sensitivity]". 3. Place demoknight.cfg in your tf2\cfg folder. You can execute it manually, bind a button to execute it, or always execute it from demoman.cfg. 4. Under Start > Run type "joy.cpl". If VJoy is installed correctly, you will see two "VJoy Virtual Joystick" entries. Click "Advanced" and under "Preferred Device" select either VJoy Virtual Joystick. 5. Configure VJoy in Steam Big Picture: - Run VJoy. Map Buttons 1-4 to some keys, as well as Up, Left, and Slider+. Do this for both VJoy controllers, and make sure they are both enabled. (See VJoy.jpg) - Run Big Picture. Go to Settings > Controller, it should say "Controller Detected: VJoy Virtual Joystick" (if not, then Big Picture is reading the wrong controller). Click "Edit Controls". Map the first four buttons to buttons 1-4 in VJoy. Then scroll down to Left Stick X and Left Stick Y, map these to Left and Up. Finally, map Right Stick X to Slider+. Save this configuration (if you don't see a save button, press Esc). (See "Big Picture controller 1.png" and "Big Picture controller 2.png") - You can now close Big Picture and VJoy. You don't need to run them again. USAGE: To use the script, just run the shortcut you created in step 1. In TF2, the joystick will be active and horizontal mouse disabled while you hold mouse2. The mouse should feel about the same, but it will allow you to turn sharply while charging. NOTES: - At times the Preferred Device can change (usually when you have used another controller). If the script stops working, you should check that the Preferred Device is still VJoy Virtual Joystick. - Sometimes TF2 will execute 360controller.cfg automatically when it detects a new controller, and this messes up several joystick parameters. If the script is working, but doesn't feel right (turns too slowly, feels like it has acceleration) then run your demoknight.cfg again to correct these parameters. 360controller.cfg may also change some HUD parameters, which you'll have to fix. I haven't been able to find a solution to completely stop this from happening. MOUSE TO JOYSTICK FLAGS: Mandatory flags: --sensitivity sensitivity from TF2. Optional flags: --adjustment Sensitivity adjustment factor. Default 1.0 --fps Frame rate of script (how often it updates the joystick). Default: 128 --joy_yawsensitivity joy_yawsensitivity from TF2. Default: 50 --joy_yawthreshold joy_yawthreshold from TF2. Default: 0.0 --cl_yawspeed cl_yawspeed from TF2. Default: 210 --m_yaw m_yaw from TF2. Default: 0.022 COMPILING: A Visual Studio C++ 2010 solution is included. If you wish to compile the program from source, you will need the DirectX SDK and Boost.