mr_deimos: I wanted to use 3dconnexion spacepilot as lateral and forvard/reverse trusters control
NamelessFragger: Those things now show up as DirectInput game controllers? I recall 3dconnexion (descended from Spacetec, who made my SpaceOrb 360 and the professional-targeted Spaceball line; not to be confused with a soundtrack or a hilarious parody) not wanting to support gaming applications at all.
I'm not sure I'd like the puck shape, though. Ever since Logitech got their hands on the tech, they've been using those CyberMan 2-ish pucks (only even flatter), not the spheres that Spacetec favored (SpaceBALL, after all). Furthermore, I doubt the SpaceBall 5000 USB has much in the way of driver support, so if it's a recent update, it probably didn't get it. (That's the one I'd probably go for, since it's the only Spacetec-era device to support USB. Everything else is old-school DB-9 serial, my SpaceOrb 360 included...)
They are directinput controllers, but they don't show up in joysticks list. Sadly, 3dconnexion still doesn't really encourage game developers to support their controllers and doesn't do anything to allow some Custom mapping for gaming use.
However glovePIE can still read these devices and map 3d mice movements to virtual joystick (via ppjoy).
Here's a part of my glovepie script:
[code]
//store 3dconnexion's coordinates in variables for easier use
var.x=spaceBall.x
var.y=spaceBall.y
var.z=spaceBall.z
var.v=spaceBall.Pitch
var.w=spaceBall.Roll
var.u=spaceBall.Yaw
var.thresholdTrans=40
//these variables are used to map 3dconnexion's movement to digital
//outputs like joy buttons and keyboard keys
var.plusX=(var.x>var.thresholdTrans)
var.minusX=(var.x<-var.thresholdTrans)
var.plusY=(var.z>var.thresholdTrans)
var.minusY=(var.z<-var.thresholdTrans)
var.plusZ=(var.y>var.thresholdTrans)
var.minusZ=(var.y<-var.thresholdTrans)
//map 3dconnextion's left/right and up/down translations to virtual (ppjoy) hat
PPjoy.Digital10=var.PlusZ
PPjoy.Digital11=var.PlusX
PPjoy.Digital12=var.MinusX
PPjoy.Digital13=var.MinusZ
//map 3dconnexion's front/back translations to throttle override
Keyboard.A=var.PlusY
Keyboard.Z=var.MinusY
//map real joystick buttons to ppjoy's buttons (because only one joystick is used by iwar)
PPjoy.Digital0=Joystick2.Button1
PPjoy.Digital1=Joystick2.Button2
PPjoy.Digital2=Joystick2.Button3
PPjoy.Digital3=Joystick2.Button4
//map real joystick axes to ppjoy's axes (because only one joystick is used by iwar)
PPjoy.Analog0=var.u/200
PPjoy.Analog1=var.v/200
PPjoy.Analog2=var.w/200
PPjoy.Analog3=Joystick2.z
//map some of 3dconnexion's keys to keyboard keys.
Keyboard.F1=Joystick0.Button1 //COM
Keyboard.F2=Joystick0.Button2 //NAV
Keyboard.F3=Joystick0.Button3 //WEP
Keyboard.F4=Joystick0.Button4 //ENG
Keyboard.F=Joystick0.Button5 //Firing mode
Keyboard.X=Joystick0.Button6 //Sniper zoom
[/code]
Note that glovepie sees the 3dconnexion controller both as SpaceBall and Joystick0. The latter is useful because it can access all its buttons, no matter how they're programmed in 3dxware control panel.
3dconnexion still hosts drivers for old devices, even older than serial spaceBall, and they're supported by glovepie too. That makes these things cool gaming devices (of course after finishing the CAD work ;) ), and not only for space sims - i recently played Command&Conquer with a spaceNavigator (mapped to pan map, zoom and rotate the camera). It was really cool to have full control of the camera without reaching to the keyboard :)
As for the shape, i never used spaceBall, but i do like the new knob shape. It has rather low profile so it's easy t use with just tho or three fingers instead of having to hold it in entire hand. Plus, it's easier to reach the buttons in front of the knob ;)
As for the spaceBall, i also wanted to get it (as an upgrade for spaceNavigator), but then i noticed that you can get a much more modern spacePilot on ebay at the same price as spaceBall USB (about 50 bucks), so i went for the latter and so far i'm satisfied.