The Gametrak is a really nice, cheap device for tracking the location of two things in space. I got a few for $15 shipped, but they are Xbox and Playstation controllers, which means they are difficult to use with computers. Arg. In reality, Microsoft, Sony, Nintendo, etc. make it difficult to use their controllers in interesting ways because they use standards like HID they deliberately break part of them to ensure that they can get away with charging licensing fees for anyone who wants to make a controller that is compatible with their game consoles.
I am using an Xbox version with Mac OS X with the XBox HID driver, but that gives crappy results (one z doesn’t read at all, and the other gives values that are 23-89, i.e. very low resolution.). The two x and ys seem ok. There is supposed to be a similar driver for Playstation controllers, but I haven’t tried in on Mac OS X, or anything on Windows.
I was using a Playstation SIXAXIS very nicely with Pd (aka Pure Data) on Ubuntu. I wrote a Pd class for it called [sixaxis] There is a good chance that the Playstation controller support in the linux kernel supports the gametrak as well, but I haven’t tried it. Basically, the Playstation controllers are standard HID device, but you need to send them a specific command to get them to start sending data. You can see an example of that in the linux kernel drivers, but this could be done with libusb or other APIs I suppose.
My plan going forward is to replace the electronics of my gametraks with an AVR/HID. Then I can guarantee that I get at least 10-bit data, and it is a standard HID device.