From 60bfb9012d7d87df6eb56844bda15626f60a04b1 Mon Sep 17 00:00:00 2001 From: Yann Bouteiller Date: Sat, 14 Oct 2023 16:01:52 -0400 Subject: [PATCH] Release 0.1.0 --- README.md | 12 ++++++------ readme/linux.md | 44 +++++++++++++++++++++++--------------------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 7769e85..ea46d5f 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,15 @@ Virtual XBox360 and DualShock4 gamepads in python. Virtual Gamepad (```vgamepad```) is a small python library that emulates XBox360 and DualShock4 gamepads on your system. It enables controlling e.g. a video-game that requires analog input, directly from your python script. -On Windows ```vgamepad``` uses the [ViGEm](https://github.com/ViGEm) C++ framework, for which it essentially provides python bindings and a user-friendly interface. +On Windows ```vgamepad``` uses the [Virtual Gamepad Emulation](https://github.com/nefarius/ViGEmBus) C++ framework, for which it essentially provides python bindings and a user-friendly interface. --- -__Status:__ +__Development status:__ -| Windows | Linux | -|:---------------:|:------------------------------------------------:| -| *Full support.* | *Alpha,*
see [Linux notes](readme/linux.md). | +| Windows | Linux | +|:---------:|:-------------------------------------------------------:| +| *Stable.* | *Experimental,*
see [Linux notes](readme/linux.md). | ## Quick links @@ -42,7 +42,7 @@ Accept the licence agreement, click ```Install```, allow the installer to modify ### Linux: -See [Linux notes](readme/linux.md). +Please read the [Linux section](readme/linux.md). --- diff --git a/readme/linux.md b/readme/linux.md index 40d9274..2d29741 100644 --- a/readme/linux.md +++ b/readme/linux.md @@ -1,28 +1,9 @@ # Linux -`vgamepad` is now partly supported on Linux. +`vgamepad` is partly supported on Linux since version `0.1.0`. Contrary to Windows, support for Linux is experimental and subject to future breaking changes. -If your python project for Linux relies on `vgamepad`, please use the exact `vgamepad` version you are relying on in your project dependencies. - -## Differences with Windows -On Windows, `vgamepad` is currently a wrapper around Nefarius' [Virtual Gamepad Emulation](https://github.com/nefarius/ViGEmBus) framework. -As such, it emulates true physical DS4 and X360 gamepads. - -On Linux, `vgamepad` currently relies on `libevdev`. -It emulates a subset of the X360 and DS4 capabilities in `evdev` by managing a virtual `uinput` device. - -While we are trying to make this emulation close to the real thing, we are not quite there yet. -If you know how to advance toward this goal, your contribution would be **very appreciated** :heart_eyes: - -For now, most basic `vgamepad` calls work on Linux, but you shouldn't expect your app to react exactly as if an actual X360 / DS4 gamepad were connected to your machine. -However, the corresponding `evdev` event should be similar. - -**What you should know:** -- Detected buttons, ordering and axes directions are typically different from Windows (depending on your app) -- Force feedback / LEDS are not implemented on Linux yet -- DS4 touchpad / motion sensor are not implemented on Linux yet (no extended report) -- Real DS4s fire a button event when you press the triggers (on top of the axis event), this button event is not implemented in `vgamepad` at the moment +If your python project for Linux relies on `vgamepad`, please specify the exact version you are relying on in your project dependencies. ## Installation @@ -53,3 +34,24 @@ pip install vgamepad ``` ```vgamepad``` is now installed in your active python environment. + + +## Differences with Windows +On Windows, `vgamepad` is currently a wrapper around Nefarius' [Virtual Gamepad Emulation](https://github.com/nefarius/ViGEmBus) framework. +As such, it emulates true physical DS4 and X360 gamepads. + +On Linux, `vgamepad` currently relies on `libevdev`. +It emulates a subset of the X360 and DS4 capabilities in `evdev` by managing a virtual `uinput` device. + +While we are trying to make this emulation close to the real thing, we are not quite there yet. +If you know how to advance toward this goal, your contribution will be **very appreciated** :heart_eyes: + +For now, most basic `vgamepad` calls work on Linux, but you should not expect your application to react exactly as if an actual X360 / DS4 gamepad were connected to your machine. +Nevertheless, the corresponding `evdev` event should be similar. + +**What you should know:** +- Detected buttons, ordering and axes directions are typically different from Windows (depending on your app) +- Force feedback / LEDS are not implemented on Linux yet +- DS4 touchpad / motion sensor are not implemented on Linux yet (no extended report) +- Real DS4 gamepads fire a button event when you press the triggers (on top of the axis event), this button event is not implemented in `vgamepad` at the moment +- The X360 "guide" (mode) button is not implemented in `vgamepad` at the moment