Changes:
v1.4
- Added support for the Steam version of The Pinball Arcade (FarSight Studios).
- Prepared for backglass on second screen support for Pinball Arcade. Install in Steam\Images directory like the Pinball FX2 version. Needs appkiller.exe to work. Thanks again, BigBoss!
v1.3
- Added support for Better Arcade Mode. Thanks to Rafal/ravarcade for this piece of awesomeness.
fpexetables.txt for different FP.exe names is supported. BAM executable must be [Future Pinball Directory]\BAM\FPLoader.exe
- Added support for Future DMD. Thanks to gauntletlover for creating it and to Marco for making it all possible by developing fp-intercept.
v1.2
- Removed the -silent parameter for steam.exe. It seems to make a few problems if steam thinks it's in offline mode.
- Beautified things a bit. Thanks, Zarquon!
- Added an PinballFX2.fpt file to the attachment.
v1.1
- Remapped 5 key to tab. Please change your key binding for ViewMode in the in-game keyboard settings to tab. This allows you to use your coin button to switch between camera modes and for menu navigation.
- Got rid of display changer. Pinball FX2 now supports screen rotation in the options, so we don't need this workaround anymore.
- Prepared for Backglass on 2nd screen support. For it to work you need appkiller.exe in your steam\images directory. Thanks, BigBoss!
Note: Installing 2nd screen support for Pinball FX2 and/or Pinball Arcade isn't required for this mod to work.
This mod is based on Bigboss's Slamit Bigscore support routine.
This mod supports the official/licensed versions of Pinball Arcade and Pinball FX2 only. As far as I know the Steam Store is currently the only legal source for both products. If you need help to run an unlicensed/pirated copy of those games feel free to ask in the thread but please don't expect me to answer.
The following instructions were updated for installing v1.4. Added instructions for Pinball Arcade.
-----------
*****Pinball FX2*****
Pinball FX2's keyboard settings are pretty limited at the moment, but I got most of it to work on my pincab. For keyboard bindings I recommend, assuming your Pincab has two flpper buttons and two magnasave buttons:
Left flipper button: left arrow key
Right flipper button: right arrow key
Left magnasave button: arrow up
Right magnasave button: arrow down
Also, I'm assuming you are using an IPac in your cab. If you are using a Nanotech kit, you may need a program like xpadder to emulate a keyboard.
These bindings work flawlessly with FP and VP. SlamIt Pinball works too, but you need to remap a few keys in FPLaunch.afk
If you don't wan't to go with these bindings you can modify FPLaunch.ahk to your liking.
For Pinball FX2 I recommend:
Left Flipper - left arrow
Right Flipper - right arrow
ViewMode - Tab
Nudge Left - arrow up
Nudge Right - arrow down
*****Pinball Arcade*****
Pinball Arcade is a lot friendlier for Cab use when it comes to key bindings. Unlike Pinball FX2 we can change the keys for menu navigation.
The following recommendation is for using Pinball Arcade together with Pinball FX2 if you have configured your flipper buttons like in my recommendation.
If you don't plan to install Pinball FX2 just set PA's bindings to whatever fits your Cab.
Left Flipper - left arrow
Right Flipper - right arrow
2nd Left Flipper - arrow up
2nd Right Flipper - arrow down
Plunger - enter
Plunger Button - enter
Change Camera - [coin button]
Toggle Camera Lock - 2 [extra ball button]
Pause - [exit button]
Menu Back - [exit button]
Menu Select - enter
Menu Left - arrow left
Menu Right - arrow right
Menu Up - arrow up
Menu Down - arrow down
Configuration:
1a) Pinball FX2
Copy the PinballFX2.fpt file from the attachment in your FP Tables directory - or create an empty file with that name there.
Import this in your Future Pinball.xml:
<game name="PinballFX2"> <description>Pinball FX2</description> <manufacturer>Zen Pinball</manufacturer> <year>2013</year> <type>OG</type> </game>1b) Pinball Arcade
- To automatically rotate the screen to portrait get either Display Changer or iRotate. Install to the default directory of the respective program. iRotate seems to work better with XP, I prefer Display Changer.
FPLaunch tries to start iRotate first, if it isn't available it tries to use Display Changer. Display Changer will also work if you have a copy of dccmd.exe (nothing more is needed) in c:\Hyperpin or in your file search path.
- After installing iRotate or Display Changer start PBA-config.exe to set the screen resolution in portrait mode. PBA-config is included in the attached ZIP file together with the modded FPLaunch.exe.
- Copy the ThePinballArcade.fpt file from the attachment in your FP Tables directory - or create an empty file with that name there.
- Import this in your Future Pinball.xml:
<game name="ThePinballArcade"> <description>Pinball Arcade</description> <manufacturer>FarSight Studios</manufacturer> <year>2013</year> <type>OG</type> </game>
2)
Replace FPLaunch.exe and FPLaunch.ahk in your HyperPin directory with the attached version 1.4
If everything works correct you should be able to control Pinball FX2 and/or Pinball Arcade with your flipper buttons (left and right) and your magnasave buttons (up and down)
Both start button and launch ball button should work as Enter for selecting a table and using the plunger.
The Exit key (I'm assuming you set it to "e") is mapped to Escape for Pinball FX2 so you can use it to exit from settings. For Pinball Arcade you can configure the exit key.
For exiting Pinball FX2 use the arrow keys to go to "Exit Game" and use your Lauch Button to select it. Pinball Arcade needs to be exited by navigating to the exit button too.
Feel free to ignore the rest of this post if you don't plan to do any changes on the code yourself. (Code is also updated to v1.4)
If you want to edit FPLauch.afk manually, here are my changes
To compile FPLaunch.exe get AutoHotkey_L_Install.exe from http://www.autohotkey.com/
During installation select "Custom Installation" (not "Express Installation"), then ANSI 32-bit.
(@Blur: Feel free to rip anything and everything out that is of use for you)
Line 538
replace
;**********************************FUTURE PINBALL*********************************** if (systemName = "Future Pinball") { if (tableName = "BigScore") { ; bigboss slamit bigscore support GoSub SlamitBigScore } else { GoSub bigbossfp ; bigboss support for different exe if (useExitScreen = "true") exitmeth = ExitScreen else if (useExitAsPause = "true") exitmeth = PauseFP else exitmeth = CloseFP ; fp needs $ or it will not get the key ; * enables any modifier (shift, ctrl, alt) ; * breaks long press functionality - removed Hotkey $%exitKey%, %exitmeth% Hotkey, $%exitKey1%, %exitmeth% Hotkey, $%editTableKey%, ShowFP Hotkey, $%printScreenKey%, printScreen Hotkey, $%printBGKey%, printBG Hotkey, $%instructionsKey%, Instructions Hotkey, $%flyerKey%, Flyer if (saveFPTables = "true") { Hotkey, $ScrollLock, SetSaveFPNeeded Run, "%emuPath%\%executable%" /open "%tablePath%\%tableName%.fpt" /play /arcaderender,,Min UseErrorLevel } else Run, "%emuPath%\%executable%" /open "%tablePath%\%tableName%.fpt" /play /Exit /arcaderender,,Min UseErrorLevelwith
;**********************************FUTURE PINBALL*********************************** if (systemName = "Future Pinball") { if (tableName = "BigScore") { ; bigboss slamit bigscore support GoSub SlamitBigScore } else if (tableName = "PinballFX2") { ; modified bigboss routine for Pinball FX2 GoSub PinballFX2 } else if (tableName = "ThePinballArcade") { ; modified bigboss routine for Pinball Arcade GoSub PinballArcade } else { GoSub bigbossfp ; bigboss support for different exe ;Support for FuturedDMD. I didn't use the close=1 option since it didn't work with different FPexe names on my system - Sir Cheddar IfExist %emupath%\FutureDMD.exe Run, "%emupath%\FutureDMD.exe" table="%tableName%",%emuPath%,hide UseErrorLevel if (useExitScreen = "true") exitmeth = ExitScreen else if (useExitAsPause = "true") exitmeth = PauseFP else exitmeth = CloseFP ; fp needs $ or it will not get the key ; * enables any modifier (shift, ctrl, alt) ; * breaks long press functionality - removed Hotkey $%exitKey%, %exitmeth% Hotkey, $%exitKey1%, %exitmeth% Hotkey, $%editTableKey%, ShowFP Hotkey, $%printScreenKey%, printScreen Hotkey, $%printBGKey%, printBG Hotkey, $%instructionsKey%, Instructions Hotkey, $%flyerKey%, Flyer ;Start Future Pinball using BAM\FPLoader.exe if available IfExist %emupath%\BAM\FPLoader.exe { if (saveFPTables = "true") { Hotkey, $ScrollLock, SetSaveFPNeeded Run, "%emuPath%\bam\fploader.exe" /FPEXE:"%executable%" /STAYINRAM /open "%tablePath%\%tableName%.fpt" /play /arcaderender,,Min UseErrorLevel } else Run, "%emuPath%\bam\fploader.exe" /FPEXE:"%executable%" /STAYINRAM /open "%tablePath%\%tableName%.fpt" /play /Exit /arcaderender,,Min UseErrorLevel } else { if (saveFPTables = "true") { Hotkey, $ScrollLock, SetSaveFPNeeded Run, "%emuPath%\%executable%" /open "%tablePath%\%tableName%.fpt" /play /arcaderender,,Min UseErrorLevel } else Run, "%emuPath%\%executable%" /open "%tablePath%\%tableName%.fpt" /play /Exit /arcaderender,,Min UseErrorLevel }Search for "bigboss Slamit support remaps"
Paste this between #IfwinActive and "KILL COMMANDS"
;same for PinballFX2 ;Remap your keys as needed, set your exitkey to Escape if it isn't e #IfWinActive ahk_class PxWindowClass 1::Enter ;%exitKey%::Escape ;I couldn't figure out how to set %exitkey% to Escape - Sir Cheddar ;%exitKey1%::Escape e::Escape 5::tab #IfWinActive ;bindings for Pinball Arcade ;Remap your keys as needed, set your exitkey to Escape if it isn't e #IfWinActive ahk_class Pinball Arcade 1::Enter #IfWinActiveSearch for "CloseFP:"
insert before WinClose, ahk_class FuturePinball
IfExist %emupath%\FutureDMD.exe Process, close, FutureDMD.exe
Search for "CloseSlam:"
replace
CloseSlam: toLog("CloseSlam Called") WinClose, ahk_class SlamIt Pinball - Big Score goto ExitScript return
with
CloseSlam: toLog("CloseSlam Called") WinClose, ahk_class SlamIt Pinball - Big Score goto ExitScript return ; modified big boss bigscore routine for PinballFX2 - Sir Cheddar PinballFX2: RegRead, SteamDirPath, HKLM, Software\Valve\Steam, InstallPath toLog("PinballFX2 Called") ;Hotkey, $%exitKey%, CloseFX2 ;Hotkey, $%exitKey1%, CloseFX2 ;- Modify your ShowBackGlass command line options for FX2 here IfExist %steamdirpath%\images\ShowBackglass.exe IfExist %steamdirpath%\images\gui2.pxp.bmp Run, ShowBackglass.exe /left=1916 /top=-4 /width=1928 /height=1088 /picture=gui2.pxp.bmp ,%SteamDirPath%\images Run, "%SteamDirPath%\Steam.exe" -applaunch 226980,,UseErrorLevel Process, wait, Pinball FX2.exe Gui, destroy Process, WaitClose, Pinball FX2.exe IfExist %steamdirpath%\images\appkiller.exe Run, %SteamDirPath%\Images\appkiller.exe ShowBackglass.exe 0,,UseErrorLevel goto ExitScript return CloseFX2: toLog("CloseFX2 Called") Process,Close,Pinball FX2.exe Process, WaitClose, Pinball FX2.exe IfExist %steamdirpath%\images\appkiller.exe Run, %SteamDirPath%\Images\appkiller.exe ShowBackglass.exe 0,,UseErrorLevel goto ExitScript return ; modified big boss bigscore routine for The Pinball Arcade - Sir Cheddar PinballArcade: RegRead, SteamDirPath, HKLM, Software\Valve\Steam, InstallPath toLog("TPA Called") ProgFiles := ProgFiles32() dcworkdir = dcparamlandscape = dcparamportrait = dcexe = IfExist, %ProgFiles%\iRotate\iRotate.exe { dcworkdir = %ProgFiles%\iRotate\ dcparamlandscape = /rotate=0 dcparamportrait = /rotate=90 dcexe = iRotate.exe } Else { IfExist, %ProgFiles%\12noon Display Changer\dccmd.exe dcworkdir = %ProgFiles%\12noon Display Changer\ IfExist, c:\Hyperpin\dccmd.exe dcworkdir = c:\Hyperpin\ dcparamlandscape = -rotate=up dcparamportrait = -rotate=right dcexe = dccmd.exe } run, "%dcworkdir%%dcexe%" %dcparamportrait%,,UseErrorLevel ;- Modify your ShowBackGlass command line options for Pinball Arcade here If FileExist("%steamdirpath%\images\ShowBackglass.exe") && FileExist("%steamdirpath%\images\PinballArcade.bmp") IfExist %steamdirpath%\images\ShowBackglass.exe IfExist %steamdirpath%\images\PinballArcade.bmp Run, ShowBackglass.exe /left=1916 /top=-4 /width=1928 /height=1088 /picture=PinballArcade.bmp ,%SteamDirPath%\images Run, "%SteamDirPath%\Steam.exe" -applaunch 238260,,UseErrorLevel Process, wait, PinballArcade.exe Gui, destroy Process, WaitClose, PinballArcade.exe IfExist %steamdirpath%\images\appkiller.exe Run, %SteamDirPath%\Images\appkiller.exe ShowBackglass.exe 0,,UseErrorLevel run, "%dcworkdir%%dcexe%" %dcparamlandscape%,,UseErrorLevel goto ExitScript return ClosePBA: toLog("ClosePBA Called") Process,Close,PinballArcade.exe Process, WaitClose, PinballArcade.exe IfExist %steamdirpath%\images\appkiller.exe Run, %SteamDirPath%\Images\appkiller.exe ShowBackglass.exe 0,,UseErrorLevel run, "%dcworkdir%%dcexe%" %dcparamlandscape%,,UseErrorLevel goto ExitScript return
Note: If you are still running FPLaunch1.295wip9 or earlier and haven't updated to wip10 yet please do that update first. You can find the update here. Thanks, LoadedWeapon!
Attached Files
Edited by Sir Cheddar, 16 November 2013 - 12:43 AM.