Skip to content

Repository files navigation

Windows 10 | 11 .NET 8 Desktop Needs vJoy Download the latest release Buy me a coffee

MouseDrive

Steer racing games with your mouse — no wheel needed.

MouseDrive, Drive tab

MouseDrive turns left and right mouse movement into a steering wheel. Keys or mouse buttons work the throttle, brake and clutch as progressive pedals. It talks to the game through vJoy, a free virtual joystick, so the game sees an ordinary controller. It is made for racing games without mouse steering of their own.

Early development. Steering, pedals and the HUD work; setup guides per game are next. Download the latest release.


Highlights

  • Mouse = wheel. Movement is read straight from the mouse (Raw Input), so the pointer position, screen size and Windows pointer acceleration don't matter.
  • Tune the feel. Sensitivity, expo, deadzone, smoothing and optional self-centering, with a live ruler of mouse travel against wheel lock.
  • Progressive pedals. Throttle, brake and clutch from keys or mouse buttons, each with an initial and a maximum force and its own press and release times.
  • Traction control. The throttle feathers itself or eases off as you steer past a range or hold a key, and comes back gradually at the corner exit, with starting points per kind of car.
  • Extra buttons. Map keys or mouse buttons (right, middle, 4, 5) to vJoy buttons for shifting, pit limiter, lights…
  • On-screen HUD. Four styles drawn over the game, click-through. The wheel turns as far as the game's (180° to 1080°, per profile), and a position bar shows where it is past a full turn.
  • Profiles per car or game. Each keeps its own feel, rotation, pedals and keys. Import and export them to share.
  • Pointer stays put. While driving, it is held in the middle of the main screen and hidden, so it can't slip onto another window or monitor.
  • Stays out of the way. Compact window, close to tray, and the icon shows a red dot while you're driving.

A quick tour

Drive — what the game is receiving

The Drive tab, shown at the top of this page, is the live view. The wheel turns with the steering sent to the game, over a scale of the axis from full left to full right; the white triangle is the mouse before deadzone, expo and smoothing. Clutch and brake stand on the left and the throttle on the right, each with its force, its vJoy axis and its key. The vJoy button lamps light up while their keys are down.

Press F9 or click Activate to start driving with the mouse. Press F9 again for standby: the wheel centers and the mouse is yours again. Home straightens the wheel while you drive.

The chip at the top right checks vJoy for you: green vJoy ready means all set; click it when it's amber or red to see what's missing. The ⚙ menu next to it holds the window options (always on top, close to tray, compact window) and About, with the version and links to this repository, its releases and the manual.

Steering — make it respond your way

Steering tab

Mouse to wheel shows two rulers: mouse travel from center in millimeters above, wheel lock below, joined at every 10% of lock. Move Sensitivity and see how far the mouse has to go for full lock; with Expo the lines bunch toward the ends, for finer control near center.

Feel adds Smoothing against jitter and Self-centering, which brings the wheel back to center when the mouse stops, a bit like a real car.


Pedals — progressive throttle, brake and clutch

Pedals tab

A key is on or off; a pedal isn't. Each pedal jumps to its initial force when you press the key, climbs to its maximum force in the press time and goes back to zero in the release time. The graph draws one key press with every setting labeled where it acts.

Hold a pedal key in standby to watch the bars move while the game still gets 0%. Throttle, brake and clutch go to the vJoy Y, Z and Rz axes.

Under the throttle, traction control holds the throttle back while you steer past a range of the axis or hold a key: it pulses it on and off like feathering it by hand, limits it to a lower ceiling, or both. At the corner exit it hands the throttle back over a recovery time instead of all at once. Car type suggests the settings for formula, GT3, touring, rally and more. A TC badge on the HUD lights up while it acts.


Keys — vJoy buttons

vJoy buttons list

Click + Add key, press a key or a mouse button (right, middle, 4 or 5), pick the vJoy button number and give it a name. Then bind that button in the game's controls.

Commands holds the drive/standby and center keys. Click a key and press the new one: Esc cancels, Backspace clears, and conflicts are caught before they happen.


HUD — your wheel and pedals, over the game

HUD tab

A small click-through display drawn over the game: the wheel, the pedals and whether you're DRIVING or in STANDBY. Choose the style and the wheel, the size, opacity and background, then drag it wherever you like with Position HUD…. It never takes the focus from the game.

Set Wheel rotation to the game's steering rotation (900° is common) and the HUD wheel turns like the one in the game. Past one full turn, +45° and +405° look the same, so the position bar shows where the wheel really is. Show status hides the status and the profile name for an even smaller HUD.

It also flashes DRIVING, STANDBY or CENTER when you press the keys, so you know it worked with the window hidden behind the game.


Full Classic
Full HUD with the GT wheel Classic HUD with the wood-rim wheel
Column Wheel zoom, without status or background
Column HUD Classic HUD zoomed on the rim
Minimal
Minimal HUD

Compact window and tray

Compact window

Shrink MouseDrive to a strip with just the essentials (⚙ → Compact window), for a second screen, or drag the full window shorter on a small screen (the tabs scroll and the height is remembered). With Close to tray, closing the window keeps it running with your keys working. A red dot on the icon, in the tray and on the taskbar, means you're driving.


Default keys

Key Action
F9 Start / stop driving with the mouse
Home Center steering
not set Throttle, brake and clutch (on the Pedals tab)
not set Traction control (on the Pedals tab, under the throttle)
not set vJoy buttons (on the Keys tab)

All of them can be changed per profile. Keys work in every app, so the game doesn't need the focus for MouseDrive to hear them.


Getting started

  1. Install vJoy from github.com/jshafer817/vJoy/releases and restart if asked.
  2. Configure vJoy (once): open Configure vJoy, select Device 1, tick X (steering) and, for pedals, Y, Z and Rz; set 16 buttons and apply.
  3. Start MouseDrive from the latest release (MouseDrive.exe). The chip at the top right should say vJoy ready.
  4. Bind the steering in the game (once): start binding the steering axis, press F9, move the mouse left or right, and press F9 again. Set the game's steering deadzone to 0 and its linearity to 1.0.
  5. Bind the pedals to the vJoy Y, Z and Rz axes the same way, and remove the game's own keyboard bindings for throttle, brake and clutch. Otherwise the game reads the keys directly and skips the ramps and traction control.
  6. Match the rotation: set Wheel rotation on the HUD tab to the game's steering rotation.

Run the game in windowed or borderless mode while you set things up.

📖 The full user manual covers every option; it is also copied next to the exe.

Requirements

  • Windows 10 or 11, 64-bit
  • .NET 8 Desktop Runtime (x64)
  • vJoy, device 1 with the X axis (and Y, Z, Rz for pedals)
  • A racing game that accepts a generic joystick or wheel (DirectInput)

Build

dotnet build MouseDrive\MouseDrive.csproj -c Release

Needs the .NET 10 SDK; the app targets .NET 8.

Regression checks

dotnet run --project MouseDrive.Tests -c Release

Runs the binding, pedal, HUD and profile regression checks on Windows, using the app's forms and in-memory substitutes for vJoy and the global hooks. It does not activate driving or require the vJoy driver. Test profiles and settings stay in the test build output folder.

Credits

MouseDrive is created by Rangel Santos, as a racing spin-off of MouseYokeEnhanced, the mouse yoke for Flight Simulator. Joystick output goes through vJoy.

If MouseDrive makes your laps better, you can buy me a coffee ☕ on Ko-fi.

See you on track! 🏁

Releases

Packages

Contributors

Languages