IMPORTANT: Please download and run digitally signed files only! If someone asks to disable antivirus or exclude X360CE app from anti-virus - DON'T! Report any suspicion in Issues and we will try to resolve any false positive with anti-virus developers.
Purpose of HIDGuardian is to hide original controllers from games, so that only virtual controllers are visible. Install HIDGuardian only if original controller prevents virtual controller functioning properly in the game.
DO NOT attempt to remove HIDGuardian by simply deleting it from Windows OS Device Manager. This can result in loosing access to your Mouse and Keyboard and you will be forced to follow Manual Uninstall Instructions below.
The x360ce.exe application version 3.x is just a GUI for editing x360ce.ini and testing your controller. The x360ce.exe (3.x) application can be closed before launching the game. The game doesn't need it and it uses your computer's resources.
v4.16.8.0 (2020-10-25)
- Fixed: Controller image scaling issue.
- Fixed: Crash when User Device list updating.
- Fixed: Issue detector sometimes do not start after app starts.
- Fixed: Issue detector was reporting missing HID Guardian when not needed.
- Fixed: Interface freezing during error report.
- Fixed: HID Guardian was not always applying settings.
- Fixed: Do not request XInput states when program is minimized to save CPU resources.
- Update: Configure Hid Guardian Automatically option is set to OFF by default now.
- Update: Application no longer requires elevated privileges when starting.
- Update: Make missing HID Guardian a moderate (optional) issue, which won't prevent UI to load.
- Update: Redirect HID Guardian [Install] issue button to dedicated install form.
- Update: Information on [Help] tab updated.
- New: Add HID Guardian warnings and manual uninstall instructions to [HID Guardian] tab.
v4.12.18.0 (2020-08-05)
- Updated: Version of .NET Framework increased to 4.7.2
- Updated: Debug files are now embedded.
- Updated: No need for separate debug version. Exception reports will contain exact code line.
- New: [Copy Preset] to clipboard and [Paste Preset] from clipboard buttons.
I am just starting out experimenting with create some very basic tunes. I don't have a keyboard so I am using the virtual controllers but I am seeing too much lag between the keypress and the note being recorded in Cakewalk. Any ideas how I can get around this?
Ok, so I'm obviously out of my depth already as I have no idea what that means. I don't know if you are referring to the driver for my keyboard or my sound driver. As I said I am using the virtual controller via a USB keyboard. The sound is on board. Hardy high end stuff but we are literally just talking about a few beeps here - I am hardly stressing my system. Sorry to sound like a total noob but that's what I am. Can you be more specific where I should be looking?
I co-authored it with 2 others. You will have the same issue here as with ST though. The trick to the Hampton fan controller is to have a zigbee repeater in every room where it is located (even if it's right next to the hub). We didn't realize this while developing the driver and it caused hours of wasted time trying to troubleshoot the code.I have 4 of them and they are rock solid (except when I have an extended power outage at my home).
If by this you mean you created a virtual device using my custom driver, then that will not work. That driver updates only when the fan sends an updated status. In other words, it needs to be tied to an actual fan controller. It will not function as a virtual controller.
Good stuff. I'm glad to see you are making progress. A word of advice. First thing you should figure out is how you and the family interact with your fans the most and tailor your solution accordingly.
When @dcoffing, ranga and I started working on the Hampton Fan handler for ST, we quickly realized that choosing how we would allow the fan to be controlled is a rabbit hole with no light at the end. We chose to focus on voice control and built it with that in mind.
I'm still not sure what you "need" to have. I can see that you want easy voice control but also want easy dashboard control and you are also using a virtual fan control driver that was really built along the lines of the Hampton zigbee controller. Trying to get everything working perfectly is the rabbit hole because both the voice and dashboard can be interacted with in a variety of ways. As an example, when I used the dashboard, I setup a virtual 4 button driver and also created custom commands in RM for each setSpeed. My voice side was already taken care of because the driver was built to expose each speed separately.
Tldr... fan control is tricky because there are different ways the physical devices can be controlled and a even more ways they can be controlled digitally. I suspect that is why they haven't included it in RM yet. They would first have to choose how users would interact with it...and no matter the choice, someone will ask for the other option.
Subsequently, I also made some edits to the device driver posted here to provide 4-speed support (target dimmer set points for each of the 4 speeds, as well as the default 3 speed setpoints). That's working well, although I didn't add a capability.fanControl to the device driver. The app provides a bridge between a virtual fan controller device (which of course has "capability.fanControl"), and a dimmer device. Then one can manipulate the virtual fan controller via selection of the named speed settings.
The ViGEmBus Driver (Virtual Gamepad Emulation Bus) is a foundational tool in the realm of gaming and device emulation on Windows PCs. It provides a system-level emulation protocol that allows software to create virtual gamepad devices recognized by Windows as native controller inputs. This driver is essential for various applications that require game controller emulation to enhance functionality and compatibility across numerous gaming and virtual reality platforms.
You can read the full End-of-Life statement here and we recommend running the tool Legacinator to remove any old drivers, update warnings and ultimately to update the Vigembus auto-updater domain information by downloading the latest release.
ViGEm Bus Driver may be used by software developers working on projects related to gamepad emulation, controller mapping utilities, or possibly other applications requiring low-level access to the input channels not natively recognized by the target. It is particularly helpful for custom controller support in games that do not have it built-in or for emulating gaming peripherals using regular input devices.
ViGEm Bus Driver can emulate a wide variety of physical gamepad devices, including Xbox 360, Xbox One, Nintendo Pro & Joycon, DualShock 3, DualShock 4 and DualSense as well as supporting arbitrary mappings between virtual and physical devices.
Virtual controller emulation is a part of the Basic license, and is available during the 7-day trial period. To initiate the trial for the Basic license, please ensure that you are using the latest version of reWASD.
If you simply want your physical controller to work as if it was Xbox 360 / Xbox One / DualShock 4 / Switch Pro / DualShock 3 controller without any additional adjustments, just press the Magic Wand below the image of the controller, and pick the desired controller type.
Starting with reWASD 5.4, we have implemented the emulation of DualShock 4 swipes. With Combo Editor you can choose one-finger and two-finger swipes; zoom in and out; right, left, center and multiple touchpad taps; and configure the duration of these actions.
You can check whether the controller shows up in the system, if you open joy.cpl. It's a native Windows tool that shows all the currently connected controllers. To do so, open the Windows Search field (or press Windows key), type in joy.cpl, press Enter.
The main difference between Xbox One and Xbox 360: if you have Xbox One controller chosen as the Virtual gamepad, you can tune Vibration settings for the trigger motors and re-route them; and you can use Xbox One controller as an External device via Bluetooth Adapter.
Sometimes you can accidentally create multiple virtual controllers, to fix this, try to press Ctrl+Alt+Del combo to turn remap off completely. Then open Preferences in reWASD, click Clear Data to wipe all the config assignments, and Apply the right config to the right device.
Specifically, Windows device drivers handle what are called Interrupt Requests via the Interrupt Request Protocol - which boils down to a wrapped up structure and a set of buffers internally in the driver.
Now the next thing you need to know is that many drivers are actually layered, or stacked, or whichever name you want to use. So for example to write a disk driver, you might interface with the driver above it (as a disk class) but use a driver below it (scsi port, for example) to actually send commands to your devices.
That's how real devices work. Fake devices need to conform to the top level interface requirements, e.g. a disk, or a controller, or a mouse, or whatever it is. However, underneath they can do anything they like - return whatever values they like.
This opens up the possibility of controlling a driver via a user-mode application and pretending to "be" a device. To send a driver messages, you can DeviceIoControl to it; then to actually get those messages you can either:
Edit: I'm not massively knowledgeable on DirectInput - there may be a way to override the various API controls in use via DLL redirection and the like, which may be simpler than the way I've described.
93ddb68554