Sunday, March 21, 2010

About signed drivers...

A lot of the problems/issues around PPJoy have centred around driver signing (PPJoy uses test signing certificates which in turn requires Windows to be in Test Mode).

So why not simply sign PPJoy with the proper "real" certificates? Simple answer - they cost a lot of money: see $500 per year is downright nasty.

If enough people chip in with donations I will release a properly signed version of PPJoy, possibly as "PPJoyPro". I've been toying with the idea of a non-free PPJoyPro with some extra features (suggestions?)

Unfortunately PayPal does not allow South Africans to receive money - only send money through PayPal. Which means I need to find another way to set up a donate button or similar :-(

And comments/ideas?


  1. Omfg 500 dollars a year?!
    every year?
    I guess I nonfree version wouldn't be a bad idea. Your drivers are pretty good quality, and i think your work should get you something. Would you have a version that is free along with a nonfree version? and what sort of extra features are you thinking about implementing?
    sry i didnt contribute any ideas on donations, but i'm not sure how myself.
    Anyways keep up the good work man! =]

  2. I found which may be of interest - $40 for 2 years sounds a bit less nasty than $500 per year..?

  3. Thanks Matt. Unfortunately Microsoft is very picky about the certificates used for signing kernel mode drivers - only six CAs are supported (see - I think this disqualifies StartCom/StartSSL :-(

  4. Ah - I wasn't aware of the different requirements for drivers, confirms it's not possible "If you have kernel mode driver code you have written yourself, you will need an SPC, so startcom cannot be used for that.".. :-(

  5. Well I will donate for a Pro version for sure, and I know others that will, too.
    For extra-features in PPJoyJoy.exe I'd suggest:
    -more buttons (32 or even 64)
    -more sliders (4-5 in total)
    -more dials (3 at least)
    -support of POV hats

    this would make my G940 fully functional in MWLL (
    I already spread the word about your tool and your plans for the license/signing in their wiki (


  6. I agree with Poldi on this. I haven't gotten PPJoy to install/work under Win7 64bit Home edition because of signing issues. And I also want to get the G940 working for the same reason.

    I would 'buy' a professional version for sure. PayPal not working is a problem though. No idea yet - but there has to be a work-around.

    Kirin aka QiLin

  7. I could pay you $500.00 if you could get a capture button working as a joystick button #1 with a webcam/intra-oral camera.

    Most seem to use a Sonix chipset but others use an Empia..

    I would prefer this to work with Sonix. I opened a job on elance yesterday, but I would prefer you to do it, as I stated in the bid I would prefer it too work with ppjoy, but it doesnt have too. I know its possible because someone already did it with your software.

    I could pay you and sell it or you could sell it. Dont care. Dentists love these cheap cameras, then get mad when they capture wont work.

    Just need Sonix SDK for API Calls?

  8. about receiving money in SA, try this:

    If Mr. Shafer would pay the whole amount I'm sure people would like to help compensating his spendings ;)

  9. @Justin: please mail me at for offline discussion

    @Jörg: Thank you for the suggestions. Curiosity shake, what would you use the extra sliders/dials for? Flight sims? I already have a private build which supports 32 buttons which I can probably increase to a max of 128 :-)

    @All: what kind of activitation / copy protection (if any) would you consider reasonable on a pro version?

  10. I would use it mainly for Mechwarrior (maybe you like it too, posted their website before), although at the moment I couldn't use all those extra functions in there - I'm just thinking other people with the G940 stick might want to map all its functions with PPJoy. Most flight sims I have support multiple joysticks anyways.

    I don't know how many activations you would have to deal with, but maybe you could just send out serials by email on registering/payment.

    If Mr. Shafer and you team up for that dental camera thing you might do a "Dentists only" version to generate the income for a signature and you could still provide a free (or at least still really cheap) tool for casual gamers like me :)

  11. Oh, and in version seems to be a bug regarding the POV1:
    In the joystick.exe window and in games I get a constant output of +17999 on POV1.

  12. i cant download the version, the link is dead (realy, check the comments in older post!).

  13. Randomish comment. Despite having used PPJoy on and off for years I'd never clicked that you were South African.

    Anyway, FNB are bringing PayPal to SA. Unfortunately I think it's for FNB customers only but maybe they'll let the other banks piggy back. I'm also not sure when they're introducing it but I'm sure a bit of googling would turn it up. Never-the-less there may be hope if you want to go the PayPal route.

  14. @Andrew: Thanks! I also saw the announcement yesterday - this is really great news. I'll definitely open an FNB account and set up the PayPal link. Welcome to the 21st Century :-)

    @Jorg: I'll check out the POV functionality when I get a chance.

  15. Hi Deon!

    I've used a long time ago the PPJoy with a RX transmitter and an old PC. But now I bought a newer one and it doesn't have a parallel port, so I bought too a Parallel USB controller/conversor.

    But, the problem is: It doesn't have an IRQ assigned to it, so PPJoy cannot read it. It's possible to assign an IRQ to it or do PPJoy read it without an IRQ assigned to it?

    Thank you very much.
    Greetins from Brasil! :D

  16. Hi,
    What about other online send/receive money providers?
    Moneybookers , ecocard come to mind for example. I would buy ppjoy just as I would buy 20$ racing game on steam (just to find out that it has no mouse driving, AGAIN).
    Btw I got the driver installed with "manual" installation walkthrough someone posted earlier, somewhere.
    Thx for your work.

  17. @Bernardo
    PPjoy doesn't work with the USB Parallel ports. You will need a PCI extention card with a parallel port on it if you want PPjoy to work.

  18. @Ganoderma
    Hmm, I was afraid of that...
    Anyway, thank you very much by the help!

    See ya!

  19. HI,

    I've written a DLL to communicate with PPJoy Virtual Joystick interface, and i'm missing a rumble feature, or even force feedback.

    About pro/basic version:
    - Basic: just control joystick with keyboard/mouse, basic settings available (like just button mapping)
    - Pro: control joystick with keyboard/mouse/external device/external APP or DLL, advanced settings (like button mapping, port config, ini import/export, ax config)

    and if enough people donate, sign the pro version driver!

  20. Is there a way to interact with PPJoy programmatically (as GlovePie does)?
    I would like to write an utility to map a WiiController to a PPJoy Virtual Joystic.

  21. What's so hard about disabling driver signing?

    Signing offers little protection anyway, bad drivers are still getting through.

  22. Luca,

    Watch the IOCTL sample in the package (Docs\Diagrams\Virtual\ i've made WeeWheel wich does communicate with a DLL to ppjoy. you need experienced knowledge of c++ programming.

  23. Deon,

    Why is PPJoyJoy limited to 16 buttons? PPJoy supports 32 yet PPJoyJoy is limited to those 16.

    Is there a way you could release a version that allows you to take advantage of all 32? 16 buttons is far too limiting!

  24. plz send e-mail to me with the file ppjoy0846testrelease

    vary thx man

  25. @DeonVDW:well you asked "what kind of activitation / copy protection (if any) would you consider reasonable on a pro version?"

    I'm not completely on roll with the whole pro idea but if that makes you enogh money to sign the drivers than I think you should make only one installer to pick which version they want to install for the "pro" version they would have to pay you to send them an email that has a verification key
    that they would have to enter while in the installation process (so they can't hack it by modifeing some installation files before the first run)and after puting the key in then they should have to put their email adress in so that you can make sure that they actualy paid for it.

    I mean if that isn't too complicated for you to do.

    In all of the features you should have something stupid to convince people like automatic updating and make it more user friendly.BTW if you do this or some thing similar you should have something that checks that they didn't just rip you of or something(if they manage it...).

    If you can't do some of this stuff just do the one you can ,don't ask me!

    if you do some of this stuff please tell me at


  26. @Luca

    GlovePIE works together with PPJoy so you can use GlovePIE to make the nunchuck a virtual joystick. You should be able to use buttons also, but you can map those to keyboard buttons also. I never had any trouble with it this way. (Using a Wiimote to play N64 games on the computer, full range joystick is needed to play most games properly)

  27. @Ganoderma
    I want to bypass GlovePIE and write a custom app which connects to the Wiimote and emulates a joypad (it will be mapped as a steering wheel).

    @Danny Daemen
    I'm checking the example. Thanks!
    I worked on usb and device driver stuff in linux and win environments, so I'll try.

  28. Thank you for your efforts, PPjoy software is great.Couldn't find any better place than this to ask a question about PPjoy - is it possible to export virtual joystick configuration & mapping for further use on other PC, for example? Thanks!

  29. hey man, i wanna thank you, your driver is awsome, it worked for me today, i couldnt believe to play dirt 2 with a wiimote as a stearing weel, I AM ONE OF MUCH PEOPLE THAT WILL PAY 10 BUCKS OR SOMETHING LIKE THAT FOR THIS DRIVERS, SO IT COULD BE SIGNED, I AM A BIT AFFRAID TO PLAY ONLINE WITH TEST MODE ON,

    i installed the last 8.4.6 version, but had trouble turning off test mode, how can i do this?

    i did some research and find out about driver signature overwriter software, and autosigning drivers methods for your own computer --- what you heard or know about this??? will this be possible????

    i think this could a major advance for videogames and this is like something the world really needs to complete the fusion of nice gamepads into pc games wich blind bigcorps seem to dont understand the potential of giving support for this kind of stuff

    thanks a lot from colombia!!

  30. 要求適合自己的愛情方式,是會得到更多,還是會錯過一個真正愛你的人。.................................................................


    (the above link was created using a free rapidshare account and will disable itself after 10 downloads, I'll re-upload and repost at various times)

    a gui based tool I've created for quickly enabling and disabling windows 7 test mode.
    I've created this tool because I like to use my WiiMote to play Flight Simulator which requires me to use PPJoy, I didn't much like the fact that the test mode logo remained at the lower right corner and wanted to get rid of it whenever I wanted (restart still required).
    This tool runs 2 commands when invoked:
    "bcdedit -set nointegritychecks ON" (or OFF)
    "bcdedit -set testsigning ON" (or OFF)

    Not that it makes sense to run it on a 32 bit machine, but if you try to do so, it will not run.

    As with any .exe file, I encourage you to run whichever virus scan you choose to run.

  32. here's a more permanent link.
    (Rapidshare seems to be stuck in a stupid loop)

  33. This comment has been removed by a blog administrator.

  34. Deon,

    I have not yet changed to Windows 7 64 or 32 bit from XP. I am using the old PPJoy at present. Will the old version of Joyjoy (joystick mixer which I need for Red Baron 3d) work with Win7 64 or 32 bit? Are you likely to be able to put out a version which will work with Win7??

    PPJoy has enabled me to keep using my old Red Baron 3D and I would like to keep that going.

    Many, many thanks!

    PS Do you still do postcards?? :)

  35. Hello, i have a stupid question. I'm wondering, maybe you could write a driver to gameport. I have a joystick with gameport but, windows 7 doesn't support this port. :/

  36. Systemy,

    I have given up on Gameport. Looking at all of the information out there, including from gurus such as Sticky from Stickworks (who is also a moderator at CH forums), gameports work very poorly on fast, modern computers, with the sticks poorly recognized or intermittently recognized only. (That was my experience.)

    Convert your joystick to USB or buy a new one. (See my website for links on how to start the conversion - - and go to the joystick page.


  37. Dear Deon.

    First of all, thank you very much for this marvelous driver... it's been my salvation regarding controllers in PC (I'm using SNES and Genesis with it and they're working fine).

    My doubt is: can I use up to 6 Genesis controllers (with NTPadXP interface)simultaneously (multiplayer games)?

    Obviously, I'd insert two LPTs more... but what I'm meaning is: Is PPJoy compatible or useful with 3 LPTs? LPT1, LPT2 and LPT3?

    If everything is ok, I'd insert 2 controllers in LPT1, 2 controllers in LPT2 and the last two ones in LPT3!

    Just let me know if it's possible and if this is even possible for the other controllers and interfaces too (SNES, Amiga, N64, etc)!

    Thanks in advance!


    Goro's Lair

  38. Hi Goro's Lair

    PPJoy will handle up to 16 joysticks, spread across however many LPT ports are installed in your system. You just need to make sure Windows recognize them. ANd of course, USB parallel ports won't work - only motherboard and PCI/PCIe based.

    Also watch out for a (small) bug in PPJoy: the 6 button version of this pad is not reliably read and you might see ghost button presses. Might fix that one some day (but requires lots of internal changes to sort out a timing issue)

  39. 培養健全孩子最好的方法是父母先成為健全的人。......................................................................

  40. Dear Deon.

    Thank you very, very much for the info!

    I've been using PPJoy since version 0.83 and I've become very impressed with it, once it really made me able to use my favorite gamepad in the computer: Super NES ones!

    Well, I've got three Sega Genesis controllers (6 buttons) and it has been happening exactly you've writen above: ghost buttons or, some of them aren't recognized (and, the funny thing is: it was read before... LOL). I'd really appreciate if you could fix it... by the way, does it happen with the 3 buttons controllers too?

    I'm a kind of "BETA TESTER" and below is the list of emulators that work fine with PPJoy SNES interface (5 players - PPJoy 0.846) - Systems-> Windows XP (SP2) and Windows Vista:

    OK -> 100% working, without failures

    Nestopia (NES/Famicom) -> OK
    FCEUltra (NES/Famicom) -> OK
    Kega Fusion (Genesis) -> OK
    zsnes (Super NES) -> OK
    Snes9X (Super NES) -> OK
    MAME32K_0.64 and MAME32++0.119 (Arcades) -> OK
    WinKawaks (Arcades) -> OK
    Stella (Atari 2600) -> OK
    Magic Engine (PC-Engine/Turbografx-16) -> OK
    VBALink (GB, GBC and GBA) -> OK
    HANDY (Atari Lynx) -> NOT COMPATIBLE(only with the usage of JoyToKey)

    Well, for the Sega Genesis 6 Buttons Controllers, it has been appearing as it was mad /crazy (LOL)! Sometimes is very well recognized and work with an 100% perfection, but after restart the PC, the controllers simply stop to work or, when I move the axis, the buttons 4, 5, 6 are read too (at the same moment I move the d-pad).

    Nestopia (NES/Famicom) -> Doesn't work (for to use it, it's necessary to install interface for 3 buttons and use the JoyToKey). When the 6 buttons conditions is installed, directions are recognized at the same time of buttons, 4, 5, 6, 7, etc

    FCEUltra (NES/Famicom) -> NOT TESTE YET
    Kega Fusion (Genesis) -> work with the condition for 3 buttons (6 buttons, I cannot map the axis and buttons properly). And it works for some time, after restart the PC... nothing keeps normal... controllers stop to work.

    MAME32K_0.64 and MAME32++0.119 (Arcades) -> Works for some time, later on, reads axis and buttons at the same time (for 6 buttons and 3 buttons conditions)!

    WinKawaks (Arcades) -> NOT TESTED YET
    Stella (Atari 2600) -> NOT TESTED YET
    Magic Engine (PC-Engine/Turbografx-16) -> NOT TESTED YET
    HANDY (Atari Lynx) -> NOT TESTED YET

    Well, I really hope to help you with tests or things like and, once again thank you very much for this driver, the only one to me!

    Remarks: I stopped to use PS2/PS1 controllers through USB adapter after to know your work! Now I'm happy again and playing with my favorite controller!

    Man, you're great!

    Have a nice and wonderful day!


  41. Hi Deon,

    Just wanted to say that PPJoy is a great tool which I've been using for many years. I developed a little utility called TPJoy that lets you use the "Trackpoint" (mini joystick in the middle of the keyboard that normally only controls the mouse) as real joystick on Thinkpads and other similar laptops. The utility relies on PPJoy.

    I published my work with source code in this forum:
    I just found out from that forum that this project is not dead and there's a new version available.

  42. Hi Deon,

    PPJoy is a very usefull app.
    What are your current plan regarding the signed version?
    If you need to raise funds, you may try a Paypal donate link or maybe a pre-purchase form.
    I'm sure we'd be many to pay for a signed version.

  43. Hi,
    I love PPJOY, it makes my NESPC authentic :) I was wondering if its possible to use the light gun with PPJOY?

  44. @Buzz: I am thinking hard about it! :-)

    @James: Glad you like PPJoy. Unfortunately no possibility of using the lightgun with PPJoy - lightguns require special hardware in the video card.

    Even if PPJoy got a vertical blank interrupt from the video card (start of the frame) and timed the interval until the light gun is triggered it is likely to be inaccurate due to interrupt latency?! Oh, and I don't think lightguns can work with LCD - no scanline to detect.

  45. hi. i've been trying to use my ps2 controller with my arduino with the serial stream program, using the generic protocol. I can't send more than 8 buttons as every byte after the 2nd is interpreted as analog. am I missing something?

    also, how can I make my own dll for ppjoydll. every attempt with devcpp ended with "error 127 getting joyGetPosEx() entry", even after suppling data to the pointer and returning success int for both functions.
    thank you

  46. @Aki: The FMS serial protocol specifically only allows 8 buttons.

    Using PPJoyDLL (SmartPropo DLL mode) requires your DLL to export joyGetPosEx() and joyGetDevCapsA() functions with the same prototype as the standard Windows functions with the same names. The SmartPropo interface only handles axes, not buttons.

    Other option would be to use the "Callback DLL interface" mode. Your DLL should export two functions:

    void Cleanup (void);
    - Will be called when PPJoyDLL exits

    int InitDLL (CallbackFunc *Ptr);
    - Will be called when PPJoyDLL loads your DLL
    - The function should return 1 on success, 0 on failure.
    - Ptr is a pointer to the callback function in PPJoyDLL to call when you want to update joystick data.

    The callback function in PPJoyDLL has this prototype:

    int AsyncDLLCallback (int NumAnalog, int *AnalogVals, int AnalogMin, int AnalogMax, int NumDigital, char *DigitalVals);
    - return value is always 1

    Also, consider just using the IOCTL interface directly :-)

  47. Hello, I have a Playstation racing wheel, and I was able to find an adapter so I could plug it in my PC. However, it is detected as a gamepad.
    It does the trick in most games, but in some others gamepads work differently than racing wheels, since proper racing wheels are allowed to be configured options like dead zones, different kinds of sensitivity, etc.

    I read a lot about PPJoy in the web, so I was wondering if this software would let me simulate a proper racing wheel from what is detected as a generic controller?

    Thanks in advance.

  48. Hi Deon!

    I know you already answered me one of my questions and, under these conditions, I could take off some doubts... but I'd like to know the following:

    1 - Does Genesis 6 buttons controllers work really fine (all the 8 buttons, ABCXYZ, Start and Mode), taking off the small bug of ghost buttons pressed (that's only make reference to a small bug of pressed or not) or the ghosts buttons don't really work properly (when I'm playing with them)?

    2 - When do you intend to fix that bug? Have you got a prevision?

    Thanks in advance and have a great and wonderful day! :-)

    A cuddle to you!

    Goro's Lair

  49. I'm having severe issues. It worked last time I had Windows 7 X64 installed, but now it's giving me Error Code 50 for the drivers (can't apply all propeties for this device). It first shows up as "unknown device" in the device manager, then gives me the error upon installation. What'd I do wrong?

  50. Hi Deon, that's me once again!

    I've got sure you already know all this info, but I hope it can be useful to you anyway for fixing that problem of Genesis 6 buttons controller.

    Here's a link with a very interesting info about the interface of Genesis 6 buttons controller:

    Thanks for all your efforts! You're great, buddy!


  51. This comment has been removed by the author.

  52. Got this error
    PPJoySetup- version
    Win Server 2008R2
    UAC off
    BCDEDIT done
    But testmode mark dont show.

  53. Deon,

    Any luck with the donations for a signed x64 version of PPJoy? I'm in for a chunk if you need it. It's an awesome product, but I can't give up Windows 7 x64.



  54. wow! I just found your site, what a great ideea! I wanted to try this in GRID but the download link doesn't work. Can anybody post here a new download link please. Megaupload is preffered.

  55. I found a 2004 version here:

  56. A serious download link by the author would be nice, since all the files of that I find on the web are badly infected with malware.

  57. I still can't get the drivers to install on my vista 64bit PC. I have tried everything. I installed in test mode, ran the installer and cmd as administrator, I've even copied and pasted the .sys files into System32/Drivers...nothing.

    If anyone has any kind of solution to get past this stupid signing issue, please email me at

    I really want to play pikmin 2 on my PC. =[

  58. The ReactOS Foundation has a VeriSign code signing certificate that can be used to sign 64bit drivers for Windows. The Foundation is prepared to assist other open source projects that wish to distribute 64bit drivers.

  59. I can generate paypal donation button for you and forward received money from my bank account in the Czech Republic :-D

  60. Hey Deon. I utilize your PPJoy driver for my PPJoyZ800 freeware. I think we spoke a little in the past (a number of years ago now I'm sure). Have you investigated Google Checkout as a Paypal alternative?

  61. What if someone pays for it in full and then setups a PP donation until that 500$ is repaid?

    I wouldn't mind pitching in a 100$ or 200$ to make this work in Win7 64bit.

    We should e-mail to discuss this.

  62. I too vouch for signed drivers through the ReactOS Foundation. More people seriously need to know about it!

  63. Is there any new status or is the development of ppjoy death? I would like to here some good news after one year of waitening.

  64. Hey you might be able to use Flattr in leu of a "donate" button... check them out, honestly I love the system.

  65. I bet if you start a Kickstarter to get the drivers signed you could get a few years out of it. All you'd need to do is get some attention on sites like reddit and neogaf.


    They offer free certificates for open source.

    These guys offer SSL certs for Open Source Projects, their root certificates are in Microsofts approved list. It may be worth checking to see if the Certs they issue you would be signed by the Microsoft supported root certs.