question for Joshua

  • Thread starter Thread starter pjp
  • Start date Start date
P

pjp

Can you give me some reason why MS games like FS2004, CFS2 etc. all seem to
not use a joystick properly if you have more than 1 joystick device
connected? Assigning preferred device as "Preferred" or "ID#1" just doesn't
seem to be enough.

Very irritating!
 
pjp said:
Can you give me some reason why MS games like FS2004, CFS2 etc. all seem
to not use a joystick properly if you have more than 1 joystick device
connected? Assigning preferred device as "Preferred" or "ID#1" just
doesn't seem to be enough.

What kind of behaviour are you getting?

--
Paul Smith,
Yeovil, UK.
http://www.dasmirnov.net/
http://windows.dasmirnov.net/ Windows XP Resource Site.

*Replace nospam with smirnov to reply by e-mail*
 
The games simply can't seem to distinguish what device is generating what
input. It's not bad enough that they just assume "preferred/id#1" device but
then can't seem to properly ignore/parse data from other devices. As the
other device may have completely different raw values etc., ... who knows
why, I just can't seem to get any MS game to behave acceptably if I leave
more than one joystick attached (assuming the game uses a joystick)? Same
thing regardless of OS, e.g. XP or 98SE in my case.

What's irritating about it is that if forces me to disconnect other devices
rather than simply swap which is id#1. That means that when the device(s)
are re-plugged back in, they tend to end up using default values for force
feedback, separate combined peddles etc. etc. neccessitating one to "re-do"
custom settings, specifically in my case, separate peddles for my wheel.

Of all the games I've played over the years (and it's well into the
hundreds) there's only one other "quality/big name" game that I've run
across that's so "ignorant", Final Fantasy VIII.
 
Hi pjp,

It is unusual that you are seeing this behavior. There are 2 components
actually that make up what is referred to as DirectInput. There is the old
pre-DirectX WINMM and then the actual DirectInput. The device ID's that you
see in the control panel are only for WINMM. It is the old method of getting
device data and only supported up to 16 devices. While developing games it
was cheaper and easier to just assume if there is a joystick it will be at
ID1 and so a lot of games just use whatever is there. Most games in the last
5-7 years probably don't use this. Instead they use DirectInput (the newer
non-WINMM portion of it). With DirectInput every device in the system is
assigned a GUID, a unique ID, that programs can use to get data. You can
have a hundred devices in the system and still accurately get data from the
device you want. The way games usually Acquire devices though is to ask
DirectInput to enumerate all the devices in the system and return a device
that is of type "joystick". This can be a problem because some wheels
describe themselves as joysticks instead of wheels, but for the most part
the game will just accept the first device it gets that is satisfactory to
what it is looking for. The devices are more or less returned randomly.
Something to keep in mind though while you swap devices is that drivers and
the associated software for setting preferences will consider the same
device that has been plugged into 2 different USB ports to be 2 unique
devices. I am almost positive (without source or debugging) that the games
you mentioned below just enumerate and acquire the first joystick in the
system. Even though this doesn't necessarily solve your issues I hope it
sheds some light in why there is the behavior and hopefully give you an idea
of minimizing the hassle.


Joshua Smith
OpenGL Test Lab
Microsoft
-----

Get Secure! www.microsoft.com/security

This posting is provided "AS IS" with no warranties, and confers no rights
 
I'm fairly familiar with how it's supposed to work. At one point I got so
frustrated about always having to change ID#'s etc. that I actually wrote a
small utility Logitech's support forum guys are kind enough to host that
makes it "easier" than the way MS provides.

I wrote initial msg because I'd noticed your "sig" and so thought I'd bring
it to "someone's" attention that at least two major MS games do not properly
handle having multipule devices connected. Try FS2004 yourself with say a
joystick and a wheel attached.

I'm relatively "new" to XP, having only been running a dual-boot 98SE/XP for
maybe 6 months and this new pc with only XP for month or so now. That said,
XP seems even worse than 98SE in that regard, now having some "preferred
device" bs and not even able to control the order of other devices, e.g. I
sometimes have as many as six, 2 wheels, 2 rumblepads, PS2 controller and a
flight stick. Thankfully that little id utility still works :) In fairness,
it's far from MS's games that exibit this problem but my frustration is that
I think it's fair to say at least MS games SHOULD NOT have a problem. I
basically keep FS2004 on system because I've "played" it so long now (e.g.
first 8088 had a version on it) but both CFS's and IL's I just uninstalled,
that's how frustrating I find it all.

To me, it seems time MS rethought it's design regarding joysticks.
Everything else is "virtualized", e.g. mice, keyboard etc. so why not
joystick(s). Why can't a user simply have some dialog box that allows one to
"create" virtual joystick(s) and assign whatever input to whatever virtual
device they've created? Game wants only one device, no problem. Load some
"saved virtual layout" and play the game. Another game allows two player
mode, load a different "virtual layout". The game would never need to know
that "stick left" didn't come from an actual physical joystick but instead
could come from anything, e.g. mouse click, keyboard,
 
Back
Top