I didn’t intend for you to play Q4 and write a sketch for the Orb to work in the game.
Heh--not to worry! I was working at the same problem from another direction. I've always wanted to really be able to use the orb in games that don't support joysticks at all; I just tried this with The Maw (a silly little two-hour game) and realized the frustration with the WASD mapping, so I was going to work on this anyway, and your issues with good mouse support really just motivated me to get on with it. Which is a Very Good Thing actually, because I'm seriously almost there! I hope to post something in the next few hours--it's not 100%, but it's a lot more solid.
First: Mouse updates are indeed the problem--they need to be a lot more frequent. I've now got something which works at about 10 msec, or so it claims, and that is fast enough to be smooth. However, to achieve this you have to turn off joystick updates--ie the joystick shows up as a device, but doesn't move. That's fine for this (since we're assuming we're dealing with a game that doesn't accept joystick input) but it's a bit strange. It also periodically will keep the same update a few times in a row, which is strange.
Anyway, with the faster updates I had to drop the mouse scaling a bit, but it feels really good and I was able to play a bit of Q4. I'm going to include a WASD template sketch in the next round of downloadable orb software, and may clean up a few more things.
The second part is the four-way mapping, which I'm actually going to describe here since I'm working on a documentation update and had to draw the pics anyway...
Okay, one way to map axes to keypresses is what we already have, ie you say "okay, the first third of the X-axis will be "A", the second third will be nothing for a null zone, and the third third will be "D", and then you can do the same with the Y axis and W/S, and you get this:
Good so far. But there's a problem: you have to push the orb pretty far to get it out of the dead zone. "Aha", you think (at least I did), "this is easy; we'll just make the size of the null zone smaller for each axis!" But then you get this:
Now, this doesn't immediately look bad. But it turns out that now it is
very difficult to move just straight forward or left/right, because if you push fairly hard, you inevitably wiggle a bit and get into one of the (now massive) diagonal zones, which probably isn't what you wanted! This is incidentally a big problem when emulators like MAME emulate four-way or eight-way joysticks with analog joysticks--the feel really matters.
So what you really want in this case is to define "pie wedges" for each direction, so that the size of the "target region" increases the further you get away from the center, which you can do by finding x/y and using arctangent (in this case the atan2 function) to figure out where you are angle-wise. That way you just set a value for the "null region" at the center and you get this:
I've done a test implementation of this and it actually works pretty well (the pie wedges are more evenly spaced than they look in the picture)--at least in the Q4 demo I can run forward now without sliding left/right constantly, and with fairly tight sensitivity. Unfortunately the test implementation interferes with other keyboard bindings, so I'm going to spend a couple hours and work it in nicely. Hopefully uploads before too much longer!
ALSO, Ron: I had a case where it went berserk like you described with the demo earlier! Really crazy--it made it so that whenever I moused over a window, it closed it, and then the whole system shut down! It was a little like it was constantly pressing alt-F4, but I'm totally mystified as to how that could happen. So I believe you--but I've got no idea how to fix it!
As for more interest in the device, I think the amount of work you and I keep doing are good indications that it's still in beta, in a sense, which may throw folks off. With this next update and a few changes to some things, I may be satisfied enough to try making a proper release out of it (particularly if the Magellan and Orb5K support can be added) and that may attract a few more folks, not to mention if we can get this WASD problem licked so that it can come with a "drop in" replacement for many games, we'll be pretty close to a usable device. We're getting a surprising amount of power out of the little thing; I'm very pleased.