From: Biff Forbush (
Date: Tue Jun 23 2009 - 18:32:57 CDT

Hi all,

    I have just installed a Saitek joystick for use with VMD and find
that it does indeed make life a lot easier. There are some frustrations
however, which would be easily relieved with some configurability (maybe
I am missing something?). Looking at Win32joystick.C I see that
everything is hard coded, and while it would be easy for me to change
this routine, it would probably be easier for me to rewire joysticks
than to maintain my own version of VMD. Very helpful improvements would
be (the first 3 of these, can not be handled by rewiring the sticks):

    1) configurable deadzone, rather than the 8% deadzone that looks to
be hard-coded in the calls to the nullregion(800,...) routine. This
fixed deadzone wipes out the fine control that would be afforded near
zero offset. It is frustrating that I have to return to the touchpad
to make very fine moves. Clearly some deadzone is necessary, but in my
case this could be simply done within the Saitek joystick control panel,
which sets up its own deadzones for each controller axis.

    2) Configurable response (sensitivity to joystick). Again, maybe I
am missing something [maybe transInc, rotInc, and scaleInc can be set
from VMD?]. I find that rotation is set pretty well, but that with
scaling and translation, I am likely to send my molecule off into
never-never land with any more than the slightest joystick movement past
the deadzone.

    3) button-press (or VMD command which the user could set to a
button-press) to set joystick mode (sticks[i].moveMode), one button for
rotation, one for translation, etc. The present 4-way toggle is very
tricky to use without constant reference to the command window, very

    4) VMD or menu configurability of joysticks, axes and buttons. I
recognize that this would add more baggage to VMD, and perhaps rewiring
joysticks is the easier solution, but.... My Saitek controller has a
5-axes and it would be perfect to use the Z-rotation (stick handle
rotation) for the VMD Z axis affording full 3d rotation control with one
grip -- unfortunately VMD chooses to use the Zaxis slider (a separate
control) instead. A lesser problem is the mapping of "reset" to the
joystick trigger (button 1), all too easy to snap out of a carefully
configured view. I managed to use a third party virtual joystick driver
(ppjoy and ppjoyjoy) to remap the Zaxis, but unfortunately the
directionality is backwards. In addition the ppjoy virtual joystick
solution presents two joysticks to VMD, and there is no option to watch
just one of them (apart from the tricky 4-way toggle, of which there are
now two), so the whole thing is pretty much of a kludge.

Please forgive if I am missing features that are already there.