=?utf-8?B?TmVlZCBzb21lIGhlbHAgcmVnYXJkaW5nIHRoZSB1c2Ugb2YgdmlydHVhbCBjb250cm9...
Program to control vJoy / vXbox Device via keyboard, mouse, joystick.
Status: Beta
Brought to you by:
virtualhost
Hello, I hope you're having a good day!
I've recently started to try and experiment various methods so I could play local co-op games with my friends online instead of actually having to be together at a couch, and your "virtual controller" definitely looks like it could play a crucial role in the process. So I first want to express my huge thanks for the time and effort you must've put in to develop, update, and provide support for the program.
Having said that, I was wondering if I could get some help with using the program.
1) Some of the pop-up windows from the program is small and cut out buttons and stuff, making it difficult to read what the half-revealed buttons at the bottom are. Some even completely cut out the buttons at the bottom and leave me no way to even press them. I haven't been able to find a way to resize the pop-up windows of your program yet. Is there a solution to this problem?
2) I've noticed that the keyboard input provides a 'lock' option, which is indeed a useful feature! I do, however, wish there was a way to either [1] 'unlock' the keyboard with some hotkey instead of actually having to stop the program, or [2] only lock keys that are assigned as controls. Is this possible? If so, may I ask how?
3) While checking out all the tabs and options of the program I found an option called 'Netjoy'. If my guess is correct, this is a feature where a remote keyboard from one computer can send keys to another computer and vice versa, right? If so, how exactly can I set them up? Does this support more than 2 remote inputs? And if I'm assuming this correctly, the program will treat different remote keyboards as different controls, right? My main interest with this feature is the possibility for every player to be able to enjoy the full keyboard to themselves for controls, instead of having to share one keyboard to assign keys that do not overlap with others.
Thank you very much in advance for your time!
Wow... I have absolutely no idea what in the world happened to the title lol
1) Yes, some UI elements may working not good as I think (tested only on "standard" UI settings OS Windows XP/7/8/10). May help the keyboard button "Tab" to change active button.
2) "Lock" can be ON/OFF via output device "Program". Way to Lock only needed keys is unknown currently.
3) "NetJoy" Input/Output is internal devices. "NetJoy Input" is "server", "NetJoy Output" is "client". Typical binds:
COMPUTER 1:
Keyboard Key Event => NetJoyOutput Button Event
COMPUTER 2:
NetJoyIn Button Event => Virtual Keyboard Key Event
OR
COMPUTER 1:
Keyboard Key Event => NetJoyOutput Button Event
COMPUTER 2:
NetJoyIn Button Event => vJoy/vXbox Button Event
P.S.:
Currently I working on big update with next:
- Separate Keyboards Lock via Hook (RawInput)
- ViGEm support
- HidGuardian support
- New UI
- Code optimization
Thanks for the detailed answer+instructions!
I just have two more questions that I need answered so I can test this out :)
1) Does NetJoy support multiple keyboards & computers, such as 3 or more?
2) If so, do I need to assign different local ports for each computer? Or can I just use one ports for them all and only need to assign different 'numbers'?
Additional report - I haven't had a chance yet to test with more than 2 players, but I've successfully had one friend send joynet outputs to my computer so I could use it as inputs to map a vXbox controller. Unfortunately, we've found that both TCP and UDP options produce about 0.7 second of delay, which makes gameplay very difficult and uncomfortable.
I hope your "code optimization" can reduce the NetJoy delay/lag in the future but regardless, virtual controller is a very useful software and I give you many thanks!
1) NetJoy support up to 255 devices.
COMPUTER-CLIENT 1
Keyboard Key Event => NetJoyOutput 1 Button Event
COMPUTER-CLIENT 2
Keyboard Key Event => NetJoyOutput 2 Button Event
COMPUTER-CLIENT 3
Keyboard Key Event => NetJoyOutput 3 Button Event
COMPUTER-CLIENT 4
Keyboard Key Event => NetJoyOutput 4 Button Event
COMPUTER-SERVER
NetJoyIn 1 Button Event => vXbox1 Button Event
NetJoyIn 2 Button Event => vXbox2 Button Event
NetJoyIn 3 Button Event => vXbox3 Button Event
NetJoyIn 4 Button Event => vXbox4 Button Event
2) Depend on case (many COMPUTER-SERVER). I think for your case, a same port is OK.
If use a several HID (USB) keyboards then you can simply use the Keyboard option "Raw Input" API . Program detect all possible attached keyboards as input devices. And one of these device is "Simulated Keyboard" (fake keyboard - buttons was send not through real devices). If you known the way to send input from one computer keyboard to another keyboard then it can somehow replace "NetJoy". Typical setup:
COMPUTER-CLIENT 1
Keyboard Key Event => YOUR CUSTOM PROGRAM ON "COMPUTER-CLIENT 1"
YOUR CUSTOM PROGRAM => NETWORK
NETWORK => YOUR CUSTOM PROGRAM ON "COMPUTER-SERVER"
YOUR CUSTOM PROGRAM ON "COMPUTER-SERVER" => Keyboard Key Event
Keyboard (Raw Input, "Simulated Keyboard") Key Event => vXbox1 Button Event
P.S.:
Next update will be not fast (can be about 90-180 days). Need to do a many things, and currently I busy with another tasks.