English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.Hardware (https://eab.abime.net/forumdisplay.php?f=20)
-   -   Default analog joystick specs, improved support? (https://eab.abime.net/showthread.php?t=100343)

Overmann 08 January 2020 12:36

Default analog joystick specs, improved support?
 
Lately I've been playing around with analog joystick adapters, trying to get that magical analog flightsim feel on the amiga but I find that so many games fail to offer joystick calibration. As a result the sticks don't work right. I have four old analog joysticks with 15 pin plugs and with some games none of them work right, like with Knights of the sky (which is one of my favourite flightsims on the amiga). With games that offer calibration (jetpilot) they all work perfectly!

I have two questions:
What are the non working games expecting from my joystick? Does anyone know the output of an amiga analog stick? I have a couple of CF mach sticks. Wonderful little joysticks. They output from 0 to 30 or thereabouts and center at about 15. In knights of the sky I get almost no down (take off) or right, but plenty of up (go down) and left. Fire buttons work fine obviously.

Is there anything I can do? Are there tools I can use or files I can edit outside the games to tell them what to expect from the joystick? How can I improve the compatability?

Thank you for reading :)

Etze 08 January 2020 15:40

1 Attachment(s)
According to its manual, Knights of the sky does not require calibration. I just tried it with the adapter from amigakit and a Logitech Wingman Joystick. Worked perfectly. Did you have the joystick connected when you switched the Amiga on (I did)? Or does your joystick have those "trimmers"? Maybe they aren't centered?


Where can I find the output values?

Daedalus 08 January 2020 22:58

What are you reading those values in? A joystick tester? The values should have a much larger deflection - in theory the pot values can range from 0 to 255, though you would be best keeping away from the upper limit in case you manage to go slightly past it and wrap around to 0... Not good in a tense flight sim moment! You don't want to have the value too low either as that reduces the resolution of the movement.

I'm sure most games of the era must have had some sort of calibration system, because analogue controllers of the time didn't really do defined values as the pots weren't used as potential dividers and so the upper limit of each axis (and therefore the centre point of each axis too) is rather arbitrary.

Additionally, the Amiga has slightly different specs for pots than a PC analogue input uses. On the Amiga, the pot should be 470K linear to give readings reasonably close to full-scale, but PC joysticks tended to use much lower values, between 100-200K typically, which will give much lower deflections on the Amiga, naturally. If I were to guess, and the value you're getting of 30 is an actual pot counter result, I'd say your stick has 100K pots in it.

Back in the day, I was a big fan of my analogue stick and fitted my towered A1200 with a 15-pin port especially for them, but had a similar problem with very low readings. I managed to improve the sensitivity and full scale deflection of the stick by adding small capacitors across the pot inputs. This had the effect of increasing the range from the pot registers, thus increasing the smoothness of the analogue control in Birds of Prey and F1GP (the two main games I used it for). If you're handy with a soldering iron, it could be worth experimenting with some small capacitors (try the 50-200nF range - from memory I used 100nF capacitors) added to your adaptor.

Overmann 08 January 2020 23:12

Thank you for the replies!

@Etze
Yes, I have those trimmers on all my sticks and they work as expected but they do not help matters in "Knights of the sky". I had my joystick connected when turning my amiga on. Perhaps I need to try another adapter? I'll have a look at the one AmigaKit sells.

@Daedalus
Well, those values are solely based on the readings from JetPilot. I have a joytester on my A1200 so I'll connect to that and see what it reports. I will also try to look at the adapter and see if there are points for soldering capacitors. Perhaps the adapter that Amigakit sells already has them in there?
The problem with Knights of the sky is parculiar however as only right and down is unresponsive. I'm using WHDload. I'll try to install from floppy, and I'll try more games to see. I've found that many games behave irradically though all readings from games that offer calibration show perfectly normal reading (though perhaps low), all pots are responsive and precise.

Etze 08 January 2020 23:23

My adapter doesn't have capacitors. So I don't think that your adapter is your problem.

Overmann 09 January 2020 00:00

I tried it with F1gp now and the joystick appears to behave normally. The calibration reports values from 0 to 130 on the x axis and 0 to 145 on the y axis. AnaCal reports values similar to JetPilot, in the 0 to 30 range.

I'll give more games a try, and more joysticks. I'll see if I can get a better understanding of what is wrong with the games that don't work. If it's similar to the behaviour in KotS.

Daedalus 09 January 2020 00:08

Well, if the game doesn't offer calibration, it might be expecting some sort of average value for the center point, and if that value is close to the maximum deflection of the stick, you'll get poor responses in the down and right directions (up and left is 0, 0).

There are other testers, but I wrote one myself that gives a visual indication of the actual analogue stick readings (amongst testing lots of other controller types like CD32 and Megadrive pads). It's called ControllerTest and is available on Aminet, though it requires Workbench 2 and a 68020 so it won't work on a plain A500. The box shown when analogue is selected represents the full, theoretical range of readings. If the marker stays very close to the top left, it doesn't have a very good range and might be below the minimum expected by Knights of the Sky. Games with calibration fix that by multiplying the values up, at the expense of resolution.

Edit: I should point out too that the actual values read are dependant on timings. There's a recommended method of allowing the pot capacitor to charge for a full frame before each reading, so read the value/reset the register in immediate succession in a VBlank interrupt, but if the coders read the value at other stages, the results will be different, with lower values reported when the value is read with less than one frame of a delay. Naturally, NTSC/PAL will affect this too, with NTSC setups giving slightly lower values than PAL ones.

Overmann 10 January 2020 13:05

Quote:

Originally Posted by Daedalus (Post 1370348)
There are other testers, but I wrote one myself that gives a visual indication of the actual analogue stick readings (amongst testing lots of other controller types like CD32 and Megadrive pads). It's called ControllerTest and is available on Aminet, though it requires Workbench 2 and a 68020 so it won't work on a plain A500. The box shown when analogue is selected represents the full, theoretical range of readings. If the marker stays very close to the top left, it doesn't have a very good range and might be below the minimum expected by Knights of the Sky. Games with calibration fix that by multiplying the values up, at the expense of resolution.

I just tried it and I only get to move around in the very top left of the box, and only just a little wiggle around. I guess I need to modify my adapter :P

Daedalus 10 January 2020 13:20

Perhaps... You could also swap the pots in your stick for higher resistance ones, but then it might not be read correctly on PCs (if that's an issue).

I probably should have mentioned too that the stick itself contributes to the range in its mechanical design. If it uses 100K pots, but only allows 1/4 of the range of movement of the pot, it's potentially only a 25K pot (or 25-50, 50-75 or whatever) and will be read as such by the Amiga.


All times are GMT +2. The time now is 12:27.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.13171 seconds with 11 queries