jtrfp / terminal-recall

Engine remake for Terminal Velocity and Fury3
Eclipse Public License 1.0
56 stars 2 forks source link

Joystick configuration option not displaying in settings #248

Closed nbarros8 closed 2 years ago

nbarros8 commented 6 years ago

Joystick: Logitech Extreme 3D (USB)

System info: Vendor: Oracle Corporation Arch: amd64 OS: Windows 10 Ver:10.0

image image

cjritola commented 6 years ago

This may be related to https://github.com/jinput/jinput/issues/16 . I have upgraded the jInput version used to 2.0.7, which may solve the issue.

If issue persists, please check log.html in Terminal Recalls's base directory (not target) for Exceptions and their stacktraces highlighted in red, approximately a dozen lines long and paste them for me to evaluate in hopes of isolating the problem.

nbarros8 commented 6 years ago

Unfortunately it did not resolve.

Here are the exceptions:

java.lang.NullPointerException at net.java.games.input.RawMouse$Button.(RawMouse.java:197) at net.java.games.input.RawMouseInfo.createControllerFromDevice(RawMouseInfo.java:83) at net.java.games.input.RawInputEnvironmentPlugin.createControllersFromDevices(RawInputEnvironmentPlugin.java:160) at net.java.games.input.RawInputEnvironmentPlugin.enumControllers(RawInputEnvironmentPlugin.java:176) at net.java.games.input.RawInputEnvironmentPlugin.(RawInputEnvironmentPlugin.java:123) at net.java.games.input.DirectAndRawInputEnvironmentPlugin.(DirectAndRawInputEnvironmentPlugin.java:46) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at java.base/java.lang.Class.newInstance(Unknown Source) at net.java.games.input.DefaultControllerEnvironment.getControllers(DefaultControllerEnvironment.java:160) at org.jtrfp.trcl.ctl.GamepadInputDeviceServiceFactory$GamepadInputDeviceService.(GamepadInputDeviceServiceFactory.java:65) at org.jtrfp.trcl.ctl.GamepadInputDeviceServiceFactory.newInstance(GamepadInputDeviceServiceFactory.java:208) at org.jtrfp.trcl.ctl.GamepadInputDeviceServiceFactory.newInstance(GamepadInputDeviceServiceFactory.java:38) at org.jtrfp.trcl.core.FeaturesImpl.newFeatureInstance(FeaturesImpl.java:148) at org.jtrfp.trcl.core.FeaturesImpl.getFeature(FeaturesImpl.java:137) at org.jtrfp.trcl.core.FeaturesImpl.get(FeaturesImpl.java:172) at org.jtrfp.trcl.core.FeaturesImpl.init(FeaturesImpl.java:105) at org.jtrfp.trcl.core.FeaturesImpl.newFeatureInstance(FeaturesImpl.java:154) at org.jtrfp.trcl.core.FeaturesImpl.getFeature(FeaturesImpl.java:137) at org.jtrfp.trcl.core.FeaturesImpl.get(FeaturesImpl.java:172) at org.jtrfp.trcl.core.FeaturesImpl.init(FeaturesImpl.java:105) at org.jtrfp.trcl.core.Features.init(Features.java:55) at org.jtrfp.trcl.flow.RunMe$1.run(RunMe.java:71) at org.jtrfp.trcl.core.DefaultKeyedExecutor.executeAllFromThisThread(DefaultKeyedExecutor.java:64) at org.jtrfp.trcl.flow.TransientExecutor$TransientThread.run(TransientExecutor.java:43)

cjritola commented 6 years ago

Attempted fixes were committed for bug #247 and #248. At your convenience please let me know if the address the problems.

nbarros8 commented 6 years ago

Unfortunately the issues persists, is there any additional information I may provide to help?

cjritola commented 6 years ago

Thanks for your patience. Some questions about your gaming rig:

I am curious because the part which is tripping up may be where jInput sees more mouse buttons than expected. (>32). Although Terminal Recall doesn't use jInput for mouse input, jInput iterates through all devices before presenting them to Terminal Recall, including mouse. Terminal Recall then ignores the mouse. jInput is tripping up internally when evaluating the mouse.

nbarros8 commented 6 years ago

I am using a Corsair Harpoon, but I don't have any specific mouse software. My keyboard, mouse and joystick run solely on the built-in windows drivers. Actually I hadn't even noticed that the mouse didn't work within the game, since I was focused on getting the joystick to work.

On Sun, Jul 1, 2018 at 2:19 AM Chuck Ritola notifications@github.com wrote:

Thanks for your patience. Some questions about your gaming rig:

  • What make/model of mouse(s) are you using?
  • Do you have any special mouse emulations running, such as gaming keyboards with mouse shortcuts, mouse macro programs, etc running which could potentially be creating an emulated/virtual mouse?
  • If you have any of these, does the issue resolve if you run Terminal Recall after removing them?

I am curious because the part which is tripping up may be where jInput sees more mouse buttons than expected. (>32). Although Terminal Recall doesn't use jInput for mouse input, jInput iterates through all devices before presenting them to Terminal Recall, including mouse. Terminal Recall then ignores the mouse. jInput is tripping up internally when evaluating the mouse.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jtrfp/terminal-recall/issues/248#issuecomment-401588971, or mute the thread https://github.com/notifications/unsubscribe-auth/AmaeDRFKCjy6WRhWtOXdIPrfFQDBrOTLks5uCHfngaJpZM4Uou5z .

cjritola commented 6 years ago

An attempted fix has been committed and is propagated through the nightly builds as well. If you try it out please let me know if it fixes or not.

In log.html, there will likely be red text beginning with ISSUE #248 which gives information about the name of the mouse device and the number of buttons it is reporting which would be appreciated as I cannot produce this issue on my own systems.

The fix is a temporary replacement of a class in the jInput library which caps the number of "mouse buttons" to 32. It also reports to the log as explained above.

cjritola commented 2 years ago

This may be caused by a hanging instance of Terminal Recall (see bullet point number 5): https://forums.duke4.net/topic/5787-terminal-velocity/page__view__findpost__p__276134

... workaround is to make sure a previously-run instance is force-closed.