Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

DInputAdvance

DirectInput proxy wrapper that makes XInput controllers appear as DirectInput devices, with optional keyboard button mapping / Прокси-обёртка DirectInput, которая эмулирует DirectInput-устройство для XInput-контроллеров и позволяет назначать кнопки клавиатуры на кнопки геймпада

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

EN RU ← Choose language | Выберите язык

DInputAdvance

DirectInput proxy wrapper that makes XInput controllers appear as DirectInput devices, with optional keyboard button mapping.

Works with games that use DirectInput 8 (dinput8.dll) for input. Some DirectX 7 games also use DirectInput 8 for input, so they are supported too.

Download

Supports Windows XP, Vista, 7, 8, 8.1, 10, 11.

Download

Features

  • XInput controller works as a native DirectInput gamepad.
  • Vibration support.
  • Hot-plugging.
  • Any button can be mapped to a joystick button or a keyboard key.

Installation

Copy dinput8.dll and dinput8.ini next to the game's .exe.

Settings

Edit dinput8.ini:

Option Default Description
DeadZone 24 Left stick dead zone, %
TriggerThreshold 24 LT/RT press threshold, %
StickThreshold 50 Stick direction press threshold (LS-UP, RS-LEFT, etc.), %
RumbleScale 100 Vibration strength, %

Button mapping

Buttons: A, B, X, Y, LB, RB, BACK, START, LS, RS, LT, RT, UP, DOWN, LEFT, RIGHT, and stick directions LS-UP, LS-DOWN, LS-LEFT, LS-RIGHT, RS-UP, RS-DOWN, RS-LEFT, RS-RIGHT.

Each button can be set to:

  • JOY1–JOY32 — joystick button.
  • Key name — A–Z, 0–9, F1–F12, ENTER, ESCAPE, SPACE, TAB, UP, DOWN, LEFT, RIGHT, NUMPAD0–NUMPAD9, etc.
  • NONE — disabled.
ini
[Buttons]
A=JOY1
B=JOY2
LB=A
BACK=F5
START=ENTER

Credits

  • XInput.pas — XInput for Delphi by Alexey Barkovoy (Clootie), via Project JEDI.
  • Claude AI — for help with development.

Feedback

r57zone@gmail.com