Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

Recommended Posts

Posted

VJoy Virtual Joystick is a driver and icon tray application for converting keystrokes into joystick input. It supports two virtual joysticks as well as command line control. It has signed drivers and supports 64-bit systems such as Vista and Windows 7.

Visit VJoy Website

VJoy Virtual Joystick Driver v1.2 released!

- 2 Joysticks

- 8 Axes with a range of -32768 to 32767

- 32 Buttons

- 4 POV's

VJoy SDK v1.2 is now available for using VJoy in your own applications. There are many real world applications using VJoy right now such as a Steel Batallion Controller, replacing axes for Flight Simulator, head tracking, using Wiimotes and Kinect to control games or even to interface with robots. Some of the things people are using VJoy for are pretty amazing! Check out the new VJoy SDK v1.2 which includes source code to control the drivers in languages such as C++, C#, VB.NET, Delphi and VB6.

Download VJoy SDK v1.2

  • Like 1
Posted

NICE!!! So, does this more or less replace PPJoy in functionality? Thanks for the contribution! B)

It does more or less do what PPJoy's KeyToJoy functionality but it has some advantages even though a new version of PPJoy has been released recently with 64-bit support.

- VJoy has signed drivers

- It has a much nicer program that runs in the icon tray

- It supports key blocking (although unfortunately Vista and Win7 contains a bug that makes this not work)

- No more having this unsightly floating app that you have to try and hide and kill off later

- No annoying virtual joysticks to setup and install - you get two of them ready to go

If you want parallel port to joystick support you will need to get PPJoy instead.

BTW Coding drivers is a PITA!

Posted

I've never liked how PPJoy worked (needing to stay active the way it does). That's one reason why I've found other ways to do things whenever possible. This will be nice going forward!

Btw, is there a way to use a mouse as input? I'm thinking about how I used a GlovePIE script to convert mouse movement into an analog axis primarily. Just curious.

Posted

Btw, is there a way to use a mouse as input? I'm thinking about how I used a GlovePIE script to convert mouse movement into an analog axis primarily. Just curious.

There is a program I was working on called "XLaunch" which was going to be able to convert any type of input to any other type of input. It orignally used PPJoy but obviously now would make use of my own drivers. Unfortunately now that I'm working on my next game with Flash (this time for the iPhone) I don't see me finding much time to finish it. I think XPAdder would be nice to add support that XLaunch and VJoy were aiming for. One program for all your input translation needs. Going from joystick to keyboard is easy, but writing drivers to go the other way is not. Anyway one day I might finish it, who knows?

Posted

It's cool as is. There's no reason to defend your programming decisions. You made the program the way you wanted it, so you should stand by it. Nice work! B)

Posted

It's cool as is. There's no reason to defend your programming decisions. You made the program the way you wanted it, so you should stand by it. Nice work! B)

Well actually I had planned to make XLaunch before VJoy and then realised it was pointless unless there was a 64-bit driver for the KeyToJoy. Also SF IV came out and it only supported one keyboard so that was another driving force originally. Then just as I finished VJoy another solution appeared, and then just as I decided to release VJoy "free for non-commercial use" I find the programmer of PPJoy who orignally said he wasn't going to continue development released a 64-bit version of PPJoy.

So really it's been alot of bad luck. I spent several weeks writing VJoy, and even nearly lost my PC in the process with a nasty blue screen on bootup. Since drivers are written in kernal mode they don't crash - they BSOD. So then I smartly moved to using a Virtual Machine for all my testing. Then I had to write the JoyToKey app.. well it was alot of work so I wanted to see if there was commercial interest which is how the drivers got signed by Ultimarc. In the end though with all the bad luck I just decided to release it and hope there was some commercial application down the line. In the end it got released for the benefit of the community so I'm happy if people get some use out of it!

Posted

Could be wrong here, but Im pretty sure the GameEx key blocking works on Vista. I think I tested the feature on it. Try it.

I researched this quite a bit and I'll post the results here. You will have the same problems with GameEx blocking certain games in Vista and Win7.

I have created a set of binaries to prove that there is some sort of bug in Vista / Win7 relating to WH_KEYBOARD_LL global key hook. The bug seems to only effect DInput7 and not DInput8. I have not tested other versions of DInput.

You can download my test applications @ DInputBlockTest.zip

Inside Vista/Windows 7:

1. Launch DInput7.exe and DInput8.exe

