• win64-main-1659278 165927882b

    Ghost released this 2026-07-11 04:54:38 -04:00 | 547 commits to 1016_part3 since this release

    • Pad: native DualSense support via raw HID

    Read a real DualSense (or DualSense Edge) controller directly over
    Win32 HID and feed its state into scePadRead/scePadReadState, replacing
    the keyboard-only input path. No new dependencies.

    • Device discovery by Sony VID/PID through setupapi/hid.dll, with
      hot-plug: disconnects fall back to keyboard and reconnect
      automatically
    • USB input report 0x01 and Bluetooth extended report 0x31 (activated
      via the feature report 0x05 handshake) are both parsed
    • Full mapping to SCE_PAD_BUTTON conventions: face buttons, d-pad hat,
      L1/R1/L2/R2 digital bits, analog triggers, L3/R3, Options, touchpad
      click, both sticks
    • Controller and keyboard input merge: buttons OR together, controller
      sticks win past a small deadzone, triggers take the max
    • Pad: rumble and lightbar output for DualSense

    Wire scePadSetVibration, scePadSetLightBar and scePadResetLightBar to
    real DualSense output reports. The output payload follows the same
    layout as the Linux hid-playstation driver: both rumble motors,
    lightbar RGB and the player LED indicator.

    • USB uses output report 0x02; Bluetooth uses the 0x31 wrapper with a
      sequence tag and CRC32 (0xA2-seeded) trailer, transport detected
      from the first input report
    • Output goes through a dedicated device handle so writes never
      contend with the blocking input read loop
    • On connect the controller gets a default state (blue lightbar,
      player 1 LED); rumble state resets on disconnect

    Verified on hardware over USB: lightbar color cycling and both motors.
    Bluetooth output is implemented per spec but not yet hardware-tested.

    Downloads