/dev/joystick is right out, because I'd have to write separate code for Win32 and *nix/OSX. I'm worried though that if I switch to SDL it will break rumble support again. One of the hardest things to keep working has been the DirectInput rumble support, and I'm afraid that adding another layer on top of that will break more things that I can deal with. Plus so much of the existing code is Win32 based... all the interface code, the resource files, the 16-bit Unicode strings, all the _T macros strewn all over the place. At this point I feel it would be a better idea to code a new SDL plugin from scratch, pulling in the relevant NRage stuff when it would be helpful (transfer pak support). There are a lot of things I couldn't change in NRage when I was overhauling it, because of restrictions in how the data structures were laid out. But that's a much bigger project than I can handle right now...