2. Press the SPACE bar and you will see the apps output that you pressed SPACE to the console

3. Now launch KeyHook.exe

4. Press the SPACE bar and you will see the space key is now blocked in both DInput7.exe and DInput8.exe

Now close everything by pressing ESC

1. This time launch KeyHook.exe first

2. Now launch DInput7.exe and DInput8.exe

3. Press the SPACE bar and notice that only DInput8.exe's keys are being blocked

Here is a screenshot showing how DInput7.exe does not have it's keys blocked.

KeyBlock.png

Running RawInput.exe shows that WH_KEYBOARD_LL does indeed block Raw Input / WM_INPUT messages in XP / Vista / Win7.

You can run these apps in either order on XP and the key hook will always block the input.

The problem seems to be version checking code in DirectInput...

I had a look and it is a bug in DInput.dll's version checking code. On OS's with a major version higher than 5, the flag to use Raw Input processing isn't set. When that flag isn't set, low-level hooks are installed to monitor both mouse and keyboard input. XP and it's major version of 5, sets the raw input flag so it uses that to get device data instead of the hooks, which are never installed.

So in other words because of this version checking bug it's using a low-level hook which is inserted above all other keyboard hooks so you can't block input. When it uses Raw Input processing in XP as it should you can successfully block input. The conclusions we made is the only way to fix this would be to install the global keyhook after the game is launched or hack the DInput dll's to always get a version number of 5 from GetVersion/GetVersionEx.

Posted

No worries, just worked in my tests. Obviously some stuff works some stuff doesnt, and what I tested did.

PS: In my last tests it wasnt blocking input but I managed to get round it with code. Its probably not fool proof but it worked.

Posted

No worries, just worked in my tests. Obviously some stuff works some stuff doesnt, and what I tested did.

Yeah it depends on how the app is reading key input. I did find that even with DInput8 it sometimes has some issues blocking input too, not sure why (could just be a permission issue there or the same problem I can't remember). If a game uses Raw Input to read input (like MAME) there are no problems. The main problem seems to be with DInput7.

So anyway the key blocking in VJoy should work for some games.. I should probably change the docs to say that.

I know it was bold of me to say that Vista and Win7 contains a bug, but I did have the evidence to back that statement ;)

Posted

Yeah it depends on how the app is reading key input. I did find that even with DInput8 it sometimes has some issues blocking input too, not sure why (could just be a permission issue there or the same problem I can't remember). If a game uses Raw Input to read input (like MAME) there are no problems. The main problem seems to be with DInput7.

So anyway the key blocking in VJoy should work for some games.. I should probably change the docs to say that.

I know it was bold of me to say that Vista and Win7 contains a bug, but I did have the evidence to back that statement ;)

I added above I did have an issue with it not blocking and I made some updates to GameEx for this which seemed to work. Might be a different issue though. I think its worth at least checking out.

Posted

I added above I did have an issue with it not blocking and I made some updates to GameEx for this which seemed to work. Might be a different issue though. I think its worth at least checking out.

Do you have any specific details on the updates needed to make it work?

Posted

Do you have any specific details on the updates needed to make it work?

I can give you the code. First of all I just meant try it within GameEx, see if it does work, nothing to lose. Its likely im wrong but no harm in trying.

Posted

I can give you the code. First of all I just meant try it within GameEx, see if it does work, nothing to lose. Its likely im wrong but no harm in trying.

I don't have GameEx setup on my Win7 machine yet.. if you want to test it download DInputBlockTest.zip and run RawInput.exe, DInput7.exe and DInput8.exe .. launch GameEx trying to block space bar (VK 0x20).. if no output goes to the console then it's successfully blocked it.

  • 2 years later...
Posted

VJoy Virtual Joystick Driver v1.2 released!

- 2 Joysticks

- 8 Axes with a range of -32768 to 32767

- 32 Buttons

- 4 POV's

VJoy SDK v1.2 is now available for using VJoy in your own applications. There are many real world applications using VJoy right now such as a Steel Batallion Controller, replacing axes for Flight Simulator, head tracking, using Wiimotes and Kinect to control games or even to interface with robots. Some of the things people are using VJoy for are pretty amazing! Check out the new VJoy SDK v1.2 which includes source code to control the drivers in languages such as C++, C#, VB.NET, Delphi and VB6.

Download VJoy SDK v1.2

  • Like 1
Posted

Ohh SDK to play with!!! Sweet! :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...