muchimi / JoystickGremlinEx

Modified version of Joystick Gremlin to add features I wanted to have but were difficult to do as just a plugin, plus I wanted to run this as 64 bit and on a more current version of Python/QT.
GNU General Public License v3.0
17 stars 2 forks source link

Cannot launch #2

Closed alex-smtv closed 11 months ago

alex-smtv commented 11 months ago

Hello!

When I try to launch the software it doesn't open. Here is the debug.txt content: debug.txt

Any idea why?

Edit: Tried with only vJoy loaded and it still doesn't open and there's no message in debug.txt. Also a joystick_gremlin.exe instance is held in task manager and I have to manually kill it.

muchimi commented 11 months ago

Hi Alex, the code looks to be hung up on querying properties on a specific HID device on your machine. I am not sure why that is but it looks to fail on DXINPUT initialization.

It would be helpful to know which device is failing so I can research that.

It detected your VKB rudder, and two VJOY devices, and a wireless controller (could be a game controller?) with 6 axes.

Looking specifically for the device with ID 77F40DD0-9C16-11ED-8001-444553540000 (this probably shows up in your device information list).

If you can tell me what devices they are, we can work back from that. The process of elimination would be to disconnect your physical devices, plug them in one at a time, and see which one is causing the issue.

I'll look at the code to see if I can beef up the error recovery if a specific device isn't working right so it skips over it.

alex-smtv commented 11 months ago

Hey

So the wireless controller is a PS4 controller natively connected (meaning there's no ds4windows or something alike). This is also the device with the ID you requested. Also it has the name wireless, but it's always connected by USB cable.

I also originally thought one device might cause the issue, but as I noted in the edit when I try to launch gremlin ex without any device other than vJoy it still has the same behavior (nothing opening up) and this time nothing is printed in the debug.txt.

I'd like to help, but at this point I'm not sure how I can help dig deeper into the issue.

I don't know how much value the following info has, but I don't have this problem with the original gremlin software. <- This is false, see next post.

As for my devices list, I have several devices I use but at the time of the original post with the linked debug.txt it was as you guessed: 2 vJoys, 1 PS4 controller and 1 VKB rudder.

alex-smtv commented 11 months ago

Okay I have an update I may have found the culprit. So I use HidHide to hide devices for certain usage. It seems like it's not working well with the gremlin software. I added a rule to allow the software to see everything and it now launch normally.

Also I had the original gremlin software whitelisted so that's why I wasn't seeing this issue with it. Removing it from the whitelist has the same behavior as with gremlin ex it seems with the following message: image

In any case, the issue if resolved for me as it's not a problem to whitelist the software. If there's something I can help you can still ask me.

edit: I updated the info

muchimi commented 11 months ago

Hmm - so in HIDHide, first make sure you run the current version as there are issues with the older ones. I've tested GremlinEx with 1.1.122.0.

If you whitelist a process dependent on another process, that one must be whitelisted as well or it will be blocked. That isn't a gremlinEx issue - it's that it cannot see the hardware or initialize it because HIDHide blocks it.

Here's my config if this helps:

image

The VJOY error is interesting - I only get that if I'm running in debug mode (not via the exe). I've not been able to reproduce that one outside of debug mode.

One possibility: GremlinEx is looking to get a lock on a Vjoy device that is already locked by another process. Also, make sure you run GremlinEx as an administrator because that can also cause issues.

Other ideas:

make sure no other software is also trying to control the same VJOY devices.

I am going to see if I can make the code handle that error when a VJOY device is not available on start. Usually that happens when the device is hidden or locked by another process.

muchimi commented 11 months ago

I've uploaded a version that removes the hard error check if a VJOY device is not available to GremlinEx when it starts. The device won't be available but it won't terminate the process anymore. 13.40.1ex

This should let GremlinEx complete the startup checks.

alex-smtv commented 11 months ago

For HidHide I am indeed using the last version.

For the whitelisting dependency I kind of get where you're going to, but I don't see how that can apply on my case. Be default selected devices are hidden and whitelisting a process gives him the right to see the hidden devices. I don't have any problem when gremlinEx is whitelisted, the problem arise when he's not in the list (so hidden devices are effectively hidden).

My config in comparison if you're curious: image

About the vJoy error just to be clear, it was showing up with the original gremlin software. With gremlinEx it was silent (no error showing up, but the behavior was the same).

As for running as admin I tried and it didn't help.

Another software trying to control vJoy devices is a good pointer, but I was aware of this and payed attention to it (even rebooted the OS): it shouldn't be part of the problem (unless gremlin was trying something weird with the acquisition).

With all of that I can say something positive. With the gremlinEx 13.40.1ex you released, I don't have the launching problem anymore. With this version gremlinEx can be omitted from the whitelist and still launch. I didn't do extensive tests, but I tried a quick mapping and it seems to be working normally.

muchimi commented 11 months ago

Great, thanks for the update. I'll close this for now - we can re-open it later if needed.