This project was originally designed to provide an open-source replacement for PPJoy. The product, at this point, consists of virtual joystick devices that is seen by the system as a standard joystick but its position-data is written to it by a feeder application. An existing feeder application that takes advantage of this product is SmartPropoPlus. If you are an application writer you can very easily write an application that controls a joystick (e.g. mouse-to-joystick, keyboard-to-joystick). If you are a beginner in device drivers you can take this code and enhance it to support more (or less) axes, buttons or POVs.
Features
- Virtual Device and device driver 32/64 bit
- Driver is signed
- Configurable: Up to 8 axes, up to 128 buttons and optional 4 POV Hat Switch
- Package include: Unified x86+x64 installer
- Download-able: Full sources, SDK (C/C++ C#), Demo feeder applications, documentation
- Typical audience: Application writers that want to emulate joystick behaviour
- PPJoy replacement
- Tested on Vista, Windows 7, Windows 8, Windows 8.1, Windows 10
- For older Windows (<10) use vJoy 2.1.8 (https://sourceforge.net/projects/vjoystick/files/Beta%202.x/2.1.8.39-270518/vJoySetup.exe/download)
Project Samples
License
Public Domain
Streamline your workflows by migrating customer records into a digital format. With one centralized system for customer management, scheduling, invoicing, create automated payment reminders for customers, payments, reporting, and more, you gain full visibility across business operations that allows you to better serve your customers from home or the office.
User Ratings
3.9
out of 5 stars
★★★★★
★★★★
★★★
★★
★
ease
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
3 / 5
features
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
3 / 5
design
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
3 / 5
support
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5
3 / 5
User Reviews
- All
- ★★★★★
- ★★★★
- ★★★
- ★★
- ★
-
I mean, with minimal effort (just modified their demo input feeder for c#) I was able to translate info, sent via the arduino unos serial port, into a joystick axis input for games like war thunder. Will be using this to make my own DIY flight stick and control board setup 😀👍.
-
Just registered to rant the s*** out of it. Worst possible way to use an app, cant even install it. Spaghetti coding and aggresive app cant even close the setup. I hate when this happens and i love ranting these apps. Dont even bother downloading it, deleting it from bin was the happiest part of my day.
-
If the program coulb be installed would be great, but it can´t, so its a complete s***. Dont lose your time
-
Every time I install the program it only shows the add on programs have been installed.
It doesn’t specify where the main joy con driver program is and I every time I search for it it just brings up the add on programs.
Read more reviews >
v2.1.8 Build 39 -Windows 10 1803 bug fix
Bug fix:
Problem: When moving to Windows 10 release 1803 some users found that vJoy driver stopped functioning. This was manifested in cases where vJoy devices were configured with zero buttons.
Fix: This version of vJoy include configuration apps that do not cause such a problem.
Recovery: Before installing this version of vJoy make sure the previous configuration (if causes problems) is removed: Run vJoyConfig -r then install this version of vJoy.
v2.1.8 Build 38 — Spring Effect
Bug fix:
Spring effect was not properly detected by system due to erroneous commenting out of the spring entries in the INF file
v2.1.8 Build 37 — Efficiency Improvement
No functional changes.
Architectural changes yielded impressive Efficiency Improvement.
v2.1.8 Build 36 — Bug fix
Bug description:
Under heavy load vJoy sends arbitrary and momentary data to causing a glitch in the device position.
Status:
Fixed
Additional documentation and downloads
See previous release
vJoy 2.1.8 RC3
Version 2.1.8
This version is designed to be the final version of vJoy. vJoy has been around for about a decade and is ripe now. I will still be around for a while for answering questions and fixing minor bugs.
I recommend all projects to start collaborating with nefarius on his emerging project ViGEm — I believe that his approach is better and more flexible than the one employed by vJoy.
Release Notes for vJoy 2.1.8 build 33
vJoy API file (vGenInterface.dll) added to the installation
Release Notes for vJoy 2.1.8 build 31
- Enhancement: New interface function GetOwnerPid(). This function returns the ID of the process owning a specified vJoy device. You can use this function to:
- Make sure that your process is indeed the owner of a device.
- Get the process that prevents you from acquiring the device and issue an intelligent message to the user.
- Facilitate killing zomby processes that still own a device.
- Enhancement: vJoyList — a utility that lists all vJoy devices and specifies the owner of each device.
vJoyList is part of the installation.
- Enhancement: Smoother initialization of a vJoy device. A device is initialized when created, configured or requested to from the API. It retains its position when acquired to prevent a glitch.
- Bug Fix: Initializing discrete POVs to non-default values was incorrectly done. It is now possible: Discrete POV registry values are now:
- 0x80: North/Forwards
- 0x81: East/Right
- 0x82: South/Backwards
- 0x83: West/Left
- 0x8F: Neutral Point
- Bug Fix: Too many error messages were written to the event log even on normal installation.
vJoy 2.1.8 RC2
Version 2.1.8
This version is designed to be the final version of vJoy. vJoy has been around for about a decade and is ripe now. I will still be around for a while for answering questions and fixing minor bugs.
I recommend all projects to start collaborating with nefarius on his emerging project ViGEm — I believe that his approach is better and more flexible than the one employed by vJoy.
Release Notes for vJoy 2.1.8 build 31
- Enhancement: New interface function GetOwnerPid(). This function returns the ID of the process owning a specified vJoy device. You can use this function to:
- Make sure that your process is indeed the owner of a device.
- Get the process that prevents you from acquiring the device and issue an intelligent message to the user.
- Facilitate killing zomby processes that still own a device.
- Enhancement: vJoyList — a utility that lists all vJoy devices and specifies the owner of each device.
vJoyList is part of the installation.
- Enhancement: Smoother initialization of a vJoy device. A device is initialized when created, configured or requested to from the API. It retains its position when acquired to prevent a glitch.
- Bug Fix: Initializing discrete POVs to non-default values was incorrectly done. It is now possible: Discrete POV registry values are now:
- 0x80: North/Forwards
- 0x81: East/Right
- 0x82: South/Backwards
- 0x83: West/Left
- 0x8F: Neutral Point
- Bug Fix: Too many error messages were written to the event log even on normal installation.
vJoy 2.1.8 RC1
Version 2.1.8
This version is designed to be the final version of vJoy. vJoy has been around for about a decade and is ripe now. I will still be around for a while for answering questions and fixing minor bugs.
I recommend all projects to start collaborating with nefarius on his emerging project ViGEm — I believe that his approach is better and more flexible than the one employed by vJoy.
Release Notes for vJoy 2.1.8 build 24
- Enhancement: New interface function GetOwnerPid(). This function returns the ID of the process owning a specified vJoy device. You can use this function to:
- Make sure that your process is indeed the owner of a device.
- Get the process that prevents you from acquiring the device and issue an intelligent message to the user.
- Facilitate killing zomby processes that still own a device.
- Enhancement: vJoyList — a utility that lists all vJoy devices and specifies the owner of each device.
vJoyList is part of the installation.
- Enhancement: Smoother initialization of a vJoy device. A device is initialized when created, configured or requested to from the API. It retains its position when acquired to prevent a glitch.
- Bug Fix: Initializing discrete POVs to non-default values was incorrectly done. It is now possible: Discrete POV registry values are now:
- 0x80: North/Forwards
- 0x81: East/Right
- 0x82: South/Backwards
- 0x83: West/Left
- 0x8F: Neutral Point
- Bug Fix: Too many error messages were written to the event log even on normal installation.
Bugfix in API
v2.1.7 Release Candidate
Version 2.1.7RC1
Including two packages:
- vJoy 2.1.7 installer
- vGenInterface API packages for x86/x64 platforms
Known Issue:
Bug in initializing Discrete POVs — will be fixed in v2.1.8
Preliminary release of 2.1.7
Functional vJoy Interface
Functional vGen interface (To be separated later)
Known Issues:
- Reset POV/Buttons sets incorrect values when first called
- Reported: GetVJDStatus() is very slow
January 29th, 2021 — Free — 100% Safe
vJoy allows you to add a virtual joystick to almost any application you are using on your computer, acting as a device driver that will let you get the most out of your applications and devices. It is an open-source replacement for PPJoy.
When you’re developing applications or using them, you might find that some are better using a joystick. It is especially true for applications where native support for joysticks and such devices is gone, where you need to make sure that you can use them to make the most out of them.
With vJoy, you’ll be able to use a joystick with almost any application. It acts as a device driver to connect the joystick as a virtual drive to your application.
It is handy if you want to work with applications that would be better by using a joystick, such as games. But it can also be a great one for developers who wish to incorporate this capability into their apps.
Configure Your Joystick with the Demo Feeder
With the Feeder application, you can easily test the application and the joystick and see how you’ve configured it so far. It makes it easy for developers to acknowledge and see how the progress is going and how they are currently working on the app.
In this feeder, you’ll find the axes and sliders that will help you adjust the paragraphs quite easily. You can do that by moving these sliders up and down.
You can also configure how the buttons are working to adjust what actions they perform and more.
POV Switches
One of the more well-known actions that the feeder makes is the POV switch. There are up to four POVs, and you can manipulate each one to your liking so that you can get the results you need. It’s really easy to do that, and it gives you a lot of control over what you’re doing.
Conclusion
vJoy allows you to use your joystick or to develop applications that will use one. It’s easy to use, and it comes with a handy feeder that makes it easy for you.
back
Windows 10 vJoy v2.2.1.1, then v2.1.6.2 installation:
not scary (not previously installed)
The latest version with signed driver:
https://github.com/njz3/vJoy/releases/tag/v2.2.1.1
9.5MB
vJoy from SourceForge is v2.1.9.1 and 11MB
SimHub includes 32-bit DLLs for vJoy v2.1.6
Replacing those with v2.2.1.1 DLLs throws this Exception:
Managed Debugging Assistant ‘PIinvokeStackImbalance’:
‘A call to PInvoke function ‘vJoyInterfaceWrap!
SimHub was seemingly built with vJoy v2.1.6 DLLs, which report:
INFOVersion of Driver (221) does NOT match DLL Version (216) INFOAcquired: vJoy device number 1.
.. then the 2.2.1.1 driver does not respond to `joystick.SetAxis()` nor `joystick.SetBtn()`,
presumably because of incompatibity between v2.1.6
structures sent by SimHub-compatible DLLs
and those expected by vJoy driver v2.2.1.1
.
Sadly, njz3/vJoy has only v2.2.0.0 and v2.2.1.1
To uninstall just the v2.2.1.1
driver, without uninstalling Program Files\vJoy
,
Fire up Windows Device Manager and check Properties — Driver for vJoy, then [Uninstall Device]
To test v2.1.6 Build 20,
at that point, I renamed Program Files\vJoy
to Program Files\vJoy_2.2.1.1
.
Setup.exe for Version 2.1.6 Build 20 installed successfully…
… but also disappeared Program Files\vJoy_2.2.1.1\
..??
v2.1.9.1 is the driver most recently known to work with Windows 11;
the issue with v2.2.1.1 appears to be
DATETIME
InitFromRegistry()
: File DOWNLOADPATH vJoyInit.reg
not found.
Possibly install v2.1.9.1, grab its vJoyInit.reg
and jam into 2.2.1.1.
vJoy driver installation includes applications AKA Components:
No choice for installation location: C:\Program Files\vJoy\
For some reason, includes another 611KB vJoyInstall.exe
..?
Apps are in C:\Program Files\vJoy\x64\
Linked them into SimHub folder
vJoyList shows 1 installed;
vJoy Monitor shows 8 axes and 16 buttons.
Command line vJoyConfig.exe
and GUI vJoyConf.exe
Setting 16
Buttons showed up in vJoy Monitor, so all good.
joy.cpl
Test and vJoyFeeder.exe
No consensus about names assigned to axes and which directions are min and max:
Note that joy.cpl
can dynamically display vJoyFeeder.exe
changes only when Windows gives it focus.
Windows 11 grief: vJoyInit.reg
https://github.com/njz3/vJoy/issues/4
How to fix: installing vJoy and controllers not working anymore.
https://www.reddit.com/r/hotas/comments/lfjnn9/how_to_fix_installing_vjoy_and_controllers_not/
vJoy is a software application and virtual device driver that is designed to provide an interface between a PC and external hardware, such as gaming controllers, joysticks, and other input devices. It allows users to customize the behavior of their hardware and provides a wide range of features, including the ability to map multiple inputs to a single output and support for using multiple controllers at once.
Feature List
1. Multiple Input Mapping: Allows users to map multiple inputs to a single output. This allows users to use multiple controllers at once and control all of their inputs with just one device.
2. Support for Multiple Controllers: Supports the use of multiple controllers at once, allowing users to customize their gaming experience.
3. Configurable Deadzone: Allows users to customize the size of the deadzone for each axis of their controller. This allows users to fine-tune the sensitivity of their controller for a more comfortable gaming experience.
4. Rumble Support: Supports rumble feedback on compatible controllers.
5. Hot-Swapping: Allows users to switch from one controller to another without having to restart their game.
6. Compatibility: Compatible with a large range of controllers, including gamepads, joysticks, wheels, and more.
7. Real-time Input Monitoring: Allows users to monitor their controller’s input in real-time, making it easier to troubleshoot issues.
8. Customizable Profiles: Allows users to create and save custom profiles for each of their controllers, making it easy to switch between different setups.
9. Cross-Platform Support: Compatible with Windows and macOS, making it easy to use on both platforms.
10. Free to Use: Free to download and use, with no additional cost.
vJoy is an invaluable tool for PC gamers, allowing them to customize their hardware and get the most out of their gaming experience. With its wide range of features, it is the perfect choice for anyone looking to get the most out of their gaming hardware.
vJoy requires the following hardware and software to operate:
Hardware:
-A Windows 7 or later operating system
-At least one USB port
-At least one game controller
Software:
-Microsoft .NET Framework 4.5 or later
-Microsoft Visual C++ 2015 Redistributable
-DirectX 9.0c or later