How to Modify Sf4 to integrate with your MAME Arcade cabinet.
SF4 only allows one person to use the keyboard as a controller, the 2nd player must use a controller plugged into the computer. This poses a huge problem for thos eof us that have an arcade cabinet and use a keyboard encoder such as an iPac. Here is how to make it work so that you can play 2 players, and have the game start without prompting from your Arcade cabinet front end software.
EDIT: Here is an easier, faster, and more elegant solution, (Tutorial by DeLusional29 from ARCADECONTROLS.COM) THE BEST PART IS THAT THIS WORKS WITH Win7/Vista!
(Old PPJOY method kept for posterity)
Hello all. I just thought I?d share some great news! A member of Capcom-unity forums has posted a patch that allows 2 player keyboard control in Street Fighter IV. PPJOY no longer required! (Thanks to lingpanda for the link) It is based on forum user RacerS? X360 emulator which was later modded by user Viirus. Capcom-unity forum user pkt has based his SFIV patch on these previous works. See here for more info: http://www.capcom-unity.com/ask_capcom/go/thread/view/7371/18347559/SFIV_PC__2_players_on_keyboard&post_num=98#318969416
However, I have made a quick tutorial on how to get it working (for those using PPJOY, please make sure it is not running):
-
Download the patch attached to the end of this post (x360kb.zip). It contains both the dll and ini files that you need. The source files are also included for your convenience.
-
Unzip the file and copy the two files located in the ?dll? folder (x360kb.ini and xinput1_3.dll) into your Street Fighter IV directory next to the executable for the game.
-
Edit the x360kb.ini file to match your keyboard layout (see readme.txt for usage) (sample listed below for default ipac and X-Arcade configs).
3a) IMPORTANT: When editing the x360kb.ini file, the SF layout follows the following sequence:
A=(light kick)
B=(medium kick)
X=(light punch)
Y=(medium punch)
Right Shoulder=(heavy punch)
Right Trigger=(heavy kick)
-
Run Street Fighter IV (no need to configure joysticks in the first option screen)
-
Make sure your Options for the ?Button Config? and ?Keyboard Settings? match exactly to the following. IMPORTANT!: Keyboard setting MUST be set to ?none?
Sample x360kb.ini (for ipac MAME defaults)
Code:
[PAD1]
A=Left Shift
B=Z
X=Left Control
Y=Left Alt
Right Shoulder=Space
Right Trigger=X
D-Pad Up=Up
D-Pad Down=Down
D-Pad Left=Left
D-Pad Right=Right
Back=5
Start=1
[PAD2]
D-Pad Up=R
D-Pad Down=F
D-Pad Left=D
D-Pad Right=G
A=W
B=I
X=A
Y=S
Right Shoulder=Q
Right Trigger=K
Back=6
Start=2
Sample x360kb.ini (for X-Arcade Mode 1 MAME defaults)
Code:
[PAD1]
A=Left Shift
B=Z
X=Left Control
Y=Left Alt
Right Shoulder=Space
Right Trigger=X
D-Pad Up=num8
D-Pad Down=num2
D-Pad Left=num4
D-Pad Right=num6
Back=5
Start=1
[PAD2]
D-Pad Up=R
D-Pad Down=F
D-Pad Left=D
D-Pad Right=G
A=W
B=E
X=A
Y=S
Right Shoulder=Q
Right Trigger=left bracket
Back=6
Start=2
Sample x360kb.ini (for Hotrod SE MAME defaults)
Code:
[Options]
UseInitBeep=1
Log=0
BackgroundMode=1
PadCount=2
[PAD1]
A=Left Shift
B=z
X=Left Control
Y=Left Alt
Right Trigger=x
Right Shoulder=Space
D-Pad Up=num8
D-Pad Down=num2
D-Pad Left=num4
D-Pad Right=num6
Back=3
Start=1
[PAD2]
D-Pad Up=r
D-Pad Down=f
D-Pad Left=d
D-Pad Right=g
A=w
B=e
X=a
Y=s
Right Shoulder=q
Right Trigger=Left Bracket
Back=4
Start=2
Known bugs: The default setting for the ipac has Player 2 button 1 as the letter A. As such, during the menus, the letter A is hard coded to Player 1?s select button in the menus (A = select B = Back). So both players can press the letter A during menus. No biggie in my opinion.
Hope you guys found this tutorial easy. A lot simpler than using PPJOY (which only worked in a 32 bit OS).
All the info here was used with permission from Capcom-unity forum member pkt. Thanks again! I have simply compiled it into an easy to understand, “one-stop” document.
Although this workaround is great, I still encourage everyone to send Capcom a note. I’m sure if they receive enough requests, they cannot ignore re-examining the possibility of a patch.
http://www.xgaming.com/support/questions/107/Street+Fighter+IV+-+PC+Setup
Enjoy!
** IF LINK DOES NOT WORK TRY DOWNLOADING IT HERE:
or here at X-Arcade’s website:
http://www.xgaming.com/service/ServiceFiles/X-SF4.zip
OLD METHOD
What you need:
-An arcade cabinet with a computer inside that is capable of playing SF4 RUNNING WINDOWS XP**
-Front end software already configured
-an encoder board for your Joysticks already configured.
-A copy of Street Fighter IV for the PC
-PPJOY http://www.simtel.net/product.download.php?id=75176
-AutoHotkey http://www.autohotkey.com/download/
-SF4 No-CD crack (I’m not putting a link but it’s available at gamecopyworld)
-a little patience
First, I reconfigured my entire Mapping for my Joysticks in order to have My Weak Kick button be the “A” key, and the Medium kick as the “B” key. The reason is that no matter how you map, or configure, the Windows LIVE menu system still recognizes A keyboard input as “A” on a controller, even after we setup the virtual controllers. and I like having everything be as integrated as possible, seeing my friends online is a cool little addition, even if I can’t send them a message with my joystick 
On the the procedure:
- Install all the latest Video card drivers and CPU optimization software for AMD cpu’s
2)Install SF4, it takes FOREVER.
-
Make sure the game works with just the keyboard, try it out, it’s lame, but we don’t want to get into troubleshooting other problems here. After it is working, I recommend downloading and installing the NO DVD CRACK because the spinup and security check time gets annoying when doing all of this. Read the directions in the download’s README file, and remember to backup the original EXE and Scan the thing with a virus scanner before you use it just to be safe!
-
Install PPJOY
-
After it installs find it on your Start Menu under PARALLEL PORT JOYSTICK and run the CONFIGURE JOYSTICKS tool.
5)Click ADD to add Controller 1, click ADD again to confirm.
-
You should see it listed as PPJOY VIRTUAL JOYSTICK1 in the CONFIGURED JOYSTICKS window. At this time a WINDOWS HAS DETECTED A NEW DEVICE window will pop-up, so have it search automatically for the drivers and it will install them. (if it says they are unsigned, just click CONTINUE ANYWAY and let it install)
-
Repeat step #5 and then Step #6, only this time it will add CONTROLLER 2 and it will be listed as PPJOY VIRTUAL JOYSTICK2
-
Close the PPJOY CONFIGURATION utility. Now you have 2 Virtual Controllers installed.
-
Find PARALLEL PORT JOYSTICK in your start menu again, and run the PPJOYKEY tool.
-
From this screen you need to map out all of the buttons you want for Joystick #1. HINT: BUTTON1 should be the A key, Button2 should be the B key, and BUTTON8 (START in SF4) should be whatever is your 1P button, 3-7 and the directions are up to you and your configuration.
-
After you have the buttons mapped out, click SAVE .INI and find a place to save the file, I recommend just saving it in the SF4 folder. Name it SF4JOY1.INI
(at this time you can start Street Fighter 4 and you should be able to play with your Arcade Joysticks on the 1P side)
-
at the top of the screen there is a drag down box called JOYSTICK DEVICE, click it and drag it down to your VIRTUAL JOYSTICK2
-
Repeat step #10, this time none of the buttons need to be anything specific because only the first player is going to drive the menu system. Repeat Step #11 but this time name the file SF4JOY2.INI and save it in the same folder. Click CLOSE to close the PPJOYKEY tool.
-
Install AUTOHOTKEY
-
after you install it, it will ask if you want it to create a sample script, click YES and it will open your text editor with a sample script in it. Erase all of the text, and copy the following script:
After you copy that text into the editor, Save it in your Street Fighter 4 folder as SF4STARTUP.AHK
Default SF4 directory is C:\PROGRAM FILES\CAPCOM\STREETFIGHTERIV\
What that script does is a number of things necessary for this to be launched smoothly, firstly, it creates a big black screen to hide what it doing in the background, then it opens 2 instances of PPJOY, loads the INI files for the 1P side and 2P side, starts the SF4 Launcher program, then it finally Presses ENTER to start the game. It also is set up so that when you press the ESCAPE command on your keyboard or joystick, it closes the game, PPJOY, and Autohotkey. Groovy huh?
So now test it by double clicking on the SF4STARTUP.AHK file you saved earlier.
If all goes well you should see black for a couple seconds, then the capcom logo and the game will start, and you should be able to play with both Joysticks now. You may have to configure the keys in game, but that’s no biggie.
*IF IT HANGS AT THE BLACK SCREEN SOMETHING IS WRONG IN THE BACKGROUND. You’ll need to press CTRL-ALT-DELETE and access task manager in order to regain control of the machine, and shutdown the HSHHIDE process, and then you should be able to see what the problem is. The most common problem is the path is incorrect to the INI files for PPJOY which will cause it to hang. To help with trouble shooting you can edit the script and comment out the following line by adding a ; to the front so it looks like this
so you can see what’s going on.
That is the hard part, after it is all working you can compile the SF4STARTUP.AHK as an EXE then just go to the control panel of your Front end software and point it to C:\PROGRAM FILES\CAPCOM\STREETFIGHTERIV\SF4STARTUP.EXE and it should launch from your Arcade front end no Problem.
BOOM! have fun folks.