img img
BASICS:
All of these program work on the basic concept of mapping keyboard and mouse signals to the gamepad. So in that way the game still thinks you are playing with the keyboard and mouse, but you are actually using your gamepad to emulate the keyboard/mouse instead. It works pretty well, but some games it works better for than others. Some of my games have profiles that feel exactly the same as they do when playing on my actual Xbox 360 console, so don't knock it until you try it.

Double Commands:
Let's say you want to have a button do one thing when you tap the button and do something else when you hold it down... you can setup your controller to do that with either Xpadder or PGP (but J2K cannot do this). This is really useful when you are mapping a PC game to a gamepad because a lot of the time these games have more commands than you have buttons on your controller. So for example you can tap a particular button to "reload" or you can hold that same button instead for it to "change fire mode". Another thing I like to do is make it so that tapping a button will "crouch" but holding that button will "prone" instead. PGP also has a version of these double commands that uses a single or double tap... so instead of holding a button to do something else, you can set it up to be pressed twice quickly. There is a slight delay on this while it waits to see if you press it twice, but it's pretty quick and can be adjusted for how long it waits.

Shift Buttons:
Sort of like the double commands, a shift button is where you hold one button to change the assignments on all the other buttons. This really is needed when you are trying to play an MMO like Guild Wars 2 because there are just tons of commands to map to the controller. So you might make your left trigger a shift button and then when you hold that left trigger the A, B, X, Y buttons will all change their assignments from what they were when you weren't holding down the left trigger. So you might have Skill 1-4 on A, B, X, Y buttons normally but then when you hold the left trigger shift button it will change them to Skill 5-8. Both Xpadder and PGP have this feature, but I think you can only setup 1 of these in Xpadder while in PGP you can setup 4 of them (not that you usually need 4, that would get kind of complicated).

Aim Assistance:
Both Xpadder and PGP have a feature for aim assistance, this basically makes it so when you hold down a particular button that it will slow down the joystick speed so it makes it easier to aim. This is very important because otherwise it can be pretty tricky to aim properly in FPS games. Xpadder lets you adjust the speed that it slows down, while I haven't figured out how to do that in PGP yet but it's probably somewhere that I just haven't found it yet. It's called "Sniper Assist" in PGP and "Aim Assist" in Xpadder, but it's the same thing.

Auto-Detection:
The only of these 3 programs that has auto-detection for your games is PGP. This is really useful if you are like me and have your games setup to launch through Steam Big Picture. You can use the Steam Big Picture interface as normal and no profile will be active until you start your game and then PGP will detect the game that you are started and automatically apply the profile for that game. So if you are playing a game without controller support on Steam Big Picture, then PGP will automatically kick in and apply the profile for that game so that it will allow you to use your gamepad. When you quit the game, the profile is stopped automatically too. This is a very useful feature!

Xbox 360 Guide Button:
For a long time I wanted to use the Xbox 360 controller's so-called "guide" button in the middle of the controller... and for a long time I couldn't understand why this was not possible but I figured Microsoft blocked it or something. This was finally possible after a recent update to PGP, so that gives you a whole extra button to assign in your profile. Hopefully Xpadder will add this feature too eventually.

Xbox 360 Emulator:
There is a feature in PGP that allows you to emulate an Xbox 360 controller if you are using an older controller on a game that only supports Xbox 360 and newer "xinput" controllers. I did try this with my Logitech Rumblepad2 and it worked great, but I have a real Xbox 360 controller which is my main controller, so I haven't used this feature much but I'm sure it would be very helpful to people with older controllers.

Wiimote Support:
I don't have a Wiimote, but I noticed that PGP does have support for using the Wiimote so I thought I'd mention that for anyone reading this that is interested in that sort of thing.

Command "Extras"
Sometimes you might want to get creative with your profile and have it so that pressing a button will launch an exe or a batch file or something... you can do this in PGP, it's sort of like AutoHotKey in that way. There are a bunch of other things you can do like play sound effects and stuff. I'm not sure how useful this other stuff usually is though, but it's nice it's there I guess.

Community Profiles:
Because a lot of people don't want to have to make their own profiles, it's nice to know that both Xpadder and PGP have large communities of profile makers. It seems that PGP has a larger community with more profiles, but that could be because it's been around longer than Xpadder. It's very hard to find any profiles for Joy2Key, so if you are going to use it then be prepared to make your own profiles.

Ease of use:
While I really like all the features that PGP has, it's kind of confusing to learn... luckily you can usually just download someone else's profile and don't really need to make your own profiles, but if you are trying to make your own profiles, it can be kind of tricky to figure out with all the different screens. I suppose it's because there are so many features, but still I wish it were a little more user friendly. Xpadder on the other hand is pretty simple to figure out if you want to make your own profiles. It just displays a keyboard for you and you can select what you want to map to which button.

Price:
One nice thing about Xpadder is that it's cheaper than PGP, but Joy2Key is actually free so that's even nicer yet. Although I guess you get what you pay for since J2K has very little features compared to Xpadder and PGP, but if you are cheap then Joy2Key is the way to go... it might be worth at least trying it out..

Support:
There is an email address for Joy2Key, but I never got a response when I tried it. Both Xpadder and PGP have community forums where you can get some help, there are a lot of moderators on the PGP forum that usually answer questions pretty quickly (which is good if you are making your own PGP profile because you will probably have questions, lol). You can also email them which I have done a few times and the main developer named Rob will reply to you. It's nice to be able to chat with the actual developer of the software.