Ruud is correct that the communication is typically the bottleneck. We
investigated why the MSFF wheels were so slow compared to the other USB
wheels; the main problem appeared to be that the MSFF drivers had to do a
complete cycle of communication with the device to send force feedback
commands--i.e., send a request to the device over USB, and wait for it to
respond. Whereas the other drivers, such as Logitech, were able to send a
force feedback command, and return control to the game program immediately
after. It was unclear whether this asynchronous behavior was due to a
difference in the hardware, or to the use of a helper thread to manage the
interaction with the wheel. Part of the problem is that DirectInput is
(foolishly, in my opinion) designed as a synchronous API, so the MSFF
drivers were more in the "letter of the law" even though nobody in their
right mind would want to incur such a hideous performance penalty for such a
pedantic reason.
-Dave Pollatsek
MGI
> > The FF stuff takes place mainly in the controller itself. That runs a
> > certain number of FF effects simultaneously. So the only thing is some
> > communication (which does seem THE actual bottleneck).
> > Although I'd think only the communication speed would matter, it seems
> > that in real life things don't work out as cleanly as that (wasn't the
> > USB MSFF slower than the gameport MSFF?).
> Don't think it's just related to FF though. I've got an Interact PC
PowerPad
> pro (just an analog gameport joypad - no FF) and just polling it in my sim
> takes the framerate from about 80 to about 30.
> Mike.