VOGONS

Common searches


First post, by Clive

User metadata
Rank Newbie
Rank
Newbie

In Dosbox v0.70 my Microsoft Sidewindwer joystick works in that it is detected and provides some input. However it does not work properly whatever settings I try in the conf file. The best way to describe the problem is to say that in the game One Must Fall, there is a joystick configuration screen with a 3x3 grid. The sidewinder will only "light up" the top row and the bottom row. It will not operate the middle row, which of course includes the centre "at rest" setting. I have no problems in Dosbox v0.65.
Joystick: Microsoft sidewinder with gameport connector (not USB)
Gameport: Creative Audigy soundcard
I have tried setting cycles to a fixed value (6,000) and [joystick] settings in many different ways, currently as:
joysticktype=2axis
timed=false
autofire=false
swap34=false
buttonwrap=false

The problem remains 🙁

Clive

Reply 1 of 20, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I've talked with him over email and suggested to register here.
The settings tried are by my suggestion to make the joystick behave like the 0.65 style joystick.

For the moment I can think of 2 possible problems
The poll reduction for analog joysticks
the bugreport on sf.net with dead zero thing, although that wasn't in 0.65 either

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

Reply 2 of 20, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

the bugreport on sf.net with dead zero thing, although that wasn't in 0.65 either

That is irrelevant, it does have no drawback if the default mapping is used.

The omf joystick calibration works fine for me.

Some things:
- delete any mapper.txt in the dosbox directory
- try it with core=normal and low cycles (1000)
- try some dos joystick test utility and see what values are generated
(attached one i have at hand)

Attachments

  • Filename
    joytest.exe
    File size
    5.78 KiB
    Downloads
    1857 downloads
    File license
    Fair use/fair dealing exception

Reply 3 of 20, by Clive

User metadata
Rank Newbie
Rank
Newbie

I have tried joytest.exe. Changing the cycles setting has no effect but ..

X left = 1
X right = 254
X at rest = 127

Y up = 1
Y down = 254
Y at rest = Whatever was the last Y value, either 1 or 254!

Dosbox v0.65 behaves properly with the Y value returning to 128 when buttons are released.[/url]

Clive

Reply 4 of 20, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Thanks for the data, think it's caused by the center-problem
Qbix mentioned (the 128 in 0.65).
Odd that only one axis is affected, also my digital gamepad works fine.

You can try to work around it by re-calibrating your (real) joystick
or resetting the calibration. Does it happen in fullscreen, too?
Maybe use different output= values in dosbox.conf

Reply 6 of 20, by Clive

User metadata
Rank Newbie
Rank
Newbie

Problem occurs full screen or windowed and with all values of output = .
I have tried recalibrating joystick (but it was already OK) to no avail.

As you may be aware the sidewinder pad has a "slave" game port on it. If I connect a standard two button gamepad and configure Windows XP to use this, then Dosbox v0.70 works fine with it! It obviously does not like the sidewinder whereas Dosbox 0.65 is happy with it.

Clive

Reply 7 of 20, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Well it's a bug in the mapper code. But it didn't come up yet because
centered (digital) joypads/sticks are not at zero, but -1. Why it's NOT
at zero i don't know, could be some bug in the lower joystick layers
(driver/windows/SDL) or something.

Reply 10 of 20, by Clive

User metadata
Rank Newbie
Rank
Newbie

My Microsoft Sidewinder game pad is a standard, fairly common but also fairly old unit. It is not the “pro” version which looks different. I found a picture at this link: http://washingtondc.craigslist.org/nva/sys/289530392.html.

The slave port is really a red herring. It is a pass through port – so if the mode button is pressed on the joy pad then the pad is disabled and the pass through port acts as the only game port on the PC. It is to save scrabbling at the back of the PC if you want to connect other joysticks. I only mentioned it as it proved that not only did “normal” pads/sticks work for me with Dosbox 0.70 but that it showed the plug & wiring on my Sidewinder must also be OK. Hope that helps.

Clive

Reply 13 of 20, by GoodOldTimes

User metadata
Rank Newbie
Rank
Newbie

I have the same issue. Also my Joystick gives just "254" and "1" as the two sates of an axis. but starts as it should with 128. So there must be an issue with the software interface between Windoof98 and dosbox. I use a thrustmasterfirestorm digital 3 gamepad. 🙁

Reply 14 of 20, by Clive

User metadata
Rank Newbie
Rank
Newbie

For reasons I am unable to explain my game pad is now working properly in v0.70. I had previously swapped between v0.65 and v0.70 with the problem consistently resolving/appearing with the corresponding version. Also the game pad in control panel and Windows games has always worked consistently and correctly. It has now decided to behave in v0.70!

Clive

Reply 15 of 20, by depocombs

User metadata
Rank Newbie
Rank
Newbie

I'm having a similar issue on with an old Sidewinder gamport (non usb) running in Linux. The program (SWOS 96/97) did not have any joystick problems in 0.65, but the it will not return to center in 0.70 (remains stuck at the coordinates of the most recent direction pressed). I've deleted the old mapper.txt file (and tried the a combination of all the .dosboxrc joystick settings), but I'm still having the same issue. The joystick is working fine when running other console emulators.

Reply 16 of 20, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

There's a patch on the dosbox sourceforge page about this.
It would be interesting if you could figure out what raw
joystick values SDL gets, as their joystick code has -1|-1 as
center which works fine (except for some joysticks).

Reply 17 of 20, by depocombs

User metadata
Rank Newbie
Rank
Newbie

Thanks, I downloaded the patch (sdl_mapper.cpp) and recompiled. I was able to get the joystick working correctly by using the .dosboxrc joystick settings listed in the first post, then deleting the old mapper.txt and generating a new one. It also would not work if any joystick option was set to true (or auto in the case of joysticktype).

I'm not sure how to test the raw SDL values.

Reply 18 of 20, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Not sure, that SDL_sysjoystick.c has a quite different design than the
windows mm one.
Maybe print out (ie. add a LOG_MSG()) the joystick position, that is in
sdl_mapper.cpp, function ActivateJoystickBoundEvents() when
SDL_JoystickGetAxis() is called print its value with something like
LOG_MSG("axis %d at %d",i,caxis_pos);
and see what the values ate at the joystick centered and at the
topleft/bottomright positions.

Reply 19 of 20, by depocombs

User metadata
Rank Newbie
Rank
Newbie

Thanks again.

--- Using original sdl_mapper.cpp or patched sdl_mapper.cpp
Centered:
axis 0 at 0
axis 1 at 0

Top Left:
axis 0 at -32767
axis 1 at -32767

Bottom Right:
axis 0 at 32767
axis 1 at 32767