Jump to content

blur

Platinum Member
  • Posts

    553
  • Joined

  • Last visited

Everything posted by blur

  1. Hey sam. Its me from big blue font name is bauhaus i think but i have another idea that will make pause more hyperpinish and all custom images useless - on pause (short press) it would be great to show instructions.swf file from hyperpin and on the bottom hyperpin grahics for using left and right flippers for browsing flyer and then of course on flipper buttons go to flyer images and on esc go back to game and on 1 or enter exit from table glad to see you back feel free to jump in
  2. Tnx guys, I will be under the sea or on the sea most of the time so that's why I won't be accessible. (You can check my home page www.submania.hr for more info ) In the meantime while I'm still here rocky and bent do you have loading screen that won't go away even though pinball is fully loaded in the back? And you press esc twice so you get pause and then back to game? I've checked code. I don't put focus on vp if you use loading screen. I never did. I wait for vp to become active cause to me this is a sign that application is fully loaded and loading screen can be closed. This is the code: if (systemName = "Visual Pinball") { IfWinExist, Visual Pinball Player,, DMD ;Check if visual pinball is Ready { IfWinActive, Visual Pinball Player,, DMD ;Check if visual pinball is Ready { Break } } If you don't get focus - that is an old known problem of vp - it won't put itself into focus if you don't use nt4sp5 compatibility mod. Do you have comp. mod set on vpinball.exe?
  3. I will be afc (away from computer) for a few weeks as probably most of you (vacations). All of this looks solvable for now. Report what you find and we'll analize it when i get back.
  4. you have to change your controller or mapping software so that they send Esc instead of e and you have to change settings.ini so that exitemulatorkey is Esc
  5. I would like all the people that had problems with Esc key and they had to use e instead - to try to use Esc again and check if this version fixes Esc for them also! I know i had two problems with Esc when i used it with xpadder or joy2key: 1. Esc key would come to VP and invoke exit to editor or resume menu 2. Long press on exit button (which is mapped to Esc) would not be detected - so i would get flashing pause screen They are both fixed now. You could all try it now and see if this fix helps. As I remember some people with IPAC, Pinball Wizard and with some other controllers with xpadder/joy2key had this problem. This will not solve joy8 problem with PBW - so it is still good not to use button 8 on PBW but some other button for exit.
  6. tnx bro meida fire link added
  7. same old story with megaupload here is the ahk source that you can compile, and uploading.com link is added to previous post: /** * FPLaunch MOD Version 1.295 WIP 4 Check FPLaunch Manual at http://www.hyperspin-fe.com/forum/showthread.php?t=10935 CODE MAP This is short list of all sections and functions in this script so that you can find and customize them quickly GET PARAMATERS AND SET HOTKEYS - reads input parameters from command line GET AND CHECK PATHS - gets settings from ini files - calculates window coordinates - hides taskbar, cursor and desktop RUN SYSTEM FUTURE PINBALL VISUAL PINBALL - commands for launching vp and fp KILL COMMANDS - this is where all the procedures are Procedures: CloseProcess: kills process - not used rosve: rosve support for B2S active backglasses rosveClose: kills B2S backglass bigboss: bigboss support for different exe, sound levels and hdrender off bigbossClose: returns sound and hdrender settings SlamitBigScore: big boss slamit bigscore support CloseSlam: close slamit pinball PauseFP: fp pausing - executed on exit key PauseVP: vp pausing - executed on exit key ShowFP: close player and show editor - executed on alt-f4 ShowVP: close player and show editor - executed on alt-f4 SetSaveFPNeeded: set flag to save fp table on exit CloseFP: closes fp CloseVP: closes vp CreateLoadScreen: loading screen loop with slider, closes nag messages CreateBlackScreen: does print screen of fp table and shows it on the screen CreatePauseScreen: shows blue PAUSED image CreateExitScreen: creates exiting in 321 screens ExitScreen: exit screen loop, draws pause or exit screens and exits from fp/vp ExitScript: kills all gui's, activates hyperpin REST OF SCRIPT - scripts for enabling/disabling cursor and reading ini files CaptureScreen - scripts for screen capture HISTORY 1.295 wip 2 + add sleep after printscreen + add sleep during winactivate of vpinball, dmd and backglass + put winactivate outside of loading screen + enable other exe names + read logical and phyisical key state + win activate of secondary fp window (backglass) - doesn't help + put version in usage - double click on fplaunch.exe to get version + bigboss additions (more exe files, sound mods ...) + support for slamit pinball 1.295 wip 3 + winactivates removed (you have to set exe to nt4sp5 comp mode) + fix runtime error on close (you have to set exe to comp mode) + fix dmd not visible behind playfield (set exe to comp mode) + fps drop - same drop comes from loose of focus so it's not script related + shorter time for esc screens + win activate on nag screens brings them to focus and closes them 1.295 wip 4 + fix dmd not visible behind playfield + put all rosve and bigboss code to functions + write a code map + winactivate of fp after pause and printscreen + fix winactivate on z screen buffer message (msg stays in back) + fgi keys mapped to enter for slamit bigscore pinball if you don't use slamit you can remove them TO DO: - fix slow down after close (when vp is still closing) - fix late printscreen in fp - while loading esc should be quick kill and exit not pause - save printscreen-a under name taken from description - fp auto positioning - new images with new text - show instructions and flyer on pause * Modified by dumpster.monkey (samwyze) & blur * Based on original FPLaunch 1.2 by BadBoyBill * Includes modified pause code from ManoWars Nuevo FPLaunch 1.2 * Includes exit png's based on jpg's from BBB's 'exit feature' thread * Includes support for Pause on Exit by blur * Esc and then 1 or Enter exits, Esc and then Esc again takes you back to the game * Includes support for Pause in FP by blur * For pause to work in FP you have to assign right mouse button to pause in FP * Includes support for saving FP table position (scrolllock) on exit by blur * VP nag screen removal by blur * B2S backglass exe support by rosve * different exe, sound level and hdrender flag support by bigboss * slamit bigscore pinball support by bigboss * * All images are to be placed in %HyperPinDir%\Media\HyperPin\Images * * These settings are automatically added to your settings.ini * file in the %HyperPinDir%\Settings folder on first start: * [FPLaunch] * exitScriptKey = q & s * exitEmulatorKey = Esc * toggleCursorKey = t * pauseVPinball = p * hideCursor = true * hideDesktop = true * hideTaskbar = true * useExitScreen = true * usePauseKey = true * useLoadScreen = true * fadespeed = 25 * useExitAsPause = true * exitEmulatorKey2 = 1 * exitEmulatorKey3 = Enter * pauseFPKey = RButton * saveFPTables = true * * NOTE: This is a wip and is by no means complete or optimized * Feel free to disect, mod, clean, optimize, distribute or delete! * * Autohotkey script by BadBoyBill [email protected] * CursorHide by Lazlo * * If you are reading this and do not have autohotkey you can get it * @ http://www.autohotkey.com/download/ * If you would like to modify this script and share it thats OK, but * see if your modification is something that we would like to add * to the official version. * * Refer to the autohotkey documentation for the keyoboard keylist * * If this script does not support your favorite emulator * then please request support @ http://www.hyperspin-fe.com/forum * * Supports Future Pinball and Visual Pinball * */ #SingleInstance force ;Prevent multiple instances #InstallKeybdHook SetTitleMatchMode 2 ;Use relaxed title matching #InstallMouseHook ;#UseHook ; this one breaks long press functionality for gamepad button mapped to Esc!!! #KeyHistory 500 #MaxThreadsPerHotkey 1 #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. DetectHiddenWindows on ;******************************************************************************* ;* EDIT BELOW THIS POINT AT YOUR OWN RISK * ;******************************************************************************* ;------------------------------------------------------------------------------; ; GET PARAMATERS AND SET HOTKEYS ; ;------------------------------------------------------------------------------; ;CHECKING FOR 2 PARAMS, IF NOT THEN EXIT if 0 < 2 { MsgBox FPLaunch v. 1.295 WIP 4`nUsage: FPLaunch.ahk/exe "System Name" "Rom Name" ExitApp } systemName = %1% tableName = %2% hyperini = %A_ScriptDir%\Settings\Settings.ini picDir = %A_ScriptDir%\Media\HyperPin\Images\ ;------------------------------------------------------------------------------; ; GET AND CHECK PATHS ; ;------------------------------------------------------------------------------; GoSub, CheckINI IniRead, iniEmuPath, %hyperini%, %systemName%, Path emuPath := GetFullName(iniEmuPath) IniRead, iniTablePath, %hyperini%, %systemName%, Table_Path tablePath := GetFullName(iniTablePath) IniRead, executable, %hyperini%, %systemName%, Exe iniKeys = exitScriptKey,exitEmulatorKey,hideCursor,toggleCursorKey,hideDesktop,hideTaskbar ,useExitScreen,usePauseKey,pauseVPinball,useLoadScreen,fadespeed ,useExitAsPause,exitEmulatorKey2,exitEmulatorKey3,pauseFPKey,saveFPTables Loop, parse, iniKeys, `, { IniRead, %A_LoopField%, %hyperini%, FPLaunch, %A_LoopField% } romExtension = GoSub, CheckPaths loadspeed := fadespeed * 10 Hotkey, %exitScriptKey%, ExitScript ; we use loading screeen dimensions for all screens ;If (useLoadScreen = "true") { ProgBar = 0 gui, 99:add,picture,hwndloadpic, %A_ScriptDir%\Media\HyperPin\Images\Loading.png controlgetpos,,,wLoad,hLoad,,ahk_id %loadpic% gui, 99:destroy wLoad := Round(wLoad*A_ScreenWidth/1280) xLoad := Round(A_ScreenWidth/2-(wLoad/2)) hLoad := Round(hLoad*A_ScreenHeight/800) yLoad := Round(A_ScreenHeight/2-(hLoad/2)) wLoadProgress := Round(20*A_ScreenWidth/1280) xLoadProgress := Round(145*A_ScreenWidth/1280) hLoadProgress := Round(194*A_ScreenHeight/800) yLoadProgress := Round(288*A_ScreenHeight/800) ;} ;If (usePauseKey = "true") { Paused = 0 ; PausePic = ; gui, 98:add,picture,hwndpausepic, %picDir%\Media\HyperPin\Images\Pause.png ; controlgetpos,,,wPause,hPause,,ahk_id %pausepic% ; gui, 98:destroy ; wPause := Round(wPause*A_ScreenWidth/1280) ; xPause := Round(A_ScreenWidth/2-(wPause/2)) ; hPause := Round(hPause*A_ScreenHeight/800) ; yPause := Round(A_ScreenHeight/2-(hPause/2)) ;} ;If (useExitScreen = "true") { Exiting = 0 ; Exit = ; gui, 97:add,picture,hwndexitpic, %A_ScriptDir%\Media\HyperPin\Images\Exit_1.png ; controlgetpos,,,wExit,hExit,,ahk_id %exitpic% ; gui, 97:destroy ; wExit := Round(wExit*A_ScreenWidth/1280) ; xExit := Round(A_ScreenWidth/2-(wExit/2)) ; hExit := Round(hExit*A_ScreenHeight/800) ; yExit := Round(A_ScreenHeight/2-(hExit/2)) ;} if (hideCursor = "true") { MouseMove %A_ScreenWidth%, %A_ScreenHeight% Hotkey, %toggleCursorKey%, ToggleCursor SystemCursor("Off") } if (hideTaskbar = "true") { WinHide, ahk_class Shell_TrayWnd WinHide, Start ahk_class Button } if (hideDesktop = "true") { Gui, Color, 000000 Gui +AlwaysOnTop -Caption +ToolWindow Gui, Show, x0 y0 W%A_ScreenWidth% H%A_ScreenHeight%, BlackScreen } WinClose, cmd.exe ;------------------------------------------------------------------------------; ; RUN SYSTEM ; ;------------------------------------------------------------------------------; ;**********************************FUTURE PINBALL*********************************** if (systemName = "Future Pinball") { if(tableName = "BigScore") { ; bigboss slamit bigscore support #IfWinActive ahk_class SlamIt Pinball - Big Score ; Remap some keys (this has to be here, not in procedure): ; enter to down arrow for plunger ; 1 to s for start, 5 to 1 for insert coin ; magnasave, flyer, genre or instructions to enter for menus ; change it to what you have on your cab and recompile ; or remove it if you don't use slamit pinball RControl::Enter LControl::Enter f::Enter g::Enter i::Enter Enter::down 5::1 1::s #IfWinActive GoSub SlamitBigScore } else { if (useExitScreen = "true") ; fp needs $ or it will not get the key ; * enables any modifier to be pressed with the key (shift, ctrl, alt) Hotkey, $*%exitEmulatorKey%, ExitScreen else if (useExitAsPause = "true") Hotkey, $*%exitEmulatorKey%, PauseFP else Hotkey, $*%exitEmulatorKey%, CloseFP if (usePauseKey = "true") { Hotkey, $*%pauseVPinball%, PauseFP ;Hotkey, $*Pause, PauseFP } Hotkey, $!F4, ShowFP 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 If (useLoadScreen = "true") ;Draw the loading Gui with wrapped Progress bar Gosub CreateLoadScreen Else { WinWait, ahk_class FuturePinball WinHide, ahk_class FuturePinball } WinWait, ahk_class FuturePinballOpenGL WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL Gui, destroy WinWait, ahk_class FuturePinballOpenGLSecondary,,1 WinActivate, ahk_class FuturePinballOpenGLSecondary WinWaitActive, ahk_class FuturePinballOpenGLSecondary,,1 WinActivate, ahk_class FuturePinballOpenGL Process, WaitClose, %executable% } } ;**********************************VISUAL PINBALL*********************************** else if (systemName = "Visual Pinball") { GoSub bigboss ; bigboss support for different exe, sound levels and hdrender off GoSub rosve ; rosve support for B2S active backglasses Run, "%emuPath%\%executable%" /play -"%tablePath%%tableName%.vpt",, Min UseErrorLevel ;Run Minimized ;was the best way I could hide the vp editor and play loading screens as WinHide didn't seem to find them If (useExitScreen = "true") ; * breaks long press functionality for gamepad button mapped to Esc so it had to be removed Hotkey, %exitEmulatorKey%, ExitScreen Else If (useExitAsPause = "true") Hotkey, *%exitEmulatorKey%, PauseVP Else Hotkey, *%exitEmulatorKey%, CloseVP If (usePauseKey = "true") { Hotkey, $*%pauseVPinball%, PauseVP ;Hotkey, $*Pause, PauseVP } Hotkey, $!F4, ShowVP If (useLoadScreen = "true") ;Draw the loading Gui with wrapped Progress bar Gosub CreateLoadScreen Else { WinWait, ahk_class VPinball WinHide, ahk_class VPinball } WinWaitActive, ahk_class VPPlayer ;Wait for vp to be Ready before killing Gui blackScreen Gui, Destroy ;bring dmd on top of playfield DetectHiddenWindows off ;don't detect dmd if it is hidden WinActivate, ahk_class MAME WinWaitActive, ahk_class MAME Click 10, 10 WinWaitActive, ahk_class MAME Sleep 100 DetectHiddenWindows on WinActivate, ahk_class VPPlayer WinWaitActive, ahk_class VPPlayer MouseMove A_ScreenWidth//2, A_ScreenHeight//2 Click Process, WaitClose, %executable% } else { MsgBox,48,Error,%systemName% is an invalid System Name or %executable% isnt supported yet,6 } ;------------------------------------------------------------------------------; ; WHEN EMULATOR FINISHES OR IF LAUNCH EXE FAILS ; ;------------------------------------------------------------------------------; ;************PROBABLY DO NOT NEED TO EDIT THIS AREA************* if (ErrorLevel = "ERROR") { MsgBox,48,Error,Failed to run executable check your paths,6 } Goto ExitScript ; Exits script and returns to frontend ;------------------------------------------------------------------------------; ; KILL COMMANDS ; ;------------------------------------------------------------------------------; ;************PROBABLY DO NOT NEED TO EDIT THIS AREA************* CloseProcess: Hotkey, %exitScriptKey%, Off Process, Close, %executable% Process, WaitClose, %executable% return ; rosve support for B2S active backglasses rosve: ;-------------------------------------------------------------- ;------ check if an active backglass shall be started ----- ;-------------------------------------------------------------- StringRight, ending, tableName, 3 if (ending = "B2S") { Run, %tablePath%%tableName%.exe, %tablePath% sleep 200 } return rosveClose: ; rosve ; -------------------------------------------------------------- ; --- Close the animated backglass ----------------------- ; -------------------------------------------------------------- if (ending = "B2S") { WinKill, Form1 } return ; bigboss support for different exe, sound levels and hdrender off bigboss: ; bigboss ; Array examples: http://www.autohotkey.com/docs/misc/Arrays.htm ; Read config file for vp9.08 tables vp908count = 0 ; This loop retrieves each line from the file, one at a time. Loop, Read, %A_ScriptDir%\Settings\vp908tables.txt { vp908count += 1 ; Keep track of how many items are in the array. vp908array%vp908count% := A_LoopReadLine ; Store this line in the next array element. } ; Check if table is in the vp908tables array. Loop %vp908count% { ; The following line uses the := operator to retrieve an array element: element := vp908array%A_Index% ; A_Index is a built-in variable. if(tableName = element) { TableIndex = %A_Index% vpExeIndex = %TableIndex% vpExeIndex += 1 executable := vp908array%vpExeIndex% break } } ; Read config file for disable HD rendering tables since this is a global setting now. HDRenderOffCount = 0 HDRenderOffChanged = 0 ; This loop retrieves each line from the file, 1 at a time. Loop, Read, %A_ScriptDir%\Settings\hdrenderofftables.txt { HDRenderOffCount += 1 ; Keep track of how many items are in the array. HDRenderOffArray%HDRenderOffCount% := A_LoopReadLine ; Store this line in the next array element. } ; Check if table is in the no hdrender array and write the VP hardwarerender key to off. Loop %HDRenderOffCount% { ; The following line uses the := operator to retrieve an array element: element := HDRenderOffArray%A_Index% ; A_Index is a built-in variable. if(tableName = element) { HDRenderOffChanged = 1 RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Visual Pinball\Player, HardwareRender, 0 break } } ; Read config for sound volume hard codes SoundModCount = 0 SoundChangeAmount = 0 Loop, Read, %A_ScriptDir%\Settings\soundmodtables.txt { SoundModCount += 1 SoundModCountArray%SoundModCount% := A_LoopReadLine } ; Check if table is in the vp908tables array. Loop %SoundModCount% { ; The following line uses the := operator to retrieve an array element: TableIndex = %A_Index% SoundIndex = %TableIndex% SoundIndex += 1 TheTable := SoundModCountArray%TableIndex% TheSoundAmount := SoundModCountArray%SoundIndex% if(tableName = TheTable) { ; Set the new sound change amount. Should be a + or - number otherwise it needs a , SoundSet, absoluteamt ; SoundSet: http://www.autohotkey.com/docs/commands/SoundSet.htm ; SoundGet: http://www.autohotkey.com/docs/commands/SoundGet.htm ;SoundSet, %TheSoundAmount% Send {Volume_Down %TheSoundAmount%} break } } return bigbossClose: ; bigboss ; Restore hdrender original value if (HDRenderOffChanged) RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Visual Pinball\Player, HardwareRender, 1 ; Restore master volume original value if (TheSoundAmount) Send {Volume_Up %TheSoundAmount%} return ; big boss slamit bigscore support SlamitBigScore: Hotkey, $%exitEmulatorKey%, CloseSlam ;setworkingdir, "..\SlamIt\BigScore.exe" Run, "..\slamit\go.bat", "..\SlamIt" WinWait, ahk_class SlamIt Pinball - Big Score Gui, destroy Process, WaitClose, BigScore.exe goto ExitScript return CloseSlam: WinClose, ahk_class SlamIt Pinball - Big Score goto ExitScript return PauseFP: if (Paused = 0) { Paused = 1 WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL Send {%pauseFPKey%} WinWaitActive, ahk_class FuturePinballOpenGL Gosub CreateBlackScreen Gosub CreatePauseScreen Hotkey, $%exitEmulatorKey2%, CloseFP Hotkey, $%exitEmulatorKey2%, On Hotkey, $%exitEmulatorKey3%, CloseFP Hotkey, $%exitEmulatorKey3%, On } else { Paused = 0 Gui 1: Destroy Gui 5: Destroy WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL Send {%pauseFPKey%} Hotkey, $%exitEmulatorKey2%, Off Hotkey, $%exitEmulatorKey3%, Off } return PauseVP: If (Paused = 0) { Paused = 1 Gosub CreatePauseScreen Hotkey, $%exitEmulatorKey2%, CloseVP Hotkey, $%exitEmulatorKey2%, On Hotkey, $%exitEmulatorKey3%, CloseVP Hotkey, $%exitEmulatorKey3%, On } Else { Paused = 0 Gui, Destroy WinActivate, ahk_class VPPlayer Hotkey, $%exitEmulatorKey2%, Off Hotkey, $%exitEmulatorKey3%, Off } return ShowFP: if (Paused = 1) Gosub PauseFP WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL Send {Esc} WinWaitClose, ahk_class FuturePinballOpenGL WinShow, ahk_class FuturePinball WinRestore, ahk_class FuturePinball WinActivate, ahk_class FuturePinball WinWaitActive, ahk_class FuturePinball SystemCursor("On") WinShow, ahk_class Shell_TrayWnd WinShow, Start ahk_class Button Suspend, On MouseMove 200,200 WinWait, ahk_class FuturePinballOpenGL Suspend, Off SystemCursor("Off") WinHide, ahk_class Shell_TrayWnd WinHide, Start ahk_class Button WinHide, ahk_class FuturePinball WinMinimize, ahk_class FuturePinball WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL return ShowVP: if (Paused = 1) Gosub PauseVP WinActivate, ahk_class VPPlayer WinWaitActive, ahk_class VPPlayer WinClose, ahk_class VPPlayer WinWaitClose, ahk_class VPPlayer WinShow, ahk_class VPinball WinRestore, ahk_class VPinball WinActivate, ahk_class VPinball WinWaitActive, ahk_class VPinball SystemCursor("On") WinShow ahk_class Shell_TrayWnd WinShow Start ahk_class Button Suspend, On MouseMove 200,200 WinWait, ahk_class VPPlayer Suspend, Off SystemCursor("Off") WinHide, ahk_class Shell_TrayWnd WinHide, Start ahk_class Button WinHide, ahk_class VPinball WinMinimize, ahk_class VPinball WinWaitActive, ahk_class VPPlayer ;WinActivate, ahk_class TBackglass ;WinActivate, ahk_class MAME ;WinActivate, ahk_class VPPlayer return SetSaveFPNeeded: saveFPNeeded = true Send {ScrollLock} return CloseFP: ;close all gui's except black screen (gui 5) Loop, 4 Gui, %A_Index%: Destroy ;hide and minimize fp editor WinHide, ahk_class FuturePinball WinMinimize, ahk_class FuturePinball ;Future Pinball must be closed this way instead of killing process ;or it wil not save your last game information.i.e score/credtis WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL Send {Esc} WinWaitClose, ahk_class FuturePinballOpenGL ;saving fp table position, black screen hides fp window if (saveFPTables = "true") and (saveFPNeeded = "true") { ;WinRestore, ahk_class FuturePinball WinActivate, ahk_class FuturePinball WinWaitActive, ahk_class FuturePinball WinMenuSelectItem, ahk_class FuturePinball,,File,Save Sleep, 1000 } WinClose, ahk_class FuturePinball GoSub, ExitScript return CloseVP: Hotkey, %exitScriptKey%, Off GoSub rosveClose ;Visual Pinball must be closed this way instead of killing process ;or it wil not save your last game information.i.e score/credtis ;DetectHiddenWindows, on ;Or next line will not work Loop, 4 Gui, %A_Index%: Destroy ;This line fixes where the VP Window flashes real quick ;when closing the window for a cleaner exit WinHide, ahk_class VPinball WinMinimize, ahk_class VPinball WinClose, ahk_class VPinball GoSub bigbossClose GoSub, ExitScript return CreateLoadScreen: SetTitleMatchMode 2 ;Use relaxed title matching Gui, Destroy ; kill Gui blackScreen Gui, Color, EEAA99 Gui, Margin, 0, 0 Gui, Add, Picture, h%hLoad% w%wLoad% vLoadPic, %picDir%loading.png Gui, Add, Progress, x%xLoadProgress% y%yLoadProgress% w%wLoadProgress% h%hLoadProgress% -smooth 0x8 c0C32A5 vLoading vertical BackgroundFFFFFF Gui +AlwaysOnTop -Caption +Lastfound Gui, Show, AutoSize Center, loadScreen WinSet, TransColor, EEAA99 Loop { Sleep %loadspeed% ;ProgBar += 1 ;If ProgBar = %loadspeed% ;{ GuiControl,, Loading, +1 ; ProgBar = 0 ;} ; nag screens removal ifWinExist, Please { WinActivate, Please IfWinActive, Please { Send {Tab} Send {Space} Send {Enter} } } else ifWinExist, Game Info { WinActivate, Game Info IfWinActive, Game Info { Send {Enter} Send {Enter} } } else ifWinExist, Notice { WinActivate, Notice IfWinActive, Notice { Send {Enter} Send {Enter} } } else ifWinExist, VBScript { WinActivate, VBScript IfWinActive, VBScript { Send {Enter} } } else ifWinExist, Error { ; we have some error and we want to see it so we don't send Enter ;Send {Enter} Gui, Destroy WinActivate, Error WinWaitActive, Error SystemCursor("On") WinWaitClose, Error WinClose, ahk_class VPinball WinClose, ahk_class FuturePinball Process, WaitClose, %executable% ExitApp } if (systemName = "Visual Pinball") { IfWinExist, Visual Pinball Player,, DMD ;Check if visual pinball is Ready { IfWinActive, Visual Pinball Player,, DMD ;Check if visual pinball is Ready { Break } } } else { IfWinExist, ahk_class FuturePinballOpenGL ;Check if visual pinball is Ready { IfWinActive, ahk_class FuturePinballOpenGL ;Check if visual pinball is Ready { Break } } } } Gui, Destroy ; Vic Return CreateBlackScreen: CaptureScreen(3) ;Sleep 100 WinActivate, ahk_class FuturePinballOpenGL WinWaitActive, ahk_class FuturePinballOpenGL,,2 Gui 5: Destroy Gui 5: Color, 000000 Gui 5: Margin, 0, 0 Gui 5: Add, Picture, W%A_ScreenWidth% H%A_ScreenHeight% vScreenPic, screen.bmp Gui 5: +AlwaysOnTop -Caption +ToolWindow Gui 5: Show, x0 y0 W%A_ScreenWidth% H%A_ScreenHeight%, BlackScreen Return CreatePauseScreen: Gui, Destroy Gui, Color, EEAA99 Gui, Margin, 0, 0 Gui, Add, Picture, h%hLoad% w%wLoad% vPausePic, %picDir%pause.png Gui +AlwaysOnTop -Caption +Lastfound Gui, Show, AutoSize Center, pauseScreen WinSet, TransColor, EEAA99 ;Gui, Show Return CreateExitScreen: Gui, Destroy Loop, 4 { ExitPic = Exit_%A_Index%.png Gui %A_Index%: Destroy Gui %A_Index%: Color, EEAA99 Gui %A_Index%: Margin, 0, 0 Gui %A_Index%: Add, Picture, w%wLoad% h%hLoad%, %picDir%%ExitPic% Gui %A_Index%: +AlwaysOnTop -Caption +Lastfound Gui %A_Index%: Show, AutoSize Center Hide WinSet, TransColor, EEAA99 } Return ExitScreen: if (Exiting = 0) { Exiting = 1 LoopVal = 0 ;Gosub CreateExitScreen ; check if we need this - nope Loop { ;Sleep, 10 ; check if we need this - nope state = 0 ; check for logical and physical state of the key GetKeyState, statel, %exitEmulatorKey% if statel = D state = 1 GetKeyState, statep, %exitEmulatorKey%, P if statep = D state = 1 if (state) { if (loopVal = 10) { if (Paused = 1) { if (systemName = "Future Pinball") GoSub PauseFP else GoSub PauseVP } Gosub CreateExitScreen if (systemName = "Future Pinball") GoSub CreateBlackScreen Gui, 3:Show } else if loopVal = 25 Gui, 2:Show else if loopVal = 40 Gui, 1:Show Sleep, %fadespeed% if (loopVal = 60) { if (systemName = "Visual Pinball") GoSub, CloseVP else if (systemName = "Future Pinball") GoSub, CloseFP break } } else { Exiting = 0 if (LoopVal < 10 && useExitAsPause = "true") { if (systemName = "Visual Pinball") GoSub, PauseVP else if (systemName = "Future Pinball") GoSub, PauseFP } else { Loop, 5 Gui, %A_Index%: Destroy WinActivate, Visual Pinball Player,, DMD WinActivate, ahk_class FuturePinballOpenGL } Transvalue = 0 LoopVal = 0 break } LoopVal += 1 } } Return ExitScript: Loop, 5 Gui, %A_Index%: Destroy Process, Exist, HyperPin.exe PID := errorLevel ;no need to show taskbar on exit, it can only cause problems ;it was already commented in 1.10 ;if (hideTaskbar = "true") { ;WinShow ahk_class Shell_TrayWnd ;WinShow Start ahk_class Button ;} if (PID) { WinActivate, ahk_pid %PID% ;WinWaitActive, ahk_pid %PID% } if (hideCursor = "true") SystemCursor("On") ;to debug script uncomment the pause ;Pause ExitApp OnExit, ExitScript return ;------------------------------------------------------------------------------; ; REST OF SCRIPT ; ;------------------------------------------------------------------------------; ;************PROBABLY DO NOT NEED TO EDIT THIS AREA************* SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others { static AndMask, XorMask, $, h_cursor ,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors , b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; blank cursors , h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; handles of default cursors if (OnOff = "Init" or OnOff = "I" or $ = "") ; init when requested or at first call { $ = h ; active default cursors VarSetCapacity( h_cursor,4444, 1 ) VarSetCapacity( AndMask, 32*4, 0xFF ) VarSetCapacity( XorMask, 32*4, 0 ) system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650 StringSplit c, system_cursors, `, Loop %c0% { h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% ) h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 ) b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0 , "int",32, "int",32, "uint",&AndMask, "uint",&XorMask ) } } if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T")) $ = b ; use blank cursors else $ = h ; use the saved cursors Loop %c0% { h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 ) DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% ) } } ToggleCursor: SystemCursor("Toggle") WinShow ahk_class Shell_TrayWnd WinShow Start ahk_class Button return IniRead(Filename, Section, Key, Default = "") { FileRead, text, *t %Filename% text = `n%text%`n StringTrimLeft, text, text, InStr(text, "`n[" . Section . "]`n") Loop, 8 { sp := sp . " " StringReplace, text, text, %Key%%sp%=, %Key%= If ErrorLevel Break } start := InStr(text, "`n" . Key . "=") If !start Return, Default start += StrLen(Key) + 2 StringMid, Value, text, start, InStr(text, "`n", false, start) - start Return, Value } ;Get Full Path from Relative Path GetFullName( fn ) { static buf, i if !i i := VarSetCapacity(buf, 512) DllCall("GetFullPathNameA", "str", fn, "uint", 512, "str", buf, "str*", 0) return buf } CheckINI: IfNotExist, %A_ScriptDir%\HyperPin.exe { MsgBox,48,Error, Must be in same directory as HyperPin.exe,6 Goto ExitScript } IfNotExist, %A_ScriptDir%\Settings\Settings.ini { MsgBox,48,Error,Cannot Find %A_ScriptDir%\Settings\Settings.ini,6 Goto ExitScript } return CheckPaths: romFound = StringRight, emuPathBackSlash, EmuPath, 1 StringRight, tablePathBackSlash, TablePath, 1 If (emuPathBackSlash != "\" || tablePathBackSlash != "\") { MsgBox,48,Error, Make sure your paths contains a backslash on the end ,6 Goto ExitScript } If (executable = "") { MsgBox,48,Error, Missing executable in Settings.ini ,6 Goto ExitScript } If (tablePath = "") { MsgBox,48,Error, Missing rom path in Settings.ini ,6 Goto ExitScript } If (emuPath = "") { MsgBox,48,Error, Missing emulator path in Settings.ini ,6 Goto ExitScript } If (exitScriptKey = "ERROR") or (useExitAsPause = "ERROR") or (exitEmulatorKey3 = "ERROR") Gosub addIni IfNotExist, %EmuPath%%Executable% { MsgBox,48,Error,Cannot Find %EmuPath%%Executable%,6 Goto ExitScript } return addIni: IniWrite, q & s, %hyperini%, FPLaunch, exitScriptKey IniWrite, Esc, %hyperini%, FPLaunch, exitEmulatorKey IniWrite, t, %hyperini%, FPLaunch, toggleCursorKey IniWrite, p, %hyperini%, FPLaunch, pauseVPinball IniWrite, true, %hyperini%, FPLaunch, hideCursor IniWrite, true, %hyperini%, FPLaunch, hideDesktop IniWrite, true, %hyperini%, FPLaunch, hideTaskbar IniWrite, false, %hyperini%, FPLaunch, useExitScreen IniWrite, true, %hyperini%, FPLaunch, usePauseKey IniWrite, true, %hyperini%, FPLaunch, useLoadScreen IniWrite, 25, %hyperini%, FPLaunch, fadespeed IniWrite, true, %hyperini%, FPLaunch, useExitAsPause IniWrite, 1, %hyperini%, FPLaunch, exitEmulatorKey2 IniWrite, Enter, %hyperini%, FPLaunch, exitEmulatorKey3 IniWrite, RButton, %hyperini%, FPLaunch, pauseFPKey IniWrite, true, %hyperini%, FPLaunch, saveFPTables exitScriptKey = q & s exitEmulatorKey = Esc toggleCursorKey = t pauseVPinball = p hideCursor = true hideDesktop = true hideTaskbar = true useExitScreen = true usePauseKey = true useLoadScreen = true fadespeed = 25 useExitAsPause = true exitEmulatorKey2 = 1 exitEmulatorKey3 = Enter pauseFPKey = RButton saveFPTables = true return /* CaptureScreen(aRect, bCursor, sFileTo, nQuality) By Sean - Taken from Forum page: http://www.autohotkey.com/forum/topic18146.html 1) If the optional parameter bCursor is True, captures the cursor too. 2) If the optional parameter sFileTo is 0, set the image to Clipboard. If it is omitted or "", saves to screen.bmp in the script folder, otherwise to sFileTo which can be BMP/JPG/PNG/GIF/TIF. 3) The optional parameter nQuality is applicable only when sFileTo is JPG. Set it to the desired quality level of the resulting JPG, an integer between 0 - 100. 4) If aRect is 0/1/2/3, captures the entire desktop/active window/active client area/active monitor. 5) aRect can be comma delimited sequence of coordinates, e.g., "Left, Top, Right, Bottom" or "Left, Top, Right, Bottom, Width_Zoomed, Height_Zoomed". In this case, only that portion of the rectangle will be captured. Additionally, in the latter case, zoomed to the new width/height, Width_Zoomed/Height_Zoomed. Example: CaptureScreen(0) CaptureScreen(1) CaptureScreen(2) CaptureScreen(3) CaptureScreen("100, 100, 200, 200") CaptureScreen("100, 100, 200, 200, 400, 400") ; Zoomed */ /* Convert(sFileFr, sFileTo, nQuality) Convert("C:\image.bmp", "C:\image.jpg") Convert("C:\image.bmp", "C:\image.jpg", 95) Convert(0, "C:\clip.png") ; Save the bitmap in the clipboard to sFileTo if sFileFr is "" or 0. */ CaptureScreen(aRect = 0, bCursor = False, sFile = "", nQuality = "") { If !aRect { SysGet, nL, 76 SysGet, nT, 77 SysGet, nW, 78 SysGet, nH, 79 } Else If aRect = 1 WinGetPos, nL, nT, nW, nH, A Else If aRect = 2 { WinGet, hWnd, ID, A VarSetCapacity(rt, 16, 0) DllCall("GetClientRect" , "Uint", hWnd, "Uint", &rt) DllCall("ClientToScreen", "Uint", hWnd, "Uint", &rt) nL := NumGet(rt, 0, "int") nT := NumGet(rt, 4, "int") nW := NumGet(rt, 8) nH := NumGet(rt,12) } Else If aRect = 3 { VarSetCapacity(mi, 40, 0) DllCall("GetCursorPos", "int64P", pt) DllCall("GetMonitorInfo", "Uint", DllCall("MonitorFromPoint", "int64", pt, "Uint", 2), "Uint", NumPut(40,mi)-4) nL := NumGet(mi, 4, "int") nT := NumGet(mi, 8, "int") nW := NumGet(mi,12, "int") - nL nH := NumGet(mi,16, "int") - nT } Else { StringSplit, rt, aRect, `,, %A_Space%%A_Tab% nL := rt1 nT := rt2 nW := rt3 - rt1 nH := rt4 - rt2 znW := rt5 znH := rt6 } mDC := DllCall("CreateCompatibleDC", "Uint", 0) hBM := CreateDIBSection(mDC, nW, nH) oBM := DllCall("SelectObject", "Uint", mDC, "Uint", hBM) hDC := DllCall("GetDC", "Uint", 0) DllCall("BitBlt", "Uint", mDC, "int", 0, "int", 0, "int", nW, "int", nH, "Uint", hDC, "int", nL, "int", nT, "Uint", 0x40000000 | 0x00CC0020) DllCall("ReleaseDC", "Uint", 0, "Uint", hDC) If bCursor CaptureCursor(mDC, nL, nT) DllCall("SelectObject", "Uint", mDC, "Uint", oBM) DllCall("DeleteDC", "Uint", mDC) If znW && znH hBM := Zoomer(hBM, nW, nH, znW, znH) If sFile = 0 SetClipboardData(hBM) Else Convert(hBM, sFile, nQuality), DllCall("DeleteObject", "Uint", hBM) } CaptureCursor(hDC, nL, nT) { VarSetCapacity(mi, 20, 0), mi := Chr(20) DllCall("GetCursorInfo", "Uint", &mi) bShow := NumGet(mi, 4) hCursor := NumGet(mi, 8) xCursor := NumGet(mi,12) yCursor := NumGet(mi,16) If bShow && hCursor:=DllCall("CopyIcon", "Uint", hCursor) { VarSetCapacity(ni, 20, 0) DllCall("GetIconInfo", "Uint", hCursor, "Uint", ∋) bIcon := NumGet(ni, 0) xHotspot := NumGet(ni, 4) yHotspot := NumGet(ni, 8) hBMMask := NumGet(ni,12) hBMColor := NumGet(ni,16) DllCall("DrawIcon", "Uint", hDC, "int", xCursor - xHotspot - nL, "int", yCursor - yHotspot - nT, "Uint", hCursor) DllCall("DestroyIcon", "Uint", hCursor) If hBMMask DllCall("DeleteObject", "Uint", hBMMask) If hBMColor DllCall("DeleteObject", "Uint", hBMColor) } } Zoomer(hBM, nW, nH, znW, znH) { mDC1 := DllCall("CreateCompatibleDC", "Uint", 0) mDC2 := DllCall("CreateCompatibleDC", "Uint", 0) zhBM := CreateDIBSection(mDC2, znW, znH) oBM1 := DllCall("SelectObject", "Uint", mDC1, "Uint", hBM) oBM2 := DllCall("SelectObject", "Uint", mDC2, "Uint", zhBM) DllCall("SetStretchBltMode", "Uint", mDC2, "int", 4) DllCall("StretchBlt", "Uint", mDC2, "int", 0, "int", 0, "int", znW, "int", znH, "Uint", mDC1, "int", 0, "int", 0, "int", nW, "int", nH, "Uint", 0x00CC0020) DllCall("SelectObject", "Uint", mDC1, "Uint", oBM1) DllCall("SelectObject", "Uint", mDC2, "Uint", oBM2) DllCall("DeleteDC", "Uint", mDC1) DllCall("DeleteDC", "Uint", mDC2) DllCall("DeleteObject", "Uint", hBM) Return zhBM } Convert(sFileFr = "", sFileTo = "", nQuality = "") { If sFileTo = sFileTo := A_ScriptDir . "\screen.bmp" SplitPath, sFileTo, , sDirTo, sExtTo, sNameTo If Not hGdiPlus := DllCall("LoadLibrary", "str", "gdiplus.dll") Return sFileFr+0 ? SaveHBITMAPToFile(sFileFr, sDirTo . "\" . sNameTo . ".bmp") : "" VarSetCapacity(si, 16, 0), si := Chr(1) DllCall("gdiplus\GdiplusStartup", "UintP", pToken, "Uint", &si, "Uint", 0) If !sFileFr { DllCall("OpenClipboard", "Uint", 0) If DllCall("IsClipboardFormatAvailable", "Uint", 2) && (hBM:=DllCall("GetClipboardData", "Uint", 2)) DllCall("gdiplus\GdipCreateBitmapFromHBITMAP", "Uint", hBM, "Uint", 0, "UintP", pImage) DllCall("CloseClipboard") } Else If sFileFr Is Integer DllCall("gdiplus\GdipCreateBitmapFromHBITMAP", "Uint", sFileFr, "Uint", 0, "UintP", pImage) Else DllCall("gdiplus\GdipLoadImageFromFile", "Uint", Unicode4Ansi(wFileFr,sFileFr), "UintP", pImage) DllCall("gdiplus\GdipGetImageEncodersSize", "UintP", nCount, "UintP", nSize) VarSetCapacity(ci,nSize,0) DllCall("gdiplus\GdipGetImageEncoders", "Uint", nCount, "Uint", nSize, "Uint", &ci) Loop, % nCount If InStr(Ansi4Unicode(NumGet(ci,76*(A_Index-1)+44)), "." . sExtTo) { pCodec := &ci+76*(A_Index-1) Break } If InStr(".JPG.JPEG.JPE.JFIF", "." . sExtTo) && nQuality<>"" && pImage && pCodec { DllCall("gdiplus\GdipGetEncoderParameterListSize", "Uint", pImage, "Uint", pCodec, "UintP", nSize) VarSetCapacity(pi,nSize,0) DllCall("gdiplus\GdipGetEncoderParameterList", "Uint", pImage, "Uint", pCodec, "Uint", nSize, "Uint", π) Loop, % NumGet(pi) If NumGet(pi,28*(A_Index-1)+20)=1 && NumGet(pi,28*(A_Index-1)+24)=6 { pParam := π+28*(A_Index-1) NumPut(nQuality,NumGet(NumPut(4,NumPut(1,pParam+0)+20))) Break } } If pImage pCodec ? DllCall("gdiplus\GdipSaveImageToFile", "Uint", pImage, "Uint", Unicode4Ansi(wFileTo,sFileTo), "Uint", pCodec, "Uint", pParam) : DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", "Uint", pImage, "UintP", hBitmap, "Uint", 0) . SetClipboardData(hBitmap), DllCall("gdiplus\GdipDisposeImage", "Uint", pImage) DllCall("gdiplus\GdiplusShutdown" , "Uint", pToken) DllCall("FreeLibrary", "Uint", hGdiPlus) } CreateDIBSection(hDC, nW, nH, bpp = 32, ByRef pBits = "") { NumPut(VarSetCapacity(bi, 40, 0), bi) NumPut(nW, bi, 4) NumPut(nH, bi, 8) NumPut(bpp, NumPut(1, bi, 12, "UShort"), 0, "Ushort") NumPut(0, bi,16) Return DllCall("gdi32\CreateDIBSection", "Uint", hDC, "Uint", &bi, "Uint", 0, "UintP", pBits, "Uint", 0, "Uint", 0) } SaveHBITMAPToFile(hBitmap, sFile) { DllCall("GetObject", "Uint", hBitmap, "int", VarSetCapacity(oi,84,0), "Uint", &oi) hFile:= DllCall("CreateFile", "Uint", &sFile, "Uint", 0x40000000, "Uint", 0, "Uint", 0, "Uint", 2, "Uint", 0, "Uint", 0) DllCall("WriteFile", "Uint", hFile, "int64P", 0x4D42|14+40+NumGet(oi,44)<<16, "Uint", 6, "UintP", 0, "Uint", 0) DllCall("WriteFile", "Uint", hFile, "int64P", 54<<32, "Uint", 8, "UintP", 0, "Uint", 0) DllCall("WriteFile", "Uint", hFile, "Uint", &oi+24, "Uint", 40, "UintP", 0, "Uint", 0) DllCall("WriteFile", "Uint", hFile, "Uint", NumGet(oi,20), "Uint", NumGet(oi,44), "UintP", 0, "Uint", 0) DllCall("CloseHandle", "Uint", hFile) } SetClipboardData(hBitmap) { DllCall("GetObject", "Uint", hBitmap, "int", VarSetCapacity(oi,84,0), "Uint", &oi) hDIB := DllCall("GlobalAlloc", "Uint", 2, "Uint", 40+NumGet(oi,44)) pDIB := DllCall("GlobalLock", "Uint", hDIB) DllCall("RtlMoveMemory", "Uint", pDIB, "Uint", &oi+24, "Uint", 40) DllCall("RtlMoveMemory", "Uint", pDIB+40, "Uint", NumGet(oi,20), "Uint", NumGet(oi,44)) DllCall("GlobalUnlock", "Uint", hDIB) DllCall("DeleteObject", "Uint", hBitmap) DllCall("OpenClipboard", "Uint", 0) DllCall("EmptyClipboard") DllCall("SetClipboardData", "Uint", 8, "Uint", hDIB) DllCall("CloseClipboard") } Unicode4Ansi(ByRef wString, sString) { nSize := DllCall("MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0) VarSetCapacity(wString, nSize * 2) DllCall("MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize) Return &wString } Ansi4Unicode(pString) { nSize := DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "Uint", 0, "int", 0, "Uint", 0, "Uint", 0) VarSetCapacity(sString, nSize) DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "str", sString, "int", nSize, "Uint", 0, "Uint", 0) Return sString }
  8. oki doki here is wip 4 dowloand link http://www.megaupload.com/?d=WYOL5D3D and upload.com link: http://uploading.com/files/e117534e/FPLaunch1.295wip4.zip/ and mediafire link: http://www.mediafire.com/?akzu7f77ej97ar3 test it and let me know how it works if everything is ok I'm updating manual on first page and my sig with link to new version new features are: - fixed dmd behind playfield - fixed esc key mapped over xpadder or joy2key (I've tested joy2key - works same as xpadder, so vp works, fp not) - added link to fplaunch manual on start of ahk script - read the manual! - added code map on start of ahk script - put most of "external" code from rosve and bigboss to functions for better "visibilty" - some small fixes on nag screens, error screens and so on - and another addition for my dear friend bent: for slamit bigscore keys left ctrl, right ctrl, f, g, i are all mapped to enter (magnasave, flyer, genre and instructions keys) so you can use whichever key you have on your cab so actually there is no new features but lots of bug fixes and reorganizations
  9. I can't test ledwiz cause I don't have it. And I can't put any ledwiz code in it cause script will be incompatible with most of the people that don't have it but you can put whatever code is missing and recompile. I could maybe put some commented code for ledwiz folks to uncomment but can't test it or debug it. I can only debug it so that it works without problems without ledwiz.
  10. gee this problem with button working in bbb 1.2 and not working in 1.295 was bugging me for a long time i'm also glad it is finally solved
  11. yeah i noticed that, after few seconds of pause flashing it starts to show exit321 screens, but then it shows them and exits even on short key press that's not normal behavior, normal is to not show anything at first and then to show exit321 if it is long press and pause if it is short key press anyway i was very angry and decided i have to find out what kills long press on esc key mapped to some button with xpadder so i took my fplaunch 1.295 wip 4 and bbb 1.2 and compared it i commented maybe 10 #statements, but nada, still nothing so i took only command for checking keypress and started testing with that simple ahk script it worked for esc key mapped from button with xpadder so i started adding code around it it broke when i added * for hotkey * in front of key allows for any modifier (shift, alt or ctrl) to be pressed with esc, so that you can press pause while you hold ball on flipper but if your flippers are not shifts then * is not needed - I use left and right arrows for flippers and it is convenient cause you can go left and right if some dialog box pops up if you also map up and down arrow to nudge or magnasave you can even play baby pacman so * had to go after that i removed * from my fplaunch and it was still no go so i commented all # statements, and it woked again then i started to uncomment # statements one by one to see which one breaks long press functionality and i found that it is #usehook statement so if you remove #usehook statement and * from hotkey esc mapped to some gamepad button with xpadder will work just like esc from keyboard i'm not sure about joy2key - still have to test it unfortunatelly it will not work in fp - so for fp you will still need to use joy1 button i will probably put these two fixes (for hidden dmd and for long keypress) in fplaunch and publish wip 4 version soon
  12. I've tried this cycle stop and it did not solved problem 2 for me. I still have pause flashing so long key press doesn't work. But i tried again fplaunch 1.2 from bbb and it works fine with long key press - so i will try to find what is different in my code. Code around it looks the same - probably the difference is in #statements - like #noenv and #maxthreadsperhotkey and so on. I will comment them all and try without them.
  13. Actually you don't have to map esc key to anything. I use xpadder with joystick and I use button 1 for exit in hp, vp and fp without mapping it to esc. In HP i set button one as exit button in pinball wizard section: [Pinball Wizard] Joy = 0 -> set your gamepad id (number 0,1,2,...) Start = 9 Exit = 8 -> change this to 1 or whatever is your exit button. In fp and vp you don't need to configure anything to exit button, actually you must not have anything mapped to exit button. And for fplaunch you set exitemulator key to Joy1 in settings.ini Sending esc key with xpadder can be a problem because of two reasons: 1. autohotkey could not be able to stop esc key - so esc key will come to fp and vp and close fp or open exit menu in vp which will break pause functionality 2. it is difficult to detect if virtual key is pressed - so long press for exit could stop working Any way, deathevil it is not quite clear how did you added cycle stop, in xpadder configuration you add one cycle stop after esc in advance options? Did it solved 1 and 2 or only 2? If it solves both - it's a great find!!!
  14. you have dmd on playfield? it's a known problem. it is not fixed in wip 3 but in my new version that i'm testing (wip 4) you have to: alt-tab to dmd click on dmd click on pf then dmd should stay on top i'm doing this in my new fplaunch script other method is to just press f3
  15. I think none of these problems doesn't have anything to do with fplaunch. When you are in hyperpin fplaunch is not running so it can't change anything.
  16. Tnx rocky. For fadespeed - it runs faster on faster systems. if you set it too low loop on exit key will be quicker so maybe if it is too fast you can't press esc short enough. Try just to touch it and release it. What buttons you have? For pause to be called you have to release it within first 10 loops.
  17. 250 = 9800 = 8800 so probably 8800 will do
  18. 1. was the answer for problem no. 1 - scrolling though tables and freezing you have loading window while you scroll through tables? for 2. you really have to use latest version cause that code is changing all the time, as soon as i can pinpoint a bug and repeat it on my rig i fix it but, i did not tested much on win7 (i can't, kids are playing on that comps all the time ) so everything is possible
  19. 1, can't be due to fplaunch cause it is not executed yet, so it must be win7 issue 2. try 1.295 wip 3, try also alt-tab to see what's going on.
  20. Great! you can also hold e for few seconds to exit
  21. tornado did you installed images from fplaunch 1.294 version?
  22. first page, second post of this thread
  23. Hipi this is a great find and it works. Check you code and after: WinWaitActive, ahk_class VPPlayer ;Wait for vp to be Ready before killing Gui blackScreen just add: Send {F3} I've tried to add winactivate of vpplayer in loading screen loop but it completely breaks nag screen removal functionality. I've tried also clicking on mame window and on vpplayer but it is so unreliable So try this and let me know if it works on all tables, and i will put it in next release.
  24. yeah, and during the night is colder then outside did you checked manual?
×
×
  • Create New...