Last modified: Thu Sep 13 21:31:37 EDT 2012


I like Classic DOOM.  Although the game was originally designed to be playable with keyboard alone and most people play it with a standard mouse, there is in fact only one true way to play Classic DOOM:

Logitech Marble Mouse


Ball weight 1.6 oz
Ball diameter 1.5 inches
Sensing Optical
Resolution ?
Tracking speed ?
Interface USB HID v1.10
Price $22.98 (2007-09-15)

The Marble is less than an ideal replacement for my old serial track ball.  It is designed to be worked with the fingertips rather than the palm of the hand, which would never do for Missile Command.  But it has higher resolution, it's USB, and it works.

Kensington Expert Mouse


Ball weight 4.1 oz
Ball diameter 2.1 inches
Sensing Optical
Resolution ?
Tracking speed ?
Interface USB HID v1.10
Price $86.99 (2008-01-20)

I finally caved in and bought the expensive Kensington trackball, the only trackball with a large, center-mounted ball that was still commercially available.  (Update 2012:  Now there's Slimblade.)  While it takes some getting used to, I'd say this is the one.  The ball is actually slightly larger and heavier than the one in the Addison, and the included wrist rest does much to improve comfort.

Unlike the Addison, the Kensington has a usable arrangement of buttons.  The left mouse button can be worked with the thumb, and you do actually have a middle button (or two).  A rotating ring substitutes for the scroll wheel found on most modern mice.  In much the same way that a track ball avoids the problem of mousing off the desktop when trying to move a long distance, the scroll ring avoids the problem of having to wheel repeatedly to scroll a long distance.  If you are careful, you can rotate it indefinitely in a single motion.

When new, the friction on the ball is rather high, and it will not maintain spin after a good throw.  However, after some use the friction disappears.

The beads on which the ball rides accumulate crud and must be cleaned regularly to maintain performance.

Addison Technology Professional Trackball


Ball weight 3 oz
Ball diameter 2 inches
Sensing Mechanical
Resolution 300 dpi
Tracking speed Up to 600 mm/s
Interface 9-pin serial (RS-232 DE9)
Price $15 (1994)

This is the old standard by which I judge all track balls.  It served me well for many years.

With a modern GPU, OpenGL DOOM source port, high screen resolution, and FPS approaching ωP, the limited resolution of this trackball becomes noticeable and distracting.  However, it is the ideal input device for a retro gaming rig running Vanilla DOOM under DOS if you can't get USB to work.

As of 2007, there is a company called Addison Technology, but they only make cables.

Following are the additions to /etc/X11/xorg.conf that are needed to activate this trackball (or any serial mouse) on a recent GNU/Linux installation of X11.  Yes, it has gotten complicated:  serial mice aren't detected by the kernel, so you have to disable the entire new auto-auto layer and do everything manually.  X.Org even went through a phase where it became completely impossible to get a serial port device to work.

Section "ServerFlags"
  # This has to be turned off to enable the plain old mouse driver.
  # Unfortunately, you then need to add old style declarations for all
  # other mice and keyboards.  (The keyboard actually still works, but it
  # loses Dvorak.)
  Option "AutoAddDevices" "false"
Section "InputDevice"
  Identifier         "SerialTrackBall"
  Driver             "mouse"
  Option "Device"    "/dev/ttyS0"
  Option "Protocol"  "microsoft"    # The middle button *never* worked.
Section "InputDevice"
  Identifier  "Keyboard"
  Driver      "kbd"
  Option      "XkbLayout" "dvorak"  # Delete this if you don't like Dvorak.
Section "InputDevice" # This section is needed only if you have more than one mouse.
  Identifier         "OtherMice"
  Driver             "mouse"
  Option "Device"    "/dev/input/mice"

Section "ServerLayout"
  Identifier  "Whatever Layout"
  Screen      "Screen 1"
  # The following lines are needed only when AutoAddDevices is off.
  InputDevice "SerialTrackBall" "CorePointer"
  InputDevice "OtherMice"       "SendCoreEvents"
  InputDevice "Keyboard"        "CoreKeyboard"