Tuesday, January 6, 2009

printf ("Hello World!\n");

Hello World!

I've decided to start a small blog to keep everybody informed about what is happening with PPJoy. Beware that the log will probably not be updated all that frequently... less often than I work on PPJoy :-)

I hope to share my plans for PPJoy (features, etc) and possibly get some feedback on them. Tell me what you would like to see in PPJoy. No promises of course!

This blog is definitely not a support forum, sorry. If you discover bugs in PPJoy I'd like to hear about them but unfortunately I cannot help you with general setup questions,  nor do I promise to fix all bugs.


  1. I would like to be able to specify certain attributes of the virtual game controller, like the hardware / vendor IDs, name, etc. For instance, I would like to be able to trick the PC version of "Guitar Hero III" into thinking I have an XBOX 360 guitar controller connected...so the "Lefty Flip" feature does not enable itself by default when I'm using alternative guitar controllers.

    Is it possible for the virtual PPJoy bus to be a virtual USB controller? I don't know for sure if that would matter when software tries to detect specific controllers.

    I'm hoping for 64-bit support when you get around to it. Using the Wii Remote in Win7 x64 is not always possible when I can't simulate a game controller.

    Now, there is lots of free-to-use source code for accessing the Wii Remote...but no emulator developers have put native support into their emulators...so you have to use GlovePIE or GlovePIE+PPJoy to make it work. I get the feeling that so much translating could result in latency, especially on the typical system that has a lot of junk running in the background. The Wii Remote already appears as a game controller in Windows, but there are no buttons / axes. It would be nice if someone would develop a driver you can force that shows the buttons as a standard game controller, while hiding other things like accelerometer data, speaker, etc. The hidden data should still be accessible to apps like GlovePIE in the same way as before. Support for extensions like the Classic Controller, Nunchuk accessory, etc, could be added later or through an extensible software plug-in system.

  2. Hi James

    Thanks for the interesting ideas! I would need to think about the possibility of using alternate VID/PIDs and the code implications. The current VID/PID range is pretty deeply architected in.

    With regards latency - PPJoy adds very little :-) PPJoy tells the DirectX app (game, etc) that it needs to be polled, as soon as the IOTCL call is made the new joystick data is available. (OK, that costs one or two userland to kernel context switches but nothing much more).