If you know about GlovePIE, then you almost certainly know about the free joystick emulator PPJoy. But it is more than just a joystick emulator, since it is really a joystick driver for plugging PlayStation 2 gamepads into the Parallel Port (aka the Printer Port).
We all thought PPJoy was dead, because Deon Van Der Westhuysen was tired of not getting any postcards and donations that he asked for (oops. Sorry. I did honestly mean to send a postcard, I just never got around to it). But because it wasn’t working on 64 bit operating systems, and had issues on Vista and Windows 7, he decided to continue work on it and to add Vista, Windows 7, and 64 bit support. So now there’s a new version!
I haven’t had a chance to look at the features yet.
Check out his blog at http://ppjoy.blogspot.com/.
He doesn’t have his own web-host, so I hosted the download here: http://glovepie.org/PPJoySetup-0.8.4.5-early-release.exe.
I’m hoping he’ll add a detailed force feedback implementation so we can get back information from the game and send it to a Wii Remote, Dual Shock 3, Novint Falcon, or whatever other force feedback or haptic device we have. I’d also like to be able to use the force feedback output for other purposes, such as keeping track of what is happening in the game, or mapping it to a completely different kind of output.
Actually I could have added force feedback to PPJoy myself, and was thinking of doing so eventually if PPJoy was dead, since you don’t actually need the source code, or any knowledge about writing device drivers. A Force Feedback driver is just some registry entries and a normal user mode DLL. I could even code it in Delphi. But it would have required some thinking about the best way to pass the information back to the application.
I also hope he allows all 128 possible buttons, not just 32, and maybe the velocity, acceleration and force axes (6 of each), since people keep asking me for more buttons and axes. He could also add 2 POV hats. Or maybe it’s harder to make a joystick driver do that, even if DirectInput supports it. I don’t know much about writing joystick drivers.
Another feature that would be good is a way for other programs to tell which Digital is mapped to which Button, and which Analog is mapped to which axis. I’m thinking I might have to just set each digital or analog in turn to a specific value, and read back from the joystick what it was reported as.
BTW, isn’t it nice that we can trade with South Africa (where PPJoy is made) now that they have abolished apartheid? Wouldn’t it be nice if Israel would abolish apartheid too and be welcomed back into the civilised world?

I have been playing n64 games on my laptop, with 64bit windows for about a year now. its great that i can finally start playing with analog instead of mapping the nunchuk onto arrow keys.
hehe i lol’d wen you mentioned israel in your post xD, the way you just slipped that fact in was pure genious x)
Does not installs on Windows 7 64-bit!! it happears an Fatal Error… the druver can not be installed without sign….
Hello Carl (can I call you Carl?),
I’m busy with a (still) private project, making head-tracking software based on the SeeingMachines faceAPI (using a standard webcam, without the Borg-implants needed for Freetrack) and the Freetrack ‘protocol’. We have already got ArmA 2 working (that supports Freetrack) and are beta-testing it.
Now we are also looking for ways to interact with more games and we think GlovePIE is a very nice platform to make the connection with. We could implement PPJoy, but then one would need 3 seperate pieces of software, to do it. Perhaps you would consider making GlovePIE compatible with Freetrack? It’s really easy: the sources are all available , even a C-version.
Thanks in advance…
Regards,
Wim Vriend
Holland
Hi,
Just wanted to thank you for hosting a mirror of the installer; I’ve searched around for this quite a bit, but most other mirrors seemed a bit suspicious (hosted on rapidshare etc.)
Also, here are the file hashes for the version hosted here (in case the file disappears from your server and future visitors will have to rely on dodgy mirrors):
CRC32: 5A77A414
MD5: CA95C71AC7CBA3FACCFD8E5E40EEEF1D
SHA-1: AA6B96AED238E02E6B13501E86B579990BB86F63
Buy:Benicar.Amoxicillin.Buspar.Lipitor.Zetia.Female Pink Viagra.Acomplia.Nymphomax.Lasix.Lipothin.Zocor.SleepWell.Ventolin.Prozac.Advair.Cozaar.Aricept.Female Cialis.Wellbutrin SR.Seroquel….
Beds http://fluxurious77dls1.04FORDPARTS.US/tag/Mattress+pet+Beds/ : Beds…
pet…
performance http://ck5.dmx.ll7.co : 47…
jet…
The installer have a Trojan ¬_¬;;
Every time I try and DL the new ppjoy McaFee tells me there is a trojan in it. Anyone have any idea what is going on?
According to AntiVir, “PPJoySetup-0.8.4.5-early-release.exe” has a virus.
Is it a false positive?
Also, the hashes actually does not match those posted by method139.
there is a trojan in the installer!!!!!!!!!!!!!
Kaspersky says that it has trojan win32.agent.duuj
[...] 3) Install PPJoy. This one is tricky because its drivers are signed with test signatures. This means that in order for the driver to work, you need to tell windows to accept running drivers in test mode. This is accomplished by running the following commands from a command prompt with administrative rights: [...]
When i try to run it, adaware blocks it saying its a trojan downloader??? are you sure this thing is safe? or is adaware just confused?
AVG says that http://glovepie.org/PPJoySetup-0.8.4.5-early-release.exe contains a virus …
WTF? I downloaded the PPjoy crap, and my anti-virus detected it as malware? WTF?
I agree with known. I scanned the installer with AVG before installing and it found 2 trojans. If you are going to download this, you’d best look elsewhere.
This is great…or, rather, it would be if Windows would let me install the damn thing! Since it’s unsigned, it keeps blocking it…I’ve tried everything I can find online…utilities, testmodes, disabling driver related services, registry hacks, SDK bypasses, etc…nothing works! F-ing Micro$hit! If only there was some way to force it in through linux or something!
Yeah, this is really disturbing. I sent it into VirusTotal, and I got more malware hits than I’ve ever seen before. Granted, most of the alarms are coming from antivirus products I’ve not even heard of, or that are known for being twitchy, but it’s still kind of a nervous thought.
And the MD5 signature isn’t matching that from Method139′s post, which is especially odd. ‘Course, I don’t know who Method139 is, so I don’t know if I should trust him either
Here’s the result listing:
CAT-QuickHeal 11.00 2011.09.10 Trojan.Agent.nq
Commtouch 5.3.2.6 2011.09.10 W32/MalwareF.ACETX
DrWeb 5.0.2.03300 2011.09.11 Trojan.DownLoad2.15989
Emsisoft 5.1.0.11 2011.09.10 Dropper.Win32.Dldr.Agent.duuj!A2
F-Prot 4.6.2.117 2011.09.10 W32/MalwareF.ACETX
Fortinet 4.3.370.0 2011.09.10 W32/Agent.DUUJ!tr.dldr
K7AntiVirus 9.112.5114 2011.09.09 Trojan-Downloader
McAfee 5.400.0.1158 2011.09.11 Artemis!EA889891CC34
McAfee-GW-Edition 2010.1D 2011.09.10 Artemis!EA889891CC34
Norman 6.07.11 2011.09.10 W32/Suspicious_Gen2.EGQDV
nProtect 2011-09-10.01 2011.09.10 Trojan-Downloader/W32.Agent.2173165
Rising 23.74.03.03 2011.09.09 Trojan.Win32.Generic.1275CD3D
TrendMicro 9.500.0.1008 2011.09.09 TROJ_GEN.F35CZHO
TrendMicro-HouseCall 9.500.0.1008 2011.09.11 TROJ_GEN.F35CZHO
VBA32 3.12.16.4 2011.09.09 TrojanDownloader.Agent.duuj
VIPRE 10437 2011.09.11 Trojan.Win32.Generic!BT
ViRobot 2011.9.10.4666 2011.09.10 Backdoor.Win32.S.Hupigon.2173165
VirusBuster 14.0.206.1 2011.09.10 Trojan.DL.Agent!gtD1ZNDIAp4
Additional information
MD5 : ea889891cc340c312e8dce2988426785
SHA1 : fabd5893626ded6f461642a60c73a59091436e9a
SHA256: f32d653c7c4b52037c2b5c50cd9695b79abae3dd325cd08fa1a25dd825bf96d6
ssdeep: 49152:+0eQitOAz1UJWvCBNvyXUhQoB3jAV4piN++yk2B9:d0tOHZyXUC23jAV4pX+O9
File size : 2173165 bytes
First seen: 2009-12-03 23:35:16
Last seen : 2011-09-11 03:56:31
Magic: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
TrID:
Win32 Executable MS Visual C++ (generic) (65.2%)[*lb*]Win32 Executable Generic (14.7%)[*lb*]Win32 Dynamic Link Library (generic) (13.1%)[*lb*]Generic Win/DOS Executable (3.4%)[*lb*]DOS Executable Generic (3.4%)
sigcheck:
publisher….: n/a[*lb*]copyright….: n/a[*lb*]product……: n/a[*lb*]description..: n/a[*lb*]original name: n/a[*lb*]internal name: n/a[*lb*]file version.: n/a[*lb*]comments…..: n/a[*lb*]signers……: -[*lb*]signing date.: -[*lb*]verified…..: Unsigned[*lb*]
PEiD: -
packers (F-Prot): NSIS, appended, UTF-8
packers (Kaspersky): DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack, DoomPack
PEInfo: PE structure information
[[ basic data ]]
entrypointaddress: 0x30FA
timedatestamp….: 0x4A2AE2A7 (Sat Jun 06 21:41:59 2009)
machinetype……: 0x14C (Intel I386)
[[ 5 section(s) ]]
name, viradd, virsiz, rawdsiz, ntropy, md5
.text, 0×1000, 0x5C4C, 0x5E00, 6.44, 856b32eb77dfd6fb67f21d6543272da5
.rdata, 0×7000, 0x129C, 0×1400, 5.05, dc77f8a1e6985a4361c55642680ddb4f
.data, 0×9000, 0x25C58, 0×400, 4.8, 7922d4ce117d7d5b3ac2cffe4b0b5e4f
.ndata, 0x2F000, 0×9000, 0×0, 0.0, d41d8cd98f00b204e9800998ecf8427e
.rsrc, 0×38000, 0×4130, 0×4200, 2.07, 58a83b15075402f325febf830d4f177a
[[ 8 import(s) ]]
advapi32.dll: RegQueryValueExA, RegSetValueExA, RegEnumKeyA, RegEnumValueA, RegOpenKeyExA, RegDeleteKeyA, RegDeleteValueA, RegCloseKey, RegCreateKeyExA
comctl32.dll: ImageList_AddMasked, ImageList_Destroy, -, ImageList_Create
gdi32.dll: SetBkColor, GetDeviceCaps, DeleteObject, CreateBrushIndirect, CreateFontIndirectA, SetBkMode, SetTextColor, SelectObject
kernel32.dll: CompareFileTime, SearchPathA, GetShortPathNameA, GetFullPathNameA, MoveFileA, SetCurrentDirectoryA, GetFileAttributesA, GetLastError, CreateDirectoryA, SetFileAttributesA, Sleep, GetTickCount, GetFileSize, GetModuleFileNameA, GetCurrentProcess, CopyFileA, ExitProcess, GetWindowsDirectoryA, SetFileTime, GetCommandLineA, SetErrorMode, LoadLibraryA, lstrcpynA, GetDiskFreeSpaceA, GlobalUnlock, GlobalLock, CreateThread, CreateProcessA, RemoveDirectoryA, CreateFileA, GetTempFileNameA, lstrlenA, lstrcatA, GetSystemDirectoryA, GetVersion, CloseHandle, lstrcmpiA, lstrcmpA, ExpandEnvironmentStringsA, GlobalFree, GlobalAlloc, WaitForSingleObject, GetExitCodeProcess, GetModuleHandleA, LoadLibraryExA, GetProcAddress, FreeLibrary, MultiByteToWideChar, WritePrivateProfileStringA, GetPrivateProfileStringA, WriteFile, ReadFile, MulDiv, SetFilePointer, FindClose, FindNextFileA, FindFirstFileA, DeleteFileA, GetTempPathA
ole32.dll: CoTaskMemFree, OleInitialize, OleUninitialize, CoCreateInstance
shell32.dll: SHGetPathFromIDListA, SHBrowseForFolderA, SHGetFileInfoA, ShellExecuteA, SHFileOperationA, SHGetSpecialFolderLocation
user32.dll: EndDialog, ScreenToClient, GetWindowRect, EnableMenuItem, GetSystemMenu, SetClassLongA, IsWindowEnabled, SetWindowPos, GetSysColor, GetWindowLongA, SetCursor, LoadCursorA, CheckDlgButton, GetMessagePos, LoadBitmapA, CallWindowProcA, IsWindowVisible, CloseClipboard, SetClipboardData, EmptyClipboard, RegisterClassA, TrackPopupMenu, AppendMenuA, CreatePopupMenu, GetSystemMetrics, SetDlgItemTextA, GetDlgItemTextA, MessageBoxIndirectA, CharPrevA, DispatchMessageA, PeekMessageA, DestroyWindow, CreateDialogParamA, SetTimer, SetWindowTextA, PostQuitMessage, SetForegroundWindow, wsprintfA, SendMessageTimeoutA, FindWindowExA, SystemParametersInfoA, CreateWindowExA, GetClassInfoA, DialogBoxParamA, CharNextA, OpenClipboard, ExitWindowsEx, IsWindow, GetDlgItem, SetWindowLongA, LoadImageA, GetDC, EnableWindow, InvalidateRect, SendMessageA, DefWindowProcA, BeginPaint, GetClientRect, FillRect, DrawTextA, EndPaint, ShowWindow
version.dll: GetFileVersionInfoSizeA, GetFileVersionInfoA, VerQueryValueA
ThreatExpert:
http://www.threatexpert.com/report.aspx?md5=ea889891cc340c312e8dce2988426785
Androguard:
-
ExifTool:
file metadata[*lb*]CodeSize: 24064[*lb*]EntryPoint: 0x30fa[*lb*]FileSize: 2.1 MB[*lb*]FileType: Win32 EXE[*lb*]ImageVersion: 6.1[*lb*]InitializedDataSize: 164864[*lb*]LinkerVersion: 6.0[*lb*]MIMEType: application/octet-stream[*lb*]MachineType: Intel 386 or later, and compatibles[*lb*]OSVersion: 4.0[*lb*]PEType: PE32[*lb*]Subsystem: Windows GUI[*lb*]SubsystemVersion: 4.0[*lb*]TimeStamp: 2009:06:06 23:41:59+02:00[*lb*]UninitializedDataSize: 1024[*lb*]
Symantec reputation:Suspicious.Insight
VT Community
User: CRDF
Reputation: 10143 credits
Comment date: 2011-02-04 02:00:01 (UTC)
The file is a malware known as “CaM.Trojan.DownLoad2.Win32.PEx.C.91073854829″. – 36905 -
Tags: malware, agent, 2173165, ea889891cc34
actually .. i downloaded it and try to setup but say something like that (verify your 64-bit system) >but setup continue > after finished install a MSG fatal error appeared say cant open the PPJoy device driver.please install the PPJoyBus.sys first
bg4m3r:
you can search “PPJoy 64 bit Windows 7 – Old Version !” on Youtube,
or check this: http://www.youtube.com/watch?v=JjVaLi2c74I
hope it helps.
Hey BLOGGER, you fucking SUCK.
Infected my pc wqith a fucking virus but i can’t imnagine HOW LOW your IQ MUST BE.
GO DIE