Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

No Joystick

A topic by itchtoplay created 30 days ago Views: 68 Replies: 10
Viewing posts 1 to 3
(1 edit)

Thank you for Blastaway and well done! Trying the Windows .zip. I have 3 USB joysticks correctly installed on Windows 10 1909 (all digital - Amiga/arcade type) but none of them works.

Developer

Glad you like the game!

Thanks for reporting the problem. A question: is one of your joysticks a Competition Pro? The reason I'm asking is that a month ago a user reported that such joystick didn't work and a special test build I provided him with reported this:

devices found: 1
device 0:
axes: 2
hats: 0
balls: 0
buttons: 4
not suitable

Basically, the device was detected, but for some reason it was told to have an analogue shaft (axes: 2) instead of a digital hat (hats: 0). Unfortunately, there was nothing I could do about it as that's what my program is told by OS + SDL library. Then he tried a joypad and everything worked fine.

Some random suggestions:

  • if the option is available, try to change the input method from XInput to DirectInput and viceversa (in theory, both modes should be supported, but who knows);
  • check if there is any configuration option that affects how the joystick is seen/handled by the system;
  • try one joystick at a time.
(1 edit)

Thanks. They are simple joystick/gamepads (8-direction arcade stick and a few buttons). No analog shaft/control etc. and no Competition Pro. Two of them are connected via 9-pin (Atari-type) to USB adapters. The third has a direct USB cable. They have no configuration options. I can only see them in the "Setup USB game  controllers" section where simple test/calibration settings are available. I cannot really change anything there.

I tried disconnecting them, and restart Blastaway with only one connected but nothing changed. Perhaps the installer version might give a better "integration" with Windows, or I'd get the same result?

Developer

Calibration settings? Can you show me a screenshot or a video of the calibration process, please?

The installer doesn't have any bearing here. For a joystick/joypad to work, this is what has to happen:

  1. the device must have at least a digital direction control and a digital button;
  2. the device must be correctly detected and handled  by the OS;
  3. the OS must correctly report the joystick to the SDL library (the only third-party component used by Blastaway);
  4. the SDL library must correctly handle what reported by the OS.

Unfortunately, I don't have any control over the above, as the Blastaway program sees only what reported by the SDL library.

I'm sure 1 and 2 apply. About 3-4, have no idea. They work normally under emulators like MAME or WinUAE. They don't really need calibration, although one of them might require it every once in a while. Here's a video:


Developer

Thanks a lot for the video! From what I see, it looks like the system treats your device as if it were analogue: in fact, a digital device doesn't need calibration at all (each direction is either on or off, so all that's needed is 4 bits) and your test/calibration program assigns an 8 bit value to each axis (0 = left/up; 128 = center; 255 = right/down).
If it's OK with you, tomorrow I'll send you a test program that will show us how the joystick is reported to the game. Can you contact me by email, please?

(1 edit)

Sent you an email. I thought so too about calibration but as mentioned, every once in a while at least one of these joysticks "loses it" and stops working. Re-calibrating makes it work again. The 're-calibration' process of course is just moving the stick into all 8 directions and pressing a button. I agree it shouldn't be necessary but I'm guessing the USB conversion/emulation is dodgy, since these aren't really "native" USB devices.

Developer

Email received, thanks. I'll answer as soon as possible. In the meanwhile, my guess is...

The chain is like this:

joystick -> OS <-> SDL ->Blastaway

The problem probably lies in the fact that something in the joystick -> OS part (I'd say the default OS drivers) make the joysticks look as if they were analogue. As a consequence, SDL and then Blastaway are told that the joystick are analogue.

Developer

For everybody's convenience, I'm posting the result of a little investigation.
itchtoplay kindly ran a test program I gave him to check how the joysticks were reported to Blastaway. The resulting report was this:

number of devices found: 3
device: 0
 analogue axes: 2
 digital hats: 0
 balls: 0
 buttons: 3
 not suitable
device: 1
 analogue axes: 2
 digital hats: 0
 balls: 0
 buttons: 8
 not suitable
device: 2
 analogue axes: 2
 digital hats: 0
 balls: 0
 buttons: 10
 not suitable

Basically, SDL reports that the shaft of the joysticks is analog, not digital, which explains why they aren't suitable to Blastaway. As discussed in the previous post, the problem originates somewhere between the joysticks and the OS (given that they are treated as analog in the system settings).

Should anyone experience the same problem, I can only suggest to check if the joysticks or the OS offer a way to switch from analog to digital.

Found a nice workaround: JoyToKey.  It allows game controllers to emulate keyboard input (or mouse), so it was easy to assign the keys Blastaway uses to my joysticks. It recognised all my 3 USB devices. Well worth the $7 asking price.

Alternatives: Xpadder (couldn't find a test version so I didn't try it) and InputMapper (seemed a bit complicated so I didn't try it).

So... I can now finally start playing Blastaway!

Developer

Great to hear you've found a solution! Thanks for having shared it!

Have fun!