Wombat Game Controller Support – Call for Testers

3
Classic style game controller with D-pad

ADB-USB Wombat firmware 3.23 introduces support for USB game controllers. Please give it a try and let me know: Does this make sense? Does it feel good? I’m especially interested in feedback on the way the firmware controls the mouse with the game controller’s stick.

With this firmware, USB game controller buttons and sticks are converted into ADB keyboard keys and mouse movements. Four fixed controller profiles are provided: ARROWS, WASD, KEYPAD, and FLIGHT.

These built-in profiles map directly to Prince of Persia, Dark Castle, Power Pete, and Hellcats Over the Pacific, but other games can be adapted to match them too.

Custom Controller Profiles

Four customizable controller profiles are also available, configured via a learning mode option in the Wombat’s preferences menu. In learning mode, press any game controller button, then press the keyboard key it should be mapped to. Press two keys together to map the button to that two-key combo. Or click the mouse to map the button to it, or press Select on the game controller to make the button do nothing. For custom profiles, the functions of the left and right sticks can also be swapped. And if you hopelessly screw up your custom profile, you can reset it by cloning one of the built-in fixed profiles.

What USB Game Controllers are Supported?

In theory any USB game controller should work, in either X-Input or Direct Input mode. However, the only game controller that I’ve directly tested is the Logitech F310.

If one of your USB game controllers doesn’t play nicely with this firmware, fear not. I have created a special web page for collecting technical information on your game controllers. Please plug the offending controller into your PC or Mac, launch Chrome or Edge (Firefox and Safari won’t work for this), and visit the web page https://www.bigmessowires.com/rusb/wombat-controller-test.html. Follow the instructions on the page to capture some controller data and generate a log file that you can send to me.

How do you Control a Mouse with a Game Stick?

Each of the three profiles supports some type of mouse control via the game controller’s right stick. It may seem obvious and simple to convert stick inputs into mouse movements, but it definitely is not. The stick is an absolute positioning device whereas a mouse provides only relative movement data. The stick also has a tiny range of movement, compared to a mouse which can range over the whole surface of your deck.

One common approach is to use the stick to push the mouse pointer around the screen. If the stick is moved slightly to the left of center and held there, the mouse pointer will begin to move left, and will continue moving left for as long as the stick is maintained in the same position. Pushing the stick further to the left increases the movement speed. Holding the left trigger will slow down the mouse movement, making it easier to execute small precise motions. Releasing the stick and letting it return to its center position will cause the pointer to stop moving, remaining in whatever part of the screen where it landed.

The Wombat docs call this relative pointer mode, and it works well for most games. But the details are complex. Is there a dead zone? Is there a linear relationship between stick displacement and mouse speed, or is it a curve? What kind of curve? What are the minimum and maximum speeds? I spent a long time tuning this in a handful of classic Mac games. The subjective feel of it will depend on the Mac’s Mouse control panel settings, as well as the pointer speed setting in the Wombat preferences menu.

Another approach is to set the mouse pointer location on screen to match the stick position. Push the stick left, and the pointer jumps to the left of the screen. Maintain the stick in the same position, and the pointer does not move further. Releasing the stick and letting it return to its center position will cause the pointer to jump back to the middle of the screen. The Wombat docs call this auto-center pointer mode, and it works well for flight simulators and games that use the mouse for aiming. But because the Mac doesn’t natively support absolute pointing devices, auto-center pointer mode is inherently fragile. It requires the Mac’s Mouse control panel speed to be set to Tablet / Slowest. It also depends on the initial mouse pointer location and your screen resolution, because if the mouse hits the edge of the screen, the auto-centering can’t work correctly. The current implementation is tuned for a 640×480 screen.

In any profile, you can press R3 to toggle between relative pointer and auto-center pointer modes. Auto-center is the default for the FLIGHT profile, and the others default to relative mode.

参与讨论