Wombat Game Controller Beta – Call for Testers

ADB-USB Wombat firmware 3.22 beta 2 introduces preliminary 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.
In this beta version, USB game controller buttons and sticks are converted into ADB keyboard keys and mouse movements. Three fixed controller profiles are provided: ARROWS, WASD, and FLIGHT.
| ARROWS | WASD | FLIGHT | |
| Shortcut | Back + D-pad up | Back + D-pad right | Back + D-pad down |
| D-pad up | Up arrow | W | = |
| D-pad down | Down arrow | S | – |
| D-pad left | Left arrow | A | Shift-Z |
| D-pad right | Right arrow | D | Shift-X |
| Left stick | same as D-pad | same as D-pad | same as D-pad |
| Right stick | relative pointer | relative pointer | auto-center pointer |
| R3 (stick click) | switch pointer mode | switch pointer mode | switch pointer mode |
| A | Space | Space | Space |
| B | Shift | Shift | Shift |
| X | W | E | F |
| Y | R | Q | G |
| LB | mouse click | mouse click | mouse click |
| RB | Command | Command | A |
| LT | slow pointer movement | slow pointer movement | slow pointer movement |
| RT | Tab | Tab | Tab |
| Start | Esc | Esc | Esc |
With this firmware, you need to choose the profile whose mappings are most similar to the game you want to play, and then change the game’s control preferences to match the keys that the profile uses. The existing profiles map directly to Prince of Persia, Dark Castle, and Hellcats Over the Pacific, but other games can be adapted to match them too.
In later firmware versions I hope to add a custom profile, with a learning mode where you can choose the mapping between each controller button and keyboard keys. Even later, I may add support for Gravis Gamepad and MouseStick II emulation so that this configuration step can be done in the Gravis control panel instead of the Wombat.
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.

