Gonna try and do my best to make it understandable for everyone, here we go 
1. Install PPjoy
2. Go to start -> all programs -> Parallel Port Joystick -> Click "Configure Joysticks"
3. Add a virtual joystick. You will notice a new hardware window popping up, choose option "No, not this time" when it asks to connect to window update.
4. In the next window, select the option "Install the software automaticly".
5. A window will pop up about driver signing, click "continue anyway".
6. Select the virtual joystick you just created, and click "mapping"
7. In the next window, choose the option "Set a custom mapping for this controller" and click "next"
8. In the next window I set the options to "0 Axes", "16 Buttons" and "0 POV hats", click "next"
9. Next window is for axes, we didn't configure any... click "next"
10. Here you add "Digital 0" in "Button 1" window, "Digital 1" in "Button 2" window. Keep going like that until you mapped all 16 buttons. Click "next" and "finish".
11. Repeat this process if you need to configure 2nd player controls, otherwise click "done"
12. Go to start -> all programs -> Parallel Port Joystick -> Click "PPJoyKey"
13. Select "Virtual Joystick 1" in the dropdown box, and start mapping the 16 buttons for "Virtual Joystick 1" to the keyboard. Click "Save .ini" and name it "controller1" when you are done. Keep in mind that some buttons on the keyboard can't be used, because the menu controls in SFIV PC can't be changed. Consult your game manual to find out wich ones I'm talking about.
14. If you need to map buttons for "Virtual Joystick 2", open second instance of "PPJoyKey" and repeat previous step. Don't forget to change the filename to "controller2" when saving the ini.
15. Open the SFIV pc launcher, and click controller settings. You'll notice that the virtual joysticks are selectable in the menu. Cross reference it to the data you just entered in "PPJoyKey" and map the controls in the SFIV PC launcher.
16. All that is left now, is map the keyboard buttons to the controller you want to use. Or use the keyboard buttons and play with 2 people on the keyboard.
17. When you want to play, open "PPJoyKey", select "Virtual Joystick 1" and load "controller1" file. Open second instance of "PPJoyKey" for "Virtual Joystick 2" and load "controller2" file, leave them both running on the taskbar when playing.
18. Start the game, go into options and choose "Assign 1P device". Press one of the keyboard buttons mapped to "Virtual Joystick 1", or on the controller you use. This will assign 1P to Joystick 1, and it will automaticly assign 2P to Joystick 2.
19. Run to the fridge and get a cold beer, cause you earned it!!
20. Have hours of fun with your custom controller!