I will add one thing I remembered.  I'm using a joystick that has leaf switches.  At first I tried to wire then into the encoder inputs labeled Up, Down, Left, and Right.  It did not work out well at all.  I noticed in the js0 program that when I activated a switch it would show 32768 and then back to 0 but every so often I'd see a 16384 value.  I moved all those joystick switch inputs down to the bottom row of button inputs and it started working flawlessly.  I never looked into it but with those large values it appeared to be expecting an analogue range for those connectors.