Hey i made an autohotkey script to be able to select tables in pinball hd collection game. The script seems to work fine on my cabinet when i tested it and you should be able to use it in any frontend once compiled to an exe:
I tried documenting the script a bit and you will need to change a few values depending on your system (like keyboard shortcuts remapping) and possibly the timeout value for launching the game and becomming visible. I will not provide an executable so you will have to compile the script yourself using autohokey and adapt where needed. You also need to use this launcher script instead of the game's exe to launch the game. The script will remain running as long as the game is running, you can place the script anywhere you'd like. You will also need to make sure the game is running in portrait mode before launching the launcher, i personally use irotate in a launch before and launch after script to do this. you will also need to start the game once normally from within steam to change the camera style to fixed instead of flyby and exit the game.
Table parameters (exactly as written here always in lowercase):
- wildwest
- fantasy
- zombie
- deep
- jungle
- halloween
- davinci
- snow
- arcade
- pirates
- redplanet
- tanks
- streetracing
- dreamland
- mafia
- vikings
you can view a video of it in action here :
Here is the script, you need to modify it and adapt to suit your own needs (mostly timeouts & keyboard keys)
; Created by joyrider 3774 18/08/2021 ;--------Run Before (Need to be compiled)----Start------ #SingleInstance force SetTitleMatchMode, 3 DetectHiddenWindows, On DetectHiddenText, On ; User inputs ;lower this value if your game loads and displays the main menu faster and you don't want to idle on main menu ;increase if your game starts too slow on your system WaitBeforeActivate = 3500; before activating the windows if it's found KeyDelay = 50 SetWorkingDir %A_ScriptDir% ;--------Run Before (Need to be compiled)----End------ ;From here run your pinball wicked RegRead, SteamDirPath, HKCU, Software\Valve\Steam, SteamPath Run, "%SteamDirPath%\Steam.exe" -applaunch 448670 WinWait, Pinball HD Collection ahk_class GPPBWndClass,, 20000 if ErrorLevel { MsgBox, WinWait timed out. exitapp } Sleep, WaitBeforeActivate WinActivate, Pinball HD Collection ahk_class GPPBWndClass ;SoundBeep, 500, 500 ;Send Enter + assumes correct position StartGame() { global KeyDelay Send {Enter down} Sleep, %KeyDelay% Send {Enter up} Sleep, %KeyDelay% Return } GotoFirstTable(X) { global KeyDelay LoopXCount := (X) Loop, %LoopXCount% { Send {Left down} Sleep, %KeyDelay% Send {Left up} Sleep, %KeyDelay% } Return } SelectGame(X) { global KeyDelay GotoFirstTable(17) LoopXCount := (X) Loop, %LoopXCount% { Send {Right down} Sleep, %KeyDelay% Send {Right up} Sleep, %KeyDelay% } Return } if (A_Args[1] = "wildwest") { SelectGame(0) StartGame() } if (A_Args[1] = "fantasy") { SelectGame(1) StartGame() } if (A_Args[1] = "zombie") { SelectGame(2) StartGame() } if (A_Args[1] = "deep") { SelectGame(3) StartGame() } if (A_Args[1] = "jungle") { SelectGame(4) StartGame() } if (A_Args[1] = "halloween") { SelectGame(5) StartGame() } if (A_Args[1] = "davinci") { SelectGame(6) StartGame() } if (A_Args[1] = "snow") { SelectGame(7) StartGame() } if (A_Args[1] = "arcade") { SelectGame(8) StartGame() } if (A_Args[1] = "pirates") { SelectGame(9) StartGame() } if (A_Args[1] = "redplanet") { SelectGame(10) StartGame() } if (A_Args[1] = "tanks") { SelectGame(11) StartGame() } if (A_Args[1] = "streetracing") { SelectGame(12) StartGame() } if (A_Args[1] = "dreamland") { SelectGame(13) StartGame() } if (A_Args[1] = "mafia") { SelectGame(14) StartGame() } if (A_Args[1] = "vikings") { SelectGame(15) StartGame() } ;SoundBeep, 500, 500 Process, WaitClose, PinballHDCollection.exe ;SoundBeep, 500, 500 ExitApp ;REMOVE EVERYTHING BELOW IF YOU DO NOT WANT CONTROLS REMAPPING #IfWinActive Pinball HD Collection ahk_class GPPBWndClass ; info about keys can be found here : https://autohotkey.com/docs/KeyList.htm ; in my cab i use the esc key to quit a game but the esc key is also needed to cancel highscore input and return to menu and start new game ; so u see another button C on my cabinet to send 3 times ESC to the game and then return when i am at the high score screen c:: ControlSend ,, {ESC}, Pinball HD Collection ahk_class GPPBWndClass Sleep, 750 ControlSend ,, {ESC}, Pinball HD Collection ahk_class GPPBWndClass Sleep, 750 ControlSend ,, {ESC}, Pinball HD Collection ahk_class GPPBWndClass Sleep, 750 ControlSend ,, {Enter}, Pinball HD Collection ahk_class GPPBWndClass return ;left flipper on my cabinet is left shift and ingame is left LShift::Left ;Right flipper on my cabinet is right shift and ingame is right RShift::Right ;Left Control and Right Control are my extra flipper buttons for nudges ingame up is nudge LControl::Up RControl::Up ;enter key on my cabinet is launch key which is down key ingame Enter::Down