VOGONS

Common searches


Games with joystick problems with high cycle counts

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 20 of 80, by Shed

User metadata
Rank Newbie
Rank
Newbie

justice: yes...large snippet....but now i'm seeing that your talking about a timing bug or something related....sorry for my posting...i remember when i code this stuff in DOS and it seems right post it here...but it seem other "subject" that you're talking....and this is 3rd post i'm putting something dissapointed....🙁

ah...do you "end" the WCIII game? i did it...it's great...but after it (3 months playing all day +/-) i end the game,...yes...and i was going to Medical centre after it, because i made a damage to my right arm, and need another 3 months of resting for recover from it.... 😁 (this is serious eh? i have my arm like ....well...i can't move it!! 😀

*right arm using the joystick (it's supposed)

i remember the place and date of it ...summer 1993 , at beach bungalow.

Reply 21 of 80, by Justice

User metadata
Rank Newbie
Rank
Newbie

Dropping RANGE down to 10000 seems to improve things a lot. I only tested WC3 with that before making the change to timer.cpp hal mentioned, but it got rid of the occasional drifting problem completely. After I made that other change, I tried out WC2, WC Priv, and WC Armada. All worked perfectly. I didn't try the in-game Armada calibration (I used AJ.exe, the calibration tool supplied by origin), but I played through the first 3 gauntlet stages out of disbelief that it was actually working, and it didn't glitch once. I'm still planning on testing whatever games I can find in my closet with this, but probably won't get that done until later this weekend.

Reply 22 of 80, by Justice

User metadata
Rank Newbie
Rank
Newbie

Absolute Zero doesn't center correctly (regardless of what the range is set to) like it did with 0.65 - it thinks the center point is a little higher on my joystick than it really is. OTOH, it doesn't center correctly on a real system either; at least, not on mine. Metaltech: Earthseige works fine (don't know if it did before). Magic Carpet 2 works fine (I assumed it did before). That's all I've got for testing.

Here's another diff made from 0.65, but the only thing different is that RANGE is set to 10000 instead of 50000.

I don't know if you would want to use this in CVS or not. It probably needs testing on a wider variety of games than I own to see if it is actually an improvement.

Attachments

  • Filename
    joystick.diff
    File size
    3.02 KiB
    Downloads
    26 downloads
    File license
    Fair use/fair dealing exception

Reply 23 of 80, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

Nice work guys!

I've been hoping to play Buck Rogers: Planet of Zoom for some time in dosbox with my joystick, but unfortunately the game would lockup hard once I moved the joystick vertically. However, with both your patches, the game works fine with a joystick at about 1500 cycles. Any other amount makes the calibration fail and move the spaceship sideways. Unfortunately, at 1500 cycles the game is totally unplayable (way too fast). BUT, using RANGE 60000, I can successfully calibrate the game at 500 cycles, just about the correct speed for this game! Yippee! 😀

Regards,
Ronald

Reply 26 of 80, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Finally the joystick works in the Crusader series (No Regret/No Remorse).

Wow, I request moving this to the Patch section! And I humbly request adding this to CVS somehow 😀

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox

Reply 27 of 80, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

it needs to be tested with a few older games as well.
most of the tests here are with new games. (and rcblanke reported at least one problem with the settings with an older game).

Water flows down the stream
How to ask questions the smart way!

Reply 30 of 80, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, my first joystick (commodore 64 stick, black with one red firebutton) had to be used in combination with such a device that you speak of, with potentiometers for both axes. Come to think of it, a friend of mine had these 'tuning switches' on top of his joystick.

Last edited by rcblanke on 2006-04-24, 10:57. Edited 1 time in total.

Reply 32 of 80, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

Hmm the Commodore Joystick is a digital one. To connect it to an analog joystick port you need some kind of adapter.

My bad, you're 100% right, I guess that's a totally different case then.

I'm wondering, might the RANGE constant be directly related to the dosbox cycles setting? Maybe if we can determine the calculation to convert cycles to RANGE, we won't need to add the settings to the configuration file?!

Reply 34 of 80, by Justice

User metadata
Rank Newbie
Rank
Newbie

I'm wondering, might the RANGE constant be directly related to the dosbox cycles setting? Maybe if we can determine the calculation to convert cycles to RANGE, we won't need to add the settings to the configuration file?!

No, the calculation is time based, and seems reasonably cycle-independent, although I'm not surprised really old games (that run too fast when dosbox is set to more cycles) would have a problem, since they rely on the system running at a certain speed. With the games I've tried with my patch, I can calibrate the stick once and then crank the cycles up and down without needing to recalibrate. With WC3, for example, I calibrated at 38000 cycles and then drove it clear up to 70000 (which nearly maxes out my CPU with cockpits turned on) without needing to recalibrate the joystick. This is very different from the behavior I saw beforehand, and was what I was hoping for.

On the other side, maybe not every game could cope with every analog joystick.

In my experience, this was the case. Some games didn't work with my joysticks very well - they wouldn't reach the extremes, or they wouldn't find the center correctly. Unless it was some other aspect of my system configuration, which is possible, or that the games just don't generally work, which would suck. It could also have been that my joysticks were cheap pieces of junk. I did think that there would be a value between 50000 and 100000 (so between 100k ohms and 200k ohms) that would work with "everything", but that doesn't seem to be the case.

Reply 35 of 80, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie
Justice wrote:

...With WC3, for example, I calibrated at 38000 cycles and then drove it clear up to 70000 (which nearly maxes out my CPU with cockpits turned on) without needing to recalibrate the joystick. This is very different from the behavior I saw beforehand, and was what I was hoping for.

Strange. I'm seeing the exact opposite in paratrooper (http://www.mobygames.com/game/pc-booter/paratrooper); using v0.65, changing cycles does not affect the angle in which the cannon is shooting (slightly off from the middle for me though), but in a patched dosbox, the cannon can be moved from left to right by increasing cycles?! Using 1700 cycles, I can have it centered, here.

Reply 36 of 80, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

These old games probably rely on a fixed CPU clock and use loops for their delay...
increase cycles -> program runs faster -> program thinks joystick intervals are longer -> moves right/down
Other games compare with the system timer, those don't change position.

1+1=10

Reply 37 of 80, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

I see, thank you for your input h-a-l, but still I do not understand why 0.65 behaves differently compared to a patched cvs build. Even Commander Keen 6's (1991) behaviour is like paratrooper's, do you think that game is also using loops for delaying things?

Reply 38 of 80, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

If general game speed is highly depending on cycles I'd assume it uses delay loops. Could also be that only parts of the game use delay loops.

In 0.65 the joystick interval (the length of this interval is proportional to the stick position) is somehow depending on cycles and joystick position (didn't have a closer look).
With this patch the joystick interval only depends on the stick position (and the hardcoded range value).
The 0.65 way appears to be cancelling out different cycles for timerless games, the patch is good for "timered" 😉 games since they expect the interval to be independent of CPU speed (this matches real hardware).

1+1=10

Reply 39 of 80, by Marauder

User metadata
Rank Newbie
Rank
Newbie

First time ever I was able to get through the joystick calibration in Strike Commander! But unfortunately it didn't work in the game, the plane just kept rolling to the left..well, maybe in the future.

I wonder what kind of crazy calibration routine they used in Origin games of that era, because it works with other games.