mapping gamepad controller onto mouse and keyboard

6,927

Overview

You may want to have a look at vJoy and Universal Control Remapper (UCR).

vJoy is a "virtual" (software-only) joystick and UCR is an application built with AutoHotkey that allows you to map keyboard and mouse input to vJoystick controls.

Example

  1. Download and install vJoy (vJoySetup.exe). Don't worry about any of the optional install items (i.e. it's fine to leave them checked). Be patient. The installer may take a few minutes to fully complete.

  2. Download and unzip UCR. Place it somewhere where you will be comfortable keeping it (it doesn't have an installer).

  3. Open UCR.exe. On your first run, ensure that vJoy was loaded correctly by opening IOClasses → vJoy → Show vJoy Log from the main UCR menu bar.

    UCR Screenshot- vJoy Options

  4. You should see a pop up that looks similar to the following:

    UCR Screenshot - vJoy Log

  5. Note the line that says SCPVBus is not installed (Non fatal). Use IOClasses → vJoy → Install SCPVBus (Will Restart UCR) to install SCPVBus.

    UCR Screenshot- Install SCPVBus

    This will open a command window that installs SCPVBus. As with the original vJoy driver installation, be patient. Wait for the command window to close and UCR to restart automatically.

  6. Once UCR restarts, in the Profile ToolBox section (right-hand pane) Add a new profile and make certain it is highlighted. The new profile name should be reflected in the Current Profile field near the top of the main UCR window (left-hand pane).

    UCR Screenshot - Profile

  7. From there, you will need to add the following plugins to the main UCR interface:

    • ButtonToAxis [Remapper (Button to Axis)]
    • ButtonToAxis [Remapper (Button to Axis)]
    • MouseToJoy [Remapper (Mouse Axis to Joystick Axis)]


    These are added one at a time with the Plugin Selection dropdown and Add near the top of the UCR interface.

    • Set the Low and High values of the first ButtonToAxis to A and D respectively.

    • Set the Low and High values of the second ButtonToAxis to W and S respectively.

    • Leave the MouseToJoy settings as-is.


    You may need to experiment with the Axis settings in each plugin configuration, but the Axis settings themselves should all be for the same joystick (e.g. vJoy 1). Axis 1 (X), Axis 2 (Y) and Axis 3 (Z)/Axis 6 (Rz) worked for this example. Don't forget to save your configuration after making changes!

    UCR Keyboard to vJoy Settings - Screenshot


For the rest of the vJoy buttons (including the D-pad), you will need to use multiple ButtonToButton [Remapper (Button to Button)] plugins.


You can check you vJoy/UCR settings with joy.cpl (Windows Joystick Control Panel). You should be able to find it with Windows Search.

To test your controls:

  • Select e.g. vJoy Devices for the joystick selection and then click Properties.
  • While UCR is running, pressing W, A, S, D and moving the mouse should affect the X Axis/Y Axis box target and Z Axis/Z Rotation indicators.
Share:
6,927

Related videos on Youtube

Joe Martin
Author by

Joe Martin

Updated on September 18, 2022

Comments

  • Joe Martin
    Joe Martin over 1 year

    alot of programs map the keyboard and mouse buttons onto the gamepad. making the later send their input (i.e right joystick moves the mouse pointer, left joystick functions as WASD in games etc). i want to do the exact opposite. i want to map the gamepad controller onto the keyboard and mouse so the WASD will function as left joystick for controlling movement for example and the mouse will function as right joystick for camera.

    i am on win 10.

    • harrymc
      harrymc over 4 years
      Windows or Linux?
    • Joe Martin
      Joe Martin over 4 years
      oh i added the OS in my post. it is win 10.