Jump to content
  • Announcement

    The HyperSpin 2 early access beta is here!

    We’re starting the first public testing phase with Platinum Members to keep the scope manageable while we test the current feature set and begin to add more. In the future, we’ll provide a version for basic members as well.  On behalf of the entire HyperSpin team, we look forward to another exciting adventure with our community.

HyperLaunchHQ don't save exit emulator key


fuzzi23

Recommended Posts

Posted

If I add a new key in General Settings>Controls>Exit Emulator Key, the new key works fine, but only for some times. After a couple of times (2 or 3) I use the new key, the key has no longer any effect until I restart Windows. Then it repeats, works 2 or 3 times and then it has no longer any effect until I restart Windows. It works for me fine for a long time, but now it makes trouble.

Posted

This seems like strange behavior. Is there any logging information your can provide. Specifically a log from when it works, and then one from when it does not work.

Posted

Yes it's strange. Forgot to say: I make a test for this, I totaly delete HS + HL and set it up from scratch only with zsnes to test it and make sure there is nothing other that can cause this issue. Also, the new key entry stays in HL if it not works. HL don't kick the entry from the key list, it only don't works then. Also want to say I try all this on my desktop PC and there it's the same issue.

Ok, I make a clear new log. I try with Mr. Nutz Rom. Three times the "F" key works, the 4th time it refuses. If I delete the "F" key and set it again, it works again for 2 or 3 times. Here the log:

00:41:16:453 | HL |     INFO  | +N/A   | Main - HyperLaunch v3.0.0.9
00:41:16:453 | HL |     INFO  | +0     | Main - System Specs:
				HyperLaunch Dir: D:\---\Hyperspin\HyperLaunch
				OS: WIN_XP
				Architecture: 32-bit (might not be accurate)
				OS Language: German_Standard
				OS Admin Status: Yes
				Monitor #1 (\\.\DISPLAY1): 1680x1050 (1680x1050 work)
				AutoHotkey Path: 
				AHK Version: 1.1.09.04
				Unicode: No
00:41:16:453 | HL |     INFO  | +0     | Main - HyperSpin.exe coordinates are x0 y0 w1680 h1050
00:41:16:453 | HL |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\HyperLaunch\HyperLaunch.exe exists
00:41:16:453 | HL |     INFO  | +0     | Main - HyperLaunch received "Super Nintendo Entertainment System" and "Mr. Nutz"
00:41:16:468 | HL |     INFO  | +16    | Main - Mr. Nutz is using the default emulator: ZSNESw
00:41:16:468 | HL |     INFO  | +0     | Main - Checking for a [ZSNESw] section in D:\---\Hyperspin\HyperLaunch\Settings\Super Nintendo Entertainment System\Emulators.ini
00:41:16:468 | HL |     INFO  | +0     | Main - Checking for a [ZSNESw] section in D:\---\Hyperspin\HyperLaunch\Settings\Global Emulators.ini
00:41:16:468 | HL |     INFO  | +0     | Main - Found [ZSNESw] in D:\---\Hyperspin\HyperLaunch\Settings\Global Emulators.ini
00:41:16:468 | HL |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk exists
00:41:16:484 | HL |  WARNING  | +15    | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.
00:41:16:484 | HL |     INFO  | +0     | Main - Mr. Nutz will use module: D:\---\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk
00:41:16:500 | HL |     INFO  | +16    | Main - Using standard method with "Rom Extensions" SkipChecks or without any SkipChecks.
00:41:16:500 | HL |     INFO  | +0     | Main - INI Keys read
00:41:16:500 | HL |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\HyperLaunch\Module Extensions\7z.exe exists
00:41:16:500 | HL |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\HyperLaunch\Module Extensions\7z.dll exists
00:41:16:500 | HL |     INFO  | +0     | CheckPaths - Started
00:41:16:500 | HL |     INFO  | +0     | CheckPaths - Found rom: D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Mr. Nutz.smc
00:41:16:500 | HL |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe exists
00:41:16:500 | HL |     INFO  | +0     | CheckPaths - Ended
00:41:16:500 | HL |     INFO  | +0     | BuildScript - User Variables:
				;----------------------------------------------------------------------------
				; INJECTED VARIABLES
				;----------------------------------------------------------------------------

				#NoTrayIcon
				#InstallKeybdHook
				DetectHiddenWindows, ON
				SetTitleMatchMode, 2
				SendMode, Event
				0 = 2
				frontendPID = 4012
				frontendPath = D:\---\Hyperspin
				frontendExe = HyperSpin.exe
				frontendExt = exe
				frontendName = HyperSpin
				frontendDrive = D:
				exitEmulatorKey = ~Esc|F
				exitEmulatorKeyWait = 0
				forceHoldKey = ~Esc
				restoreFE = false
				exitScriptKey = ~q & ~s
				emuFullPath = D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe
				emuPath = D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System
				emuName = ZSNESw
				emuExt = exe
				romPath = D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms
				romPathFromIni = D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms
				romExtension = .smc
				romExtensionOrig = .smc
				romExtensions = 7z|zip|sfc|smc
				executable = zsnesw.exe
				systemName = Super Nintendo Entertainment System
				dbName = Mr. Nutz
				romName = 
				romMapPath = 
				romMappingEnabled = false
				romMappingLaunchMenuEnabled = false
				romMappingFirstMatchingExt = false
				romMappingShowAllRomsInArchive = true
				romMappingNumberOfWheelsByScreen = 7
				romMappingMenuWidth = 300
				romMappingMenuMargin = 50
				romMappingTextFont = Bebas Neue
				romMappingTextOptions = cFFFFFFFF r4 s40 Bold
				romMappingDisabledTextColor = ff888888
				romMappingTextSizeDifference = 5
				romMappingTextMargin = 10
				romMappingTitleTextFont = Bebas Neue
				romMappingTitleTextOptions = cFFFFFFFF r4 s60 Bold
				romMappingTitle2TextFont = Bebas Neue
				romMappingTitle2TextOptions = cFFFFFFFF r4 s15 Bold
				romMappingGameInfoTextFont = Bebas Neue
				romMappingGameInfoTextOptions = cFFFFFFFF r4 s15 Regular
				romMappingBackgroundBrush = aa000000
				romMappingColumnBrush = 33000000
				romMappingButtonBrush1 = 6f000000
				romMappingButtonBrush2 = 33000000
				romMappingBackgroundAlign = Stretch and Lose Aspect
				romMappingMenuFlagWidth = 40
				romMappingMenuFlagSeparation = 5
				romMappingDefaultMenuList = FullList
				romMappingSingleFilteredRomAutomaticLaunch = false
				skipchecks = false
				romMatchExt = true
				logFile = D:\---\Hyperspin\HyperLaunch\HyperLaunch.log
				logLabel := ["    INFO"," WARNING","   ERROR","  DEBUG1","  DEBUG2"]
				logLevel = 3
				logIncludeModule = true
				logIncludeFileProperties = true
				logShowCommandWindow = false
				logCommandWindow = false
				navUpKey = Up
				navDownKey = Down
				navLeftKey = Left
				navRightKey = Right
				navSelectKey = Enter
				navP2UpKey = Numpad8
				navP2DownKey = Numpad2
				navP2LeftKey = Numpad4
				navP2RightKey = Numpad6
				navP2SelectKey = NumpadEnter
				originalWidth = 1680
				originalHeight = 1050
				dtEnabled = true
				dtPath = C:\Programme\DAEMON Tools Lite\DTLite.exe
				dtUseSCSI = true
				dtAddDrive = true
				emuIdleShutdown = 0
				hideEmu = false
				hideFE = false
				fadeIn = false
				fadeInDuration = 500
				fadeInTransitionAnimation = DefaultAnimateFadeIn
				fadeInDelay = 0
				fadeInExitDelay = 0
				fadeOutExitDelay = 0
				fadeOut = false
				fadeOutDuration = 500
				fadeOutTransitionAnimation = DefaultAnimateFadeOut
				fadeOutDelay = 0
				fadeLyrInterpolation = 7
				fadeLyr1Color = FF000000
				fadeLyr1AlignImage = Align to Top Left
				fadeLyr2Pos = Bottom Right Corner
				fadeLyr2X = 300
				fadeLyr2Y = 300
				fadeLyr2Adjust = 1
				fadeLyr2PicPad = 0
				fadeLyr3Pos = Center
				fadeLyr3X = 300
				fadeLyr3Y = 300
				fadeLyr3Adjust = 0.75
				fadeLyr3Speed = 750
				fadeLyr3Animation = DefaultFadeAnimation
				fadeLyr37zAnimation = DefaultFadeAnimation
				fadeLyr3Type = imageandbar
				fadeLyr3ImgFollow7zProgress = true
				fadeLyr3Repeat = 1
				fadeLyr3PicPad = 0
				fadeLyr4Adjust = 0.75
				fadeLyr4X = 100
				fadeLyr4Y = 100
				fadeLyr4Pos = Above Layer 3 - Left
				fadeLyr4FPS = 10
				fadeLyr4PicPad = 0
				fadeTranspGifColor = FFFFFF
				fadeBarWindow = false
				fadeBarWindowX = 
				fadeBarWindowY = 
				fadeBarWindowW = 600
				fadeBarWindowH = 120
				fadeBarWindowR = 20
				fadeBarWindowM = 20
				fadeBarWindowHatchStyle = 8
				fadeBarBack = true
				fadeBarBackColor = FF555555
				fadeBarH = 20
				fadeBarR = 5
				fadeBarColor = DD00BFFF
				fadeBarHatchStyle = 3
				fadeBarPercentageText = true
				fadeBarInfoText = true
				fadeBarXOffset = 0
				fadeBarYOffset = 100
				fadeRomInfoDescription = text
				fadeRomInfoSystemName = text
				fadeRomInfoYear = text
				fadeRomInfoManufacturer = text
				fadeRomInfoGenre = text
				fadeRomInfoRating = text
				fadeRomInfoOrder = Description|SystemName|Year|Manufacturer|Genre|Rating
				fadeRomInfoTextPlacement = topRight
				fadeRomInfoTextMargin = 5
				fadeRomInfoText1Options = cFF555555 r4 s20 Bold
				fadeRomInfoText2Options = cFF555555 r4 s20 Bold
				fadeRomInfoText3Options = cFF555555 r4 s20 Bold
				fadeRomInfoText4Options = cFF555555 r4 s20 Bold
				fadeRomInfoText5Options = cFF555555 r4 s20 Bold
				fadeRomInfoText6Options = cFF555555 r4 s20 Bold
				fadeStats_Number_of_Times_Played = text with label
				fadeStats_Last_Time_Played = text with label
				fadeStats_Average_Time_Played = text with label
				fadeStats_Total_Time_Played = text with label
				fadeStats_System_Total_Played_Time = text with label
				fadeStats_Total_Global_Played_Time = text with label
				fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time
				fadeStatsInfoTextPlacement = topLeft
				fadeStatsInfoTextMargin = 5
				fadeStatsInfoText1Options = cFF555555 r4 s20 Bold
				fadeStatsInfoText2Options = cFF555555 r4 s20 Bold
				fadeStatsInfoText3Options = cFF555555 r4 s20 Bold
				fadeStatsInfoText4Options = cFF555555 r4 s20 Bold
				fadeStatsInfoText5Options = cFF555555 r4 s20 Bold
				fadeStatsInfoText6Options = cFF555555 r4 s20 Bold
				fadeText1X = 0
				fadeText1Y = 0
				fadeText1Options = cFFFFFFFF r4 s20 Right Bold
				fadeText1 = Loading Game
				fadeText2X = 0
				fadeText2Y = 0
				fadeText2Options = cFFFFFFFF r4 s20 Right Bold
				fadeText2 = Extraction Complete
				fadeFont = Arial
				fadeSystemAndRomLayersOnly = false
				fadeInterruptKey = 
				detectFadeErrorEnabled = true
				fadeImgPath = D:\---\Hyperspin\HyperLaunch\Media\Fade
				HLDataPath = D:\---\Hyperspin\HyperLaunch\Data
				HLMediaPath = D:\---\Hyperspin\HyperLaunch\Media
				HLErrSoundPath = D:\---\Hyperspin\HyperLaunch\Media\Sounds\Error
				modulesPath = D:\---\Hyperspin\HyperLaunch\Modules
				moduleFullName = D:\---\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk
				moduleName = ZSNESw
				modulePath = D:\---\Hyperspin\HyperLaunch\Modules\ZSNESw
				moduleExtension = ahk
				moduleExtensionsPath = D:\---\Hyperspin\HyperLaunch\Module Extensions
				libPath = D:\---\Hyperspin\HyperLaunch\Lib
				7zEnabled = false
				7zPath = D:\---\Hyperspin\HyperLaunch\Module Extensions\7z.exe
				7zDllPath = D:\---\Hyperspin\HyperLaunch\Module Extensions\7z.dll
				7zExtractPath = C:\Dokumente und Einstellungen\Steve\Lokale Einstellungen\Temp\HS
				7zExtractPathOrig = 
				7zAttachSystemName = false
				7zDelTemp = true
				7zSounds = true
				7zFormats = .zip,.rar,.7z,.lzh,.gzip,.tar
				7zFormatsNoP = zip,rar,7z,lzh,gzip,tar
				mgEnabled = false
				mgKey = ~NumpadSub
				mgBackgroundColor = FF000000
				mgSidePadding = 0.2
				mgYOffset = 500
				mgImageAdjust = 1
				mgFont = Arial
				mgText1Options = x10p y30p w80p Center cBBFFFFFF r4 s100 BoldItalic
				mgText1Text = Please select a game
				mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic
				mgText2Offset = 70
				mgUseSound = true
				mgSoundfreq = 300
				mgExitEffect = none
				mgSelectedEffect = rotate
				mgUseGameArt = false
				mgArtworkDir = Artwork1
				hpEnabled = false
				hpKey = ~NumpadAdd
				hpBackToMenuBarKey = X
				hpZoomInKey = C
				hpZoomOutKey = V
				hpScreenshotKey = ~PrintScreen
				hpHiToTextPath = D:\---\Hyperspin\HyperLaunch\Module Extensions\HiToText.exe
				hpSaveStateKeyCodes = 
				hpLoadStateKeyCodes = 
				keymapperEnabled = false
				keymapper = ahk
				xpadderFullPath = D:\---\Hyperspin\Utilities\Xpadder\xpadder.exe
				joyToKeyFullPath = D:\---\Hyperspin\Utilities\JoyToKey\JoyToKey.exe
				keymapperProfilePath = D:\---\Hyperspin\HyperLaunch\Profiles\ahk
				keymapperFrontEndProfileName = HyperSpin
				keymapperHyperLaunchProfileEnabled = false
				JoyIDsEnabled = false
				JoyIDsPreferredControllersSystem = use_global
				JoyIDsPreferredControllersGlobal = use_global
				CustomJoyNamesEnabled = false
				CustomJoyNames = 
				FEProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\HyperSpin
				defaultProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\_Default
				systemProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System
				xPadderSystemProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\_Default
				emuProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\ZSNESw
				romProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\Mr. Nutz
				blankProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\blank
				HyperLaunchProfile = D:\---\Hyperspin\HyperLaunch\Profiles\ahk\HyperLaunch
				bezelEnabled = false
				statisticsEnabled = true

00:41:16:500 | HL |     INFO  | +0     | BuildScript - Loaded XHotkey Init.ahk scripts
00:41:16:500 | HL |     INFO  | +0     | BuildScript - Loaded Statistics Init.ahk scripts
00:41:16:500 | HL |     INFO  | +0     | BuildScript - Loaded User Functions Init.ahk script
00:41:16:515 | HL |     INFO  | +16    | BuildScript - Module:
				MEmu = ZSNESw
				MEmuV =  v1.51
				MURL = http://www.zsnes.com/
				MAuthor = djvj
				MVersion = 2.0
				MCRC = 90F089AF
				iCRC = 3B0E8F48
				MID = 635038268938832977
				MSystem = "Super Nintendo Entertainment System"
				;----------------------------------------------------------------------------
				; Notes:
				; Make sure you set quickexit to your Exit_Emulator_Key key while in ZSNES.
				; If you want to use Esc as your quick exit key, open zsnesw.cfg with a text editor and find the lines below.
				; Set KeyQuickExit to 1, as shown below. You can't set the quick exit key to escape while in the emulator, because that's the exit key to configuring keys. 
				;
				; Quit ZSNES / Load Menu / Reset Game / Panic Key
				; KeyQuickExit=1
				; KeyQuickLoad=0
				; KeyQuickRst=0
				; KeyResetAll=42
				;----------------------------------------------------------------------------
				StartModule()
				FadeInStart()

				settingsFile := modulePath . "\" . moduleName . ".ini"
				Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)
				Stretch := IniReadCheck(settingsFile, "Settings", "Stretch","true",,1)
				resX := IniReadCheck(settingsFile, "Settings", "resX","1280",,1)
				resY := IniReadCheck(settingsFile, "Settings", "resY","1024",,1)
				DisplayRomInfo := IniReadCheck(settingsFile, "Settings", "DisplayRomInfo","false",,1)	; Display rom info on load along bottom of screen

				SetKeyDelay, 50
				zsnesFile := CheckFile(emuPath . "\zsnesw.cfg")
				FileRead, zsnesCfg, %zsnesFile%

				xLine := TF_Find(zsnesCfg,"","","CustomResX=") ; find location in zsnes cfg where it stores its custom X res
				yLine := TF_Find(zsnesCfg,"","","CustomResY=") ; find location in zsnes cfg where it stores its custom Y res
				modeLine := TF_Find(zsnesCfg,"","","cvidmode=") ; find location in zsnes cfg where it stores its custom vid mode
				zsnesCfg := TF_ReplaceLine(zsnesCfg,xLine,xLine,"CustomResX=" . resX) ; update custom X res in zsnes cfg file
				zsnesCfg := TF_ReplaceLine(zsnesCfg,yLine,yLine,"CustomResY=" . resY) ; update custom Yres in zsnes cfg file

				If ( Fullscreen = "true" && Stretch = "true" ) ; sets fullscreen, stretch, and filter support
					vidMode = 39
				Else If ( Fullscreen = "true" && Stretch != "true" ) ; sets fullscreen, correct aspect ratio, and filter support
					vidMode = 42
				Else ; sets windowed mode with filter support
					vidMode = 38

				zsnesCfg := TF_ReplaceLine(zsnesCfg,modeLine,modeLine,"cvidmode=" . vidMode) ; update custom vid mode in zsnes cfg file

				; Setting DisplayRomInfo setting in cfg if it doesn't match what user wants above
				currentDRI := (InStr(zsnesCfg, "DisplayInfo=1") ? ("true") : ("false"))
				If ( DisplayRomInfo != "true" And currentDRI = "true" ) {
					StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=1, DisplayInfo=0
				} Else If ( DisplayRomInfo = "true" And currentDRI = "false" ) {
					StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=0, DisplayInfo=1
				}

				SaveFile(zsnesCfg, zsnesFile) ; save changes to zsnesw.cfg

				7z(romPath, romName, romExtension, 7zExtractPath)

				Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)

				WinWait("ZSNES ahk_class ZSNES")
				WinWaitActive("ZSNES ahk_class ZSNES")

				FadeInExit()
				Process("WaitClose",executable)
				7zCleanUp()
				FadeOutExit()
				ExitModule()


				SaveFile(text,file) {
					FileDelete, %file%
					FileAppend, %text%, %file%
				}

				CloseProcess:
					FadeOutStart()
					SetWinDelay, 50
					Send, {Alt Down}{F4 Down}{F4 Up}{Alt Up} ; No other closing method seems to work
				Return


				TF_Find(Text, StartLine = 1, EndLine = 0, SearchText = "", ReturnFirst = 1, ReturnText = 0)
					{ ; complete rewrite for 3.1
					 TF_GetData(OW, Text, FileName)
					 If (RegExMatch(Text, SearchText) < 1)
					 	Return "0" ; SearchText not in file or error, do nothing
				     	 TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList
					 Loop, Parse, Text, `n
						{
						 If A_Index in %TF_MatchList%
						 	{
							 If (RegExMatch(A_LoopField, SearchText) > 0)
								{
								 If (ReturnText = 0)
									Lines .= A_Index "," ; line number
								 Else If (ReturnText = 1)
									Lines .= A_LoopField "`n" ; text of line 
								 Else If (ReturnText = 2)
									Lines .= A_Index ": " A_LoopField "`n" ; add line number
								 If (ReturnFirst = 1) ; only return first occurence
									Break
								}	
						 	}	
						}
					 If (Lines <> "")
						StringTrimRight, Lines, Lines, 1 ; trim trailing , or `n
					 Else
						Lines = 0 ; make sure we return 0
					 Return Lines
					}

				TF_ReplaceLine(Text, StartLine = 1, Endline = 0, ReplaceText = "")
					{
					 TF_GetData(OW, Text, FileName)
					 TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList
					 Loop, Parse, Text, `n, `r
						{
						 If A_Index in %TF_MatchList%
							Output .= ReplaceText "`n" 
						 Else 
							Output .= A_LoopField "`n"
						}
					 Return TF_ReturnOutPut(OW, OutPut, FileName)
					}

				TF_GetData(byref OW, byref Text, byref FileName) 
					{
					OW=0 ; default setting: asume it is a file and create file_copy
					IfNotInString, Text, `n ; it can be a file as the Text doesn't contact a newline character
						{
						 If (SubStr(Text,1,1)="!") ; first we check for "overwrite" 
							{
							 Text:=SubStr(Text,2)
							 OW=1 ; overwrite file (if it is a file)
							} 
						 IfNotExist, %Text% ; now we can check if the file exists, it doesn't so it is a var
						 {
						  If (OW=1) ; the variable started with a ! so we need to put it back because it is variable/text not a file
							Text:= "!" . Text
						  OW=2 ; no file, so it is a var or Text passed on directly to TF
						 }
						}
					Else ; there is a newline character in Text so it has to be a variable 
						{
						 OW=2
						}
				    If (OW = 0) or (OW = 1) ; it is a file, so we have to read into var Text
						{
					 	 Text := (SubStr(Text,1,1)="!") ? (SubStr(Text,2)) : Text
						 FileName=%Text% ; Store FileName
						 FileRead, Text, %Text% ; Read file and return as var Text
						 If (ErrorLevel > 0)
							{
					 		 MsgBox, 48, TF Lib Error, % "Can not read " FileName
							 ExitApp
							}
						}
					Return
					}

				TF_Count(String, Char)
					{
					StringReplace, String, String, %Char%,, UseErrorLevel
					Return ErrorLevel
					}

				TF_ReturnOutPut(OW, Text, FileName, TrimTrailing = 1, CreateNewFile = 0) { ; HugoV
					If (OW = 0) ; input was file, file_copy will be created, if it already exist file_copy will be overwritten
						{
						 IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e
						 	{
						 	 If (CreateNewFile = 1) ; CreateNewFile used for TF_SplitFileBy* and others
								{
								 OW = 1 
						 		 Goto CreateNewFile
								}
							 Else 
								Return
							}
						 If (TrimTrailing = 1)
							 StringTrimRight, Text, Text, 1 ; remove trailing `n
						SplitPath, FileName,, Dir, Ext, Name
						 If (Dir = "") ; if Dir is empty Text & script are in same directory
							Dir := A_ScriptDir
						 IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there
							FileCopy, % Dir "\" Name "_copy." Ext, % Dir "\backup\" Name "_copy.bak", 1
						 FileDelete, % Dir "\" Name "_copy." Ext
						 FileAppend, %Text%, % Dir "\" Name "_copy." Ext
						 Return Errorlevel ? False : True
						}
					 CreateNewFile:	
					 If (OW = 1) ; input was file, will be overwritten by output 
						{
						 IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e
						 	{
						 	If (CreateNewFile = 0) ; CreateNewFile used for TF_SplitFileBy* and others
						 		Return
							}
						 If (TrimTrailing = 1)
							 StringTrimRight, Text, Text, 1 ; remove trailing `n
						 SplitPath, FileName,, Dir, Ext, Name
						 If (Dir = "") ; if Dir is empty Text & script are in same directory
							Dir := A_ScriptDir
						 IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there
							FileCopy, % Dir "\" Name "." Ext, % Dir "\backup\" Name ".bak", 1
						 FileDelete, % Dir "\" Name "." Ext
						 FileAppend, %Text%, % Dir "\" Name "." Ext
						 Return Errorlevel ? False : True
						}
					If (OW = 2) ; input was var, return variable 
						{
						 If (TrimTrailing = 1)
							StringTrimRight, Text, Text, 1 ; remove trailing `n
						 Return Text
						}
					}

				_MakeMatchList(Text, Start = 1, End = 0)
					{
					ErrorList=
					 (join|
					 Error 01: Invalid StartLine parameter (non numerical character)
					 Error 02: Invalid EndLine parameter (non numerical character)
					 Error 03: Invalid StartLine parameter (only one + allowed)
					 )
					 StringSplit, ErrorMessage, ErrorList, |
					 Error = 0

				 	 TF_MatchList= ; just to be sure
					 If (Start = 0 or Start = "")
						Start = 1

					 ; some basic error checking

					 ; error: only digits - and + allowed
					 If (RegExReplace(Start, "[ 0-9+\-\,]", "") <> "")
						 Error = 1

					 If (RegExReplace(End, "[0-9 ]", "") <> "")
						 Error = 2

					 ; error: only one + allowed
					 If (TF_Count(Start,"+") > 1)
						 Error = 3

					 If (Error > 0 )
						{
						 MsgBox, 48, TF Lib Error, % ErrorMessage%Error%
						 ExitApp
						}

				 	 ; Option #1
					 ; StartLine has + character indicating startline + incremental processing. 
					 ; EndLine will be used
					 ; Make TF_MatchList

					 IfInString, Start, `+ 
						{
						 If (End = 0 or End = "") ; determine number of lines
							End:= TF_Count(Text, "`n") + 1
						 StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,
						 Loop, %Section0%
							{
							 StringSplit, SectionLines, Section%A_Index%, `+
							 LoopSection:=End + 1 - SectionLines1
							 Counter=0
					         	 TF_MatchList .= SectionLines1 ","
							 Loop, %LoopSection%
								{
								 If (A_Index >= End) ; 
									Break
								 If (Counter = (SectionLines2-1)) ; counter is smaller than the incremental value so skip
									{
									 TF_MatchList .= (SectionLines1 + A_Index) ","
									 Counter=0
									}
								 Else
									Counter++
								}
							}
						 StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing , 
						 Return TF_MatchList
						}

					 ; Option #2
					 ; StartLine has - character indicating from-to, COULD be multiple sections. 
					 ; EndLine will be ignored
					 ; Make TF_MatchList

					 IfInString, Start, `-
						{
						 StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,
						 Loop, %Section0%
							{
							 StringSplit, SectionLines, Section%A_Index%, `-
							 LoopSection:=SectionLines2 + 1 - SectionLines1
							 Loop, %LoopSection%
								{
								 TF_MatchList .= (SectionLines1 - 1 + A_Index) ","
								}
							}
						 StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,
						 Return TF_MatchList
						}

					 ; Option #3
					 ; StartLine has comma indicating multiple lines. 
					 ; EndLine will be ignored
					 IfInString, Start, `,
						{
						 TF_MatchList:=Start
						 Return TF_MatchList
						}

					 ; Option #4
					 ; parameters passed on as StartLine, EndLine. 
					 ; Make TF_MatchList from StartLine to EndLine

					 If (End = 0 or End = "") ; determine number of lines
							End:= TF_Count(Text, "`n") + 1
					 LoopTimes:=End-Start
					 Loop, %LoopTimes%
						{	
						 TF_MatchList .= (Start - 1 + A_Index) ","
						}
					 TF_MatchList .= End ","
					 StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,
					 Return TF_MatchList
					}

00:41:16:515 | HL |     INFO  | +0     | BuildScript - Loaded Statistics.ahk script
00:41:16:515 | HL |     INFO  | +0     | BuildScript - Loaded User Functions.ahk script
00:41:16:515 | HL |     INFO  | +0     | BuildScript - Finished injecting functions into module
00:41:16:515 | HL |     INFO  | +0     | Main - Module is built
00:41:16:515 | HL |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\HyperLaunch\AutoHotkey.dll exists
00:41:16:515 | HL |     INFO  | +0     | Main - Running module
00:41:16:609 | MD |     INFO  | +N/A   | Module initialized
00:41:16:640 | MD |     INFO  | +32    | StartModule - Started
00:41:16:640 | MD |     INFO  | +0     | StartModule - MEmu: ZSNESw
				MEmuV: v1.51
				MURL: http://www.zsnes.com/
				MAuthor: djvj
				MVersion: 2.0
				MCRC: 90F089AF
				iCRC: 3B0E8F48
				MID: 
				MSystem: "Super Nintendo Entertainment System"
00:41:16:640 | MD |     INFO  | +0     | StartModule - You have a supported System Name for this module: "Super Nintendo Entertainment System"
00:41:16:640 | MD |     INFO  | +0     | StartModule - Ended
00:41:16:640 | MD |     INFO  | +0     | StartGlobalUserFeatures - Starting
00:41:16:640 | MD |     INFO  | +0     | StartGlobalUserFeatures - Ending
00:41:16:640 | MD |     INFO  | +0     | Module Setting - Fullscreen: true
00:41:16:640 | MD |     INFO  | +0     | Module Setting - Stretch: true
00:41:16:640 | MD |     INFO  | +0     | Module Setting - resX: 1280
00:41:16:640 | MD |     INFO  | +0     | Module Setting - resY: 1024
00:41:16:640 | MD |     INFO  | +0     | Module Setting - DisplayRomInfo: false
00:41:16:640 | MD |     INFO  | +0     | CheckFile - Checking if D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.cfg exists
00:41:16:656 | MD |     INFO  | +15    | Module Run - Running: D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe "D:\---\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Mr. Nutz.smc"
00:41:16:687 | MD |     INFO  | +31    | Module WinWait - Waiting for ZSNES ahk_class ZSNES
00:41:17:156 | MD |     INFO  | +469   | Module WinWaitActive - Waiting for "ZSNES ahk_class ZSNES"
00:41:17:265 | MD |     INFO  | +110   | Module Process - WaitClose zsnesw.exe 
00:41:30:062 | MD |     INFO  | +12796 | StopGlobalUserFeatures - Starting
00:41:30:062 | MD |     INFO  | +0     | StopGlobalUserFeatures - Ending
00:41:30:062 | MD |     INFO  | +0     | ExitModule - Started
00:41:30:062 | MD |     INFO  | +0     | Starting Updating Statistics:
00:41:30:062 | MD |     INFO  | +0     | CreateRomTable - Started
00:41:30:062 | MD |     INFO  | +0     | CreateRomTable - Ended, 7 Loops to create table.
00:41:30:171 | MD |     INFO  | +110   | Game section statistics updated.
00:41:30:171 | MD |     INFO  | +0     | ExitModule - Ended
00:41:30:171 | MD |     INFO  | +0     | End of Module Logs
00:41:30:281 | HL |     INFO  | +13765 | Main - Module ended, exiting HyperLaunch normally
00:41:30:281 | HL |     INFO  | +0     | ExitScript - Started
00:41:30:296 | HL |     INFO  | +16    | SystemCursor - Restoring mouse cursor
00:41:30:296 | HL |     INFO  | +0     | ExitScript - Ended

I just tried it with ePSXe and it seems to be that there is no problem. Maybe could it be... in the log I read "Main - CRC check - crc does not match official module...", but I use the correct 1.51 Version?

Posted

So if it only does it with one emu, stop using that emu. Hl doesn't leave anything behind. So this has nothing to do with HL. Something with zsnes is getting left behind or something it uses to function.

If you insist on using that one emu, you want to start playing with its options and see if you can make it stop happening. Possibly scan your running processes before and after to see if there are any differences.

Sent from my Samsung Galaxy S3 using Tapatalk 4.

Posted

Yea but then HL wouldn't launch again if it did. He is saying he is able to open zsnes after this happens and not close. Unless that is not the truth.

Posted

Just tried it again and had the same issue in ePSXe, so it seems to be that it is not only an zsnes problem. What happens in zsnes is: If the error appears I have to press esc, then the emu menu pops up in HS and I have to close the emu via the "x" icon of the emu. So, I think HS loses control over zsnesw at the point where the key problem appears. After closing the emu HS takes back control because then I can navigate again in HS menus/wheels. Only the new key is still not working until I restart windows. Sometimes, but only sometimes, it suffices to restart HS and it recognized the key again.

Posted

Why not djvj? As long as HL doesn't stay running it will launch another instance of the emu just fine.

fuzzi, like it was already suggested make sure you check your running processes after that problem happens. Also first you mention znes now snes9x so which one is it after all?

Posted

Ups.. sorry, I mean zsnes. Slowly I get into a mess with all that testing and changing emus to arrive at a positive result. :P Also, it's pretty hard to realize what's really happens. As I say before, eG ePSXe, I try closing it 20 times and 1 times the issue appears, so I can not really say if it's on zsnes. What running processes do you mean? HL or zsnes? Because they all close correctly, no process is runnung after problem appears.

Posted

I mean zsnes, because if HL was left running you'd never be able to launch any other game from that point on. Are you actually checking the task manager for running processes after the problem appears? Because it would be very very strange for the exit key to stop working out of the blue unless emulator isn't running in the background.

Also post a log for when the exit key isn't working because in your log above it appears everything was exiting just fine.

Posted

brolly, 2 things happen to prevent HL from accidentally being launched a 2nd time.

1) If the executable is currently running (emu), HL will not start

2) Multiple launches of HL are not allowed via #SingleInstance Ignore

I'm sure you remember all those complaints about multiple HLs being allowed to open. The above is what I had to put in place to try to prevent that.

Posted

I knew about #2, but wasn't aware of #1 I guess you added meanwhile and I missed it somehow. Will you show any error if the emulator is already running?

Posted

Yes it shows in an error, but only in the log. Otherwise I can't for good reason. You don't want to see errors on your screen when you launch HL twice and the first was legitimate. I have no way to differentiate between an accidental launch and a properly mitigated 2nd launch. If I did, I would utilize that difference and script around it to identify one or the other and handle it all differently.

Posted

Ok, again to make it clear (I hope). Just tried it again, this time the error is different. I launch zsnes, close it via "f", the 3rd time the issue appears and "f" has no effect. But this time, if I press esc, HL works fine. Esc closed zsnes and I can start zsnes via HL again but only "f" still desen't work until I restart HL. This are my processes exactly after the effect appears (sorry but I use a german XP but I think the processes are clear):

wXmK6nnI.jpeg

And here are the logfile directly after it appears, and before closing zsnes or HL:


16:20:46:796 | HL | INFO | +N/A | Main - HyperLaunch v3.0.0.9

16:20:46:796 | HL | INFO | +0 | Main - System Specs:

HyperLaunch Dir: D:\Hyperspin\HyperLaunch

OS: WIN_XP

Architecture: 32-bit (might not be accurate)

OS Language: German_Standard

OS Admin Status: Yes

Monitor #1 (\\.\DISPLAY1): 1280x1024 (1280x1024 work)

AutoHotkey Path:

AHK Version: 1.1.09.04

Unicode: No

16:20:46:796 | HL | INFO | +0 | Main - HyperSpin.exe coordinates are x0 y0 w1280 h1024

16:20:46:796 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\HyperLaunch.exe exists

16:20:46:796 | HL | INFO | +0 | Main - HyperLaunch received "Super Nintendo Entertainment System" and "Super Mario World"

16:20:46:796 | HL | INFO | +0 | Main - Super Mario World is using the default emulator: ZSNESw

16:20:46:796 | HL | INFO | +0 | Main - Checking for a [ZSNESw] section in D:\Hyperspin\HyperLaunch\Settings\Super Nintendo Entertainment System\Emulators.ini

16:20:46:796 | HL | INFO | +0 | Main - Checking for a [ZSNESw] section in D:\Hyperspin\HyperLaunch\Settings\Global Emulators.ini

16:20:46:796 | HL | INFO | +0 | Main - Found [ZSNESw] in D:\Hyperspin\HyperLaunch\Settings\Global Emulators.ini

16:20:46:796 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk exists

16:20:46:796 | HL | WARNING | +0 | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.

16:20:46:796 | HL | INFO | +0 | Main - Super Mario World will use module: D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk

16:20:46:812 | HL | INFO | +15 | Main - Using standard method with "Rom Extensions" SkipChecks or without any SkipChecks.

16:20:46:812 | HL | INFO | +0 | Main - INI Keys read

16:20:46:812 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\7z.exe exists

16:20:46:812 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\7z.dll exists

16:20:46:812 | HL | INFO | +0 | CheckPaths - Started

16:20:46:812 | HL | INFO | +0 | CheckPaths - Found rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.smc

16:20:46:812 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe exists

16:20:46:812 | HL | INFO | +0 | CheckPaths - Ended

16:20:46:812 | HL | INFO | +0 | BuildScript - User Variables:

;----------------------------------------------------------------------------

; INJECTED VARIABLES

;----------------------------------------------------------------------------

#NoTrayIcon

#InstallKeybdHook

DetectHiddenWindows, ON

SetTitleMatchMode, 2

SendMode, Event

0 = 2

frontendPID = 3532

frontendPath = D:\Hyperspin

frontendExe = HyperSpin.exe

frontendExt = exe

frontendName = HyperSpin

frontendDrive = D:

exitEmulatorKey = ~Esc|F

exitEmulatorKeyWait = 0

forceHoldKey = ~Esc

restoreFE = false

exitScriptKey = ~q & ~s

emuFullPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe

emuPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System

emuName = ZSNESw

emuExt = exe

romPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms

romPathFromIni = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms

romExtension = .smc

romExtensionOrig = .smc

romExtensions = 7z|zip|sfc|smc

executable = zsnesw.exe

systemName = Super Nintendo Entertainment System

dbName = Super Mario World

romName =

romMapPath =

romMappingEnabled = false

romMappingLaunchMenuEnabled = false

romMappingFirstMatchingExt = false

romMappingShowAllRomsInArchive = true

romMappingNumberOfWheelsByScreen = 7

romMappingMenuWidth = 300

romMappingMenuMargin = 50

romMappingTextFont = Bebas Neue

romMappingTextOptions = cFFFFFFFF r4 s40 Bold

romMappingDisabledTextColor = ff888888

romMappingTextSizeDifference = 5

romMappingTextMargin = 10

romMappingTitleTextFont = Bebas Neue

romMappingTitleTextOptions = cFFFFFFFF r4 s60 Bold

romMappingTitle2TextFont = Bebas Neue

romMappingTitle2TextOptions = cFFFFFFFF r4 s15 Bold

romMappingGameInfoTextFont = Bebas Neue

romMappingGameInfoTextOptions = cFFFFFFFF r4 s15 Regular

romMappingBackgroundBrush = aa000000

romMappingColumnBrush = 33000000

romMappingButtonBrush1 = 6f000000

romMappingButtonBrush2 = 33000000

romMappingBackgroundAlign = Stretch and Lose Aspect

romMappingMenuFlagWidth = 40

romMappingMenuFlagSeparation = 5

romMappingDefaultMenuList = FullList

romMappingSingleFilteredRomAutomaticLaunch = false

skipchecks = false

romMatchExt = true

logFile = D:\Hyperspin\HyperLaunch\HyperLaunch.log

logLabel := [" INFO"," WARNING"," ERROR"," DEBUG1"," DEBUG2"]

logLevel = 3

logIncludeModule = true

logIncludeFileProperties = true

logShowCommandWindow = false

logCommandWindow = false

navUpKey = Up

navDownKey = Down

navLeftKey = Left

navRightKey = Right

navSelectKey = Enter

navP2UpKey = Numpad8

navP2DownKey = Numpad2

navP2LeftKey = Numpad4

navP2RightKey = Numpad6

navP2SelectKey = NumpadEnter

originalWidth = 1280

originalHeight = 1024

dtEnabled = true

dtPath =

dtUseSCSI = true

dtAddDrive = true

emuIdleShutdown = 0

hideEmu = false

hideFE = false

fadeIn = false

fadeInDuration = 500

fadeInTransitionAnimation = DefaultAnimateFadeIn

fadeInDelay = 0

fadeInExitDelay = 0

fadeOutExitDelay = 0

fadeOut = false

fadeOutDuration = 500

fadeOutTransitionAnimation = DefaultAnimateFadeOut

fadeOutDelay = 0

fadeLyrInterpolation = 7

fadeLyr1Color = FF000000

fadeLyr1AlignImage = Align to Top Left

fadeLyr2Pos = Bottom Right Corner

fadeLyr2X = 300

fadeLyr2Y = 300

fadeLyr2Adjust = 1

fadeLyr2PicPad = 0

fadeLyr3Pos = Center

fadeLyr3X = 300

fadeLyr3Y = 300

fadeLyr3Adjust = 0.75

fadeLyr3Speed = 750

fadeLyr3Animation = DefaultFadeAnimation

fadeLyr37zAnimation = DefaultFadeAnimation

fadeLyr3Type = imageandbar

fadeLyr3ImgFollow7zProgress = true

fadeLyr3Repeat = 1

fadeLyr3PicPad = 0

fadeLyr4Adjust = 0.75

fadeLyr4X = 100

fadeLyr4Y = 100

fadeLyr4Pos = Above Layer 3 - Left

fadeLyr4FPS = 10

fadeLyr4PicPad = 0

fadeTranspGifColor = FFFFFF

fadeBarWindow = false

fadeBarWindowX =

fadeBarWindowY =

fadeBarWindowW = 600

fadeBarWindowH = 120

fadeBarWindowR = 20

fadeBarWindowM = 20

fadeBarWindowHatchStyle = 8

fadeBarBack = true

fadeBarBackColor = FF555555

fadeBarH = 20

fadeBarR = 5

fadeBarColor = DD00BFFF

fadeBarHatchStyle = 3

fadeBarPercentageText = true

fadeBarInfoText = true

fadeBarXOffset = 0

fadeBarYOffset = 100

fadeRomInfoDescription = text

fadeRomInfoSystemName = text

fadeRomInfoYear = text

fadeRomInfoManufacturer = text

fadeRomInfoGenre = text

fadeRomInfoRating = text

fadeRomInfoOrder = Description|SystemName|Year|Manufacturer|Genre|Rating

fadeRomInfoTextPlacement = topRight

fadeRomInfoTextMargin = 5

fadeRomInfoText1Options = cFF555555 r4 s20 Bold

fadeRomInfoText2Options = cFF555555 r4 s20 Bold

fadeRomInfoText3Options = cFF555555 r4 s20 Bold

fadeRomInfoText4Options = cFF555555 r4 s20 Bold

fadeRomInfoText5Options = cFF555555 r4 s20 Bold

fadeRomInfoText6Options = cFF555555 r4 s20 Bold

fadeStats_Number_of_Times_Played = text with label

fadeStats_Last_Time_Played = text with label

fadeStats_Average_Time_Played = text with label

fadeStats_Total_Time_Played = text with label

fadeStats_System_Total_Played_Time = text with label

fadeStats_Total_Global_Played_Time = text with label

fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time

fadeStatsInfoTextPlacement = topLeft

fadeStatsInfoTextMargin = 5

fadeStatsInfoText1Options = cFF555555 r4 s20 Bold

fadeStatsInfoText2Options = cFF555555 r4 s20 Bold

fadeStatsInfoText3Options = cFF555555 r4 s20 Bold

fadeStatsInfoText4Options = cFF555555 r4 s20 Bold

fadeStatsInfoText5Options = cFF555555 r4 s20 Bold

fadeStatsInfoText6Options = cFF555555 r4 s20 Bold

fadeText1X = 0

fadeText1Y = 0

fadeText1Options = cFFFFFFFF r4 s20 Right Bold

fadeText1 = Loading Game

fadeText2X = 0

fadeText2Y = 0

fadeText2Options = cFFFFFFFF r4 s20 Right Bold

fadeText2 = Extraction Complete

fadeFont = Arial

fadeSystemAndRomLayersOnly = false

fadeInterruptKey =

detectFadeErrorEnabled = true

fadeImgPath = D:\Hyperspin\HyperLaunch\Media\Fade

HLDataPath = D:\Hyperspin\HyperLaunch\Data

HLMediaPath = D:\Hyperspin\HyperLaunch\Media

HLErrSoundPath = D:\Hyperspin\HyperLaunch\Media\Sounds\Error

modulesPath = D:\Hyperspin\HyperLaunch\Modules

moduleFullName = D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk

moduleName = ZSNESw

modulePath = D:\Hyperspin\HyperLaunch\Modules\ZSNESw

moduleExtension = ahk

moduleExtensionsPath = D:\Hyperspin\HyperLaunch\Module Extensions

libPath = D:\Hyperspin\HyperLaunch\Lib

7zEnabled = false

7zPath = D:\Hyperspin\HyperLaunch\Module Extensions\7z.exe

7zDllPath = D:\Hyperspin\HyperLaunch\Module Extensions\7z.dll

7zExtractPath = C:\Dokumente und Einstellungen\Arcade Machine\Lokale Einstellungen\Temp\HS

7zExtractPathOrig =

7zAttachSystemName = false

7zDelTemp = true

7zSounds = true

7zFormats = .zip,.rar,.7z,.lzh,.gzip,.tar

7zFormatsNoP = zip,rar,7z,lzh,gzip,tar

mgEnabled = false

mgKey = ~NumpadSub

mgBackgroundColor = FF000000

mgSidePadding = 0.2

mgYOffset = 500

mgImageAdjust = 1

mgFont = Arial

mgText1Options = x10p y30p w80p Center cBBFFFFFF r4 s100 BoldItalic

mgText1Text = Please select a game

mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic

mgText2Offset = 70

mgUseSound = true

mgSoundfreq = 300

mgExitEffect = none

mgSelectedEffect = rotate

mgUseGameArt = false

mgArtworkDir = Artwork1

hpEnabled = false

hpKey = ~NumpadAdd

hpBackToMenuBarKey = X

hpZoomInKey = C

hpZoomOutKey = V

hpScreenshotKey = ~PrintScreen

hpHiToTextPath = D:\Hyperspin\HyperLaunch\Module Extensions\HiToText.exe

hpSaveStateKeyCodes =

hpLoadStateKeyCodes =

keymapperEnabled = false

keymapper = ahk

xpadderFullPath = D:\Hyperspin\Utilities\Xpadder\xpadder.exe

joyToKeyFullPath = D:\Hyperspin\Utilities\JoyToKey\JoyToKey.exe

keymapperProfilePath = D:\Hyperspin\HyperLaunch\Profiles\ahk

keymapperFrontEndProfileName = HyperSpin

keymapperHyperLaunchProfileEnabled = false

JoyIDsEnabled = false

JoyIDsPreferredControllersSystem = use_global

JoyIDsPreferredControllersGlobal = use_global

CustomJoyNamesEnabled = false

CustomJoyNames =

FEProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\HyperSpin

defaultProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\_Default

systemProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System

xPadderSystemProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\_Default

emuProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\ZSNESw

romProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\Super Mario World

blankProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\blank

HyperLaunchProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\HyperLaunch

bezelEnabled = false

statisticsEnabled = true

16:20:46:812 | HL | INFO | +0 | BuildScript - Loaded XHotkey Init.ahk scripts

16:20:46:812 | HL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts

16:20:46:812 | HL | INFO | +0 | BuildScript - Loaded User Functions Init.ahk script

16:20:46:812 | HL | INFO | +0 | BuildScript - Module:

MEmu = ZSNESw

MEmuV = v1.51

MURL = http://www.zsnes.com/

MAuthor = djvj

MVersion = 2.0

MCRC = 90F089AF

iCRC = 3B0E8F48

MID = 635038268938832977

MSystem = "Super Nintendo Entertainment System"

;----------------------------------------------------------------------------

; Notes:

; Make sure you set quickexit to your Exit_Emulator_Key key while in ZSNES.

; If you want to use Esc as your quick exit key, open zsnesw.cfg with a text editor and find the lines below.

; Set KeyQuickExit to 1, as shown below. You can't set the quick exit key to escape while in the emulator, because that's the exit key to configuring keys.

;

; Quit ZSNES / Load Menu / Reset Game / Panic Key

; KeyQuickExit=1

; KeyQuickLoad=0

; KeyQuickRst=0

; KeyResetAll=42

;----------------------------------------------------------------------------

StartModule()

FadeInStart()

settingsFile := modulePath . "\" . moduleName . ".ini"

Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)

Stretch := IniReadCheck(settingsFile, "Settings", "Stretch","true",,1)

resX := IniReadCheck(settingsFile, "Settings", "resX","1280",,1)

resY := IniReadCheck(settingsFile, "Settings", "resY","1024",,1)

DisplayRomInfo := IniReadCheck(settingsFile, "Settings", "DisplayRomInfo","false",,1) ; Display rom info on load along bottom of screen

SetKeyDelay, 50

zsnesFile := CheckFile(emuPath . "\zsnesw.cfg")

FileRead, zsnesCfg, %zsnesFile%

xLine := TF_Find(zsnesCfg,"","","CustomResX=") ; find location in zsnes cfg where it stores its custom X res

yLine := TF_Find(zsnesCfg,"","","CustomResY=") ; find location in zsnes cfg where it stores its custom Y res

modeLine := TF_Find(zsnesCfg,"","","cvidmode=") ; find location in zsnes cfg where it stores its custom vid mode

zsnesCfg := TF_ReplaceLine(zsnesCfg,xLine,xLine,"CustomResX=" . resX) ; update custom X res in zsnes cfg file

zsnesCfg := TF_ReplaceLine(zsnesCfg,yLine,yLine,"CustomResY=" . resY) ; update custom Yres in zsnes cfg file

If ( Fullscreen = "true" && Stretch = "true" ) ; sets fullscreen, stretch, and filter support

vidMode = 39

Else If ( Fullscreen = "true" && Stretch != "true" ) ; sets fullscreen, correct aspect ratio, and filter support

vidMode = 42

Else ; sets windowed mode with filter support

vidMode = 38

zsnesCfg := TF_ReplaceLine(zsnesCfg,modeLine,modeLine,"cvidmode=" . vidMode) ; update custom vid mode in zsnes cfg file

; Setting DisplayRomInfo setting in cfg if it doesn't match what user wants above

currentDRI := (InStr(zsnesCfg, "DisplayInfo=1") ? ("true") : ("false"))

If ( DisplayRomInfo != "true" And currentDRI = "true" ) {

StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=1, DisplayInfo=0

} Else If ( DisplayRomInfo = "true" And currentDRI = "false" ) {

StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=0, DisplayInfo=1

}

SaveFile(zsnesCfg, zsnesFile) ; save changes to zsnesw.cfg

7z(romPath, romName, romExtension, 7zExtractPath)

Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)

WinWait("ZSNES ahk_class ZSNES")

WinWaitActive("ZSNES ahk_class ZSNES")

FadeInExit()

Process("WaitClose",executable)

7zCleanUp()

FadeOutExit()

ExitModule()

SaveFile(text,file) {

FileDelete, %file%

FileAppend, %text%, %file%

}

CloseProcess:

FadeOutStart()

SetWinDelay, 50

Send, {Alt Down}{F4 Down}{F4 Up}{Alt Up} ; No other closing method seems to work

Return

TF_Find(Text, StartLine = 1, EndLine = 0, SearchText = "", ReturnFirst = 1, ReturnText = 0)

{ ; complete rewrite for 3.1

TF_GetData(OW, Text, FileName)

If (RegExMatch(Text, SearchText) < 1)

Return "0" ; SearchText not in file or error, do nothing

TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList

Loop, Parse, Text, `n

{

If A_Index in %TF_MatchList%

{

If (RegExMatch(A_LoopField, SearchText) > 0)

{

If (ReturnText = 0)

Lines .= A_Index "," ; line number

Else If (ReturnText = 1)

Lines .= A_LoopField "`n" ; text of line

Else If (ReturnText = 2)

Lines .= A_Index ": " A_LoopField "`n" ; add line number

If (ReturnFirst = 1) ; only return first occurence

Break

}

}

}

If (Lines <> "")

StringTrimRight, Lines, Lines, 1 ; trim trailing , or `n

Else

Lines = 0 ; make sure we return 0

Return Lines

}

TF_ReplaceLine(Text, StartLine = 1, Endline = 0, ReplaceText = "")

{

TF_GetData(OW, Text, FileName)

TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList

Loop, Parse, Text, `n, `r

{

If A_Index in %TF_MatchList%

Output .= ReplaceText "`n"

Else

Output .= A_LoopField "`n"

}

Return TF_ReturnOutPut(OW, OutPut, FileName)

}

TF_GetData(byref OW, byref Text, byref FileName)

{

OW=0 ; default setting: asume it is a file and create file_copy

IfNotInString, Text, `n ; it can be a file as the Text doesn't contact a newline character

{

If (SubStr(Text,1,1)="!") ; first we check for "overwrite"

{

Text:=SubStr(Text,2)

OW=1 ; overwrite file (if it is a file)

}

IfNotExist, %Text% ; now we can check if the file exists, it doesn't so it is a var

{

If (OW=1) ; the variable started with a ! so we need to put it back because it is variable/text not a file

Text:= "!" . Text

OW=2 ; no file, so it is a var or Text passed on directly to TF

}

}

Else ; there is a newline character in Text so it has to be a variable

{

OW=2

}

If (OW = 0) or (OW = 1) ; it is a file, so we have to read into var Text

{

Text := (SubStr(Text,1,1)="!") ? (SubStr(Text,2)) : Text

FileName=%Text% ; Store FileName

FileRead, Text, %Text% ; Read file and return as var Text

If (ErrorLevel > 0)

{

MsgBox, 48, TF Lib Error, % "Can not read " FileName

ExitApp

}

}

Return

}

TF_Count(String, Char)

{

StringReplace, String, String, %Char%,, UseErrorLevel

Return ErrorLevel

}

TF_ReturnOutPut(OW, Text, FileName, TrimTrailing = 1, CreateNewFile = 0) { ; HugoV

If (OW = 0) ; input was file, file_copy will be created, if it already exist file_copy will be overwritten

{

IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e

{

If (CreateNewFile = 1) ; CreateNewFile used for TF_SplitFileBy* and others

{

OW = 1

Goto CreateNewFile

}

Else

Return

}

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

SplitPath, FileName,, Dir, Ext, Name

If (Dir = "") ; if Dir is empty Text & script are in same directory

Dir := A_ScriptDir

IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there

FileCopy, % Dir "\" Name "_copy." Ext, % Dir "\backup\" Name "_copy.bak", 1

FileDelete, % Dir "\" Name "_copy." Ext

FileAppend, %Text%, % Dir "\" Name "_copy." Ext

Return Errorlevel ? False : True

}

CreateNewFile:

If (OW = 1) ; input was file, will be overwritten by output

{

IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e

{

If (CreateNewFile = 0) ; CreateNewFile used for TF_SplitFileBy* and others

Return

}

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

SplitPath, FileName,, Dir, Ext, Name

If (Dir = "") ; if Dir is empty Text & script are in same directory

Dir := A_ScriptDir

IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there

FileCopy, % Dir "\" Name "." Ext, % Dir "\backup\" Name ".bak", 1

FileDelete, % Dir "\" Name "." Ext

FileAppend, %Text%, % Dir "\" Name "." Ext

Return Errorlevel ? False : True

}

If (OW = 2) ; input was var, return variable

{

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

Return Text

}

}

_MakeMatchList(Text, Start = 1, End = 0)

{

ErrorList=

(join|

Error 01: Invalid StartLine parameter (non numerical character)

Error 02: Invalid EndLine parameter (non numerical character)

Error 03: Invalid StartLine parameter (only one + allowed)

)

StringSplit, ErrorMessage, ErrorList, |

Error = 0

TF_MatchList= ; just to be sure

If (Start = 0 or Start = "")

Start = 1

; some basic error checking

; error: only digits - and + allowed

If (RegExReplace(Start, "[ 0-9+\-\,]", "") <> "")

Error = 1

If (RegExReplace(End, "[0-9 ]", "") <> "")

Error = 2

; error: only one + allowed

If (TF_Count(Start,"+") > 1)

Error = 3

If (Error > 0 )

{

MsgBox, 48, TF Lib Error, % ErrorMessage%Error%

ExitApp

}

; Option #1

; StartLine has + character indicating startline + incremental processing.

; EndLine will be used

; Make TF_MatchList

IfInString, Start, `+

{

If (End = 0 or End = "") ; determine number of lines

End:= TF_Count(Text, "`n") + 1

StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,

Loop, %Section0%

{

StringSplit, SectionLines, Section%A_Index%, `+

LoopSection:=End + 1 - SectionLines1

Counter=0

TF_MatchList .= SectionLines1 ","

Loop, %LoopSection%

{

If (A_Index >= End) ;

Break

If (Counter = (SectionLines2-1)) ; counter is smaller than the incremental value so skip

{

TF_MatchList .= (SectionLines1 + A_Index) ","

Counter=0

}

Else

Counter++

}

}

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

; Option #2

; StartLine has - character indicating from-to, COULD be multiple sections.

; EndLine will be ignored

; Make TF_MatchList

IfInString, Start, `-

{

StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,

Loop, %Section0%

{

StringSplit, SectionLines, Section%A_Index%, `-

LoopSection:=SectionLines2 + 1 - SectionLines1

Loop, %LoopSection%

{

TF_MatchList .= (SectionLines1 - 1 + A_Index) ","

}

}

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

; Option #3

; StartLine has comma indicating multiple lines.

; EndLine will be ignored

IfInString, Start, `,

{

TF_MatchList:=Start

Return TF_MatchList

}

; Option #4

; parameters passed on as StartLine, EndLine.

; Make TF_MatchList from StartLine to EndLine

If (End = 0 or End = "") ; determine number of lines

End:= TF_Count(Text, "`n") + 1

LoopTimes:=End-Start

Loop, %LoopTimes%

{

TF_MatchList .= (Start - 1 + A_Index) ","

}

TF_MatchList .= End ","

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

16:20:46:812 | HL | INFO | +0 | BuildScript - Loaded Statistics.ahk script

16:20:46:812 | HL | INFO | +0 | BuildScript - Loaded User Functions.ahk script

16:20:46:812 | HL | INFO | +0 | BuildScript - Finished injecting functions into module

16:20:46:812 | HL | INFO | +0 | Main - Module is built

16:20:46:812 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\AutoHotkey.dll exists

16:20:46:812 | HL | INFO | +0 | Main - Running module

As I wrote before: Sometimes I have to completely restart windows to make "f" working again in HL (or set "f" again in HLHQ). Sometimes it suffices to restart HL. And sometimes HL loses completely control and zsnes runs in the background, so I then have to close the emu itself and also kill the HL process to return to normality.

Posted

You forgot to set your log level to DEBUG1, it's in INFO level. But yeah it doesn't seem like it's entering the ExitModule function, even though I'm not sure if that gets logged at INFO level. Is that log AFTER you pressed 'f' and the emulator didn't close?

Also this seem suspect:

16:20:46:796 | HL | WARNING | +0 | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.

Did you edit anything in the module?

And finally, did you set your exit key in ZSNES as per the module notes?

Posted

1. I can only set min. to Debug1, is this correct? OK, here are the log with Debug1 set (ah and yes, it's AFTER pressing "f" and emu does not closed via HL):

22:09:14:828 | HL | INFO | +N/A | Main - HyperLaunch v3.0.0.9

22:09:14:828 | HL | INFO | +0 | Main - System Specs:

HyperLaunch Dir: D:\Hyperspin\HyperLaunch

OS: WIN_XP

Architecture: 32-bit (might not be accurate)

OS Language: German_Standard

OS Admin Status: Yes

Monitor #1 (\\.\DISPLAY1): 1280x1024 (1280x1024 work)

AutoHotkey Path:

AHK Version: 1.1.09.04

Unicode: No

22:09:14:828 | HL | INFO | +0 | Main - HyperSpin.exe coordinates are x0 y0 w1280 h1024

22:09:14:828 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\HyperLaunch.exe exists

22:09:14:828 | HL | INFO | +0 | Main - HyperLaunch received "Super Nintendo Entertainment System" and "Super Mario World"

22:09:14:828 | HL | INFO | +0 | Main - Super Mario World is using the default emulator: ZSNESw

22:09:14:828 | HL | INFO | +0 | Main - Checking for a [ZSNESw] section in D:\Hyperspin\HyperLaunch\Settings\Super Nintendo Entertainment System\Emulators.ini

22:09:14:828 | HL | INFO | +0 | Main - Checking for a [ZSNESw] section in D:\Hyperspin\HyperLaunch\Settings\Global Emulators.ini

22:09:14:828 | HL | INFO | +0 | Main - Found [ZSNESw] in D:\Hyperspin\HyperLaunch\Settings\Global Emulators.ini

22:09:14:828 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk exists

22:09:14:843 | HL | WARNING | +16 | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.

22:09:14:843 | HL | INFO | +0 | Main - Super Mario World will use module: D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk

22:09:14:843 | HL | INFO | +0 | Main - Using standard method with "Rom Extensions" SkipChecks or without any SkipChecks.

22:09:14:843 | HL | INFO | +0 | Main - INI Keys read

22:09:14:843 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\7z.exe exists

22:09:14:843 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\7z.dll exists

22:09:14:843 | HL | INFO | +0 | CheckPaths - Started

22:09:14:843 | HL | INFO | +0 | CheckPaths - Found rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.smc

22:09:14:843 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe exists

22:09:14:843 | HL | INFO | +0 | CheckPaths - Ended

22:09:14:843 | HL | INFO | +0 | BuildScript - User Variables:

;----------------------------------------------------------------------------

; INJECTED VARIABLES

;----------------------------------------------------------------------------

#NoTrayIcon

#InstallKeybdHook

DetectHiddenWindows, ON

SetTitleMatchMode, 2

SendMode, Event

0 = 2

frontendPID = 1344

frontendPath = D:\Hyperspin

frontendExe = HyperSpin.exe

frontendExt = exe

frontendName = HyperSpin

frontendDrive = D:

exitEmulatorKey = ~Esc|F

exitEmulatorKeyWait = 0

forceHoldKey = ~Esc

restoreFE = false

exitScriptKey = ~q & ~s

emuFullPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe

emuPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System

emuName = ZSNESw

emuExt = exe

romPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms

romPathFromIni = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms

romExtension = .smc

romExtensionOrig = .smc

romExtensions = 7z|zip|sfc|smc

executable = zsnesw.exe

systemName = Super Nintendo Entertainment System

dbName = Super Mario World

romName =

romMapPath =

romMappingEnabled = false

romMappingLaunchMenuEnabled = false

romMappingFirstMatchingExt = false

romMappingShowAllRomsInArchive = true

romMappingNumberOfWheelsByScreen = 7

romMappingMenuWidth = 300

romMappingMenuMargin = 50

romMappingTextFont = Bebas Neue

romMappingTextOptions = cFFFFFFFF r4 s40 Bold

romMappingDisabledTextColor = ff888888

romMappingTextSizeDifference = 5

romMappingTextMargin = 10

romMappingTitleTextFont = Bebas Neue

romMappingTitleTextOptions = cFFFFFFFF r4 s60 Bold

romMappingTitle2TextFont = Bebas Neue

romMappingTitle2TextOptions = cFFFFFFFF r4 s15 Bold

romMappingGameInfoTextFont = Bebas Neue

romMappingGameInfoTextOptions = cFFFFFFFF r4 s15 Regular

romMappingBackgroundBrush = aa000000

romMappingColumnBrush = 33000000

romMappingButtonBrush1 = 6f000000

romMappingButtonBrush2 = 33000000

romMappingBackgroundAlign = Stretch and Lose Aspect

romMappingMenuFlagWidth = 40

romMappingMenuFlagSeparation = 5

romMappingDefaultMenuList = FullList

romMappingSingleFilteredRomAutomaticLaunch = false

skipchecks = false

romMatchExt = true

logFile = D:\Hyperspin\HyperLaunch\HyperLaunch.log

logLabel := [" INFO"," WARNING"," ERROR"," DEBUG1"," DEBUG2"]

logLevel = 3

logIncludeModule = true

logIncludeFileProperties = true

logShowCommandWindow = false

logCommandWindow = false

navUpKey = Up

navDownKey = Down

navLeftKey = Left

navRightKey = Right

navSelectKey = Enter

navP2UpKey = Numpad8

navP2DownKey = Numpad2

navP2LeftKey = Numpad4

navP2RightKey = Numpad6

navP2SelectKey = NumpadEnter

originalWidth = 1280

originalHeight = 1024

dtEnabled = true

dtPath =

dtUseSCSI = true

dtAddDrive = true

emuIdleShutdown = 0

hideEmu = false

hideFE = false

fadeIn = false

fadeInDuration = 500

fadeInTransitionAnimation = DefaultAnimateFadeIn

fadeInDelay = 0

fadeInExitDelay = 0

fadeOutExitDelay = 0

fadeOut = false

fadeOutDuration = 500

fadeOutTransitionAnimation = DefaultAnimateFadeOut

fadeOutDelay = 0

fadeLyrInterpolation = 7

fadeLyr1Color = FF000000

fadeLyr1AlignImage = Align to Top Left

fadeLyr2Pos = Bottom Right Corner

fadeLyr2X = 300

fadeLyr2Y = 300

fadeLyr2Adjust = 1

fadeLyr2PicPad = 0

fadeLyr3Pos = Center

fadeLyr3X = 300

fadeLyr3Y = 300

fadeLyr3Adjust = 0.75

fadeLyr3Speed = 750

fadeLyr3Animation = DefaultFadeAnimation

fadeLyr37zAnimation = DefaultFadeAnimation

fadeLyr3Type = imageandbar

fadeLyr3ImgFollow7zProgress = true

fadeLyr3Repeat = 1

fadeLyr3PicPad = 0

fadeLyr4Adjust = 0.75

fadeLyr4X = 100

fadeLyr4Y = 100

fadeLyr4Pos = Above Layer 3 - Left

fadeLyr4FPS = 10

fadeLyr4PicPad = 0

fadeTranspGifColor = FFFFFF

fadeBarWindow = false

fadeBarWindowX =

fadeBarWindowY =

fadeBarWindowW = 600

fadeBarWindowH = 120

fadeBarWindowR = 20

fadeBarWindowM = 20

fadeBarWindowHatchStyle = 8

fadeBarBack = true

fadeBarBackColor = FF555555

fadeBarH = 20

fadeBarR = 5

fadeBarColor = DD00BFFF

fadeBarHatchStyle = 3

fadeBarPercentageText = true

fadeBarInfoText = true

fadeBarXOffset = 0

fadeBarYOffset = 100

fadeRomInfoDescription = text

fadeRomInfoSystemName = text

fadeRomInfoYear = text

fadeRomInfoManufacturer = text

fadeRomInfoGenre = text

fadeRomInfoRating = text

fadeRomInfoOrder = Description|SystemName|Year|Manufacturer|Genre|Rating

fadeRomInfoTextPlacement = topRight

fadeRomInfoTextMargin = 5

fadeRomInfoText1Options = cFF555555 r4 s20 Bold

fadeRomInfoText2Options = cFF555555 r4 s20 Bold

fadeRomInfoText3Options = cFF555555 r4 s20 Bold

fadeRomInfoText4Options = cFF555555 r4 s20 Bold

fadeRomInfoText5Options = cFF555555 r4 s20 Bold

fadeRomInfoText6Options = cFF555555 r4 s20 Bold

fadeStats_Number_of_Times_Played = text with label

fadeStats_Last_Time_Played = text with label

fadeStats_Average_Time_Played = text with label

fadeStats_Total_Time_Played = text with label

fadeStats_System_Total_Played_Time = text with label

fadeStats_Total_Global_Played_Time = text with label

fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time

fadeStatsInfoTextPlacement = topLeft

fadeStatsInfoTextMargin = 5

fadeStatsInfoText1Options = cFF555555 r4 s20 Bold

fadeStatsInfoText2Options = cFF555555 r4 s20 Bold

fadeStatsInfoText3Options = cFF555555 r4 s20 Bold

fadeStatsInfoText4Options = cFF555555 r4 s20 Bold

fadeStatsInfoText5Options = cFF555555 r4 s20 Bold

fadeStatsInfoText6Options = cFF555555 r4 s20 Bold

fadeText1X = 0

fadeText1Y = 0

fadeText1Options = cFFFFFFFF r4 s20 Right Bold

fadeText1 = Loading Game

fadeText2X = 0

fadeText2Y = 0

fadeText2Options = cFFFFFFFF r4 s20 Right Bold

fadeText2 = Extraction Complete

fadeFont = Arial

fadeSystemAndRomLayersOnly = false

fadeInterruptKey =

detectFadeErrorEnabled = true

fadeImgPath = D:\Hyperspin\HyperLaunch\Media\Fade

HLDataPath = D:\Hyperspin\HyperLaunch\Data

HLMediaPath = D:\Hyperspin\HyperLaunch\Media

HLErrSoundPath = D:\Hyperspin\HyperLaunch\Media\Sounds\Error

modulesPath = D:\Hyperspin\HyperLaunch\Modules

moduleFullName = D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk

moduleName = ZSNESw

modulePath = D:\Hyperspin\HyperLaunch\Modules\ZSNESw

moduleExtension = ahk

moduleExtensionsPath = D:\Hyperspin\HyperLaunch\Module Extensions

libPath = D:\Hyperspin\HyperLaunch\Lib

7zEnabled = false

7zPath = D:\Hyperspin\HyperLaunch\Module Extensions\7z.exe

7zDllPath = D:\Hyperspin\HyperLaunch\Module Extensions\7z.dll

7zExtractPath = C:\Dokumente und Einstellungen\Arcade Machine\Lokale Einstellungen\Temp\HS

7zExtractPathOrig =

7zAttachSystemName = false

7zDelTemp = true

7zSounds = true

7zFormats = .zip,.rar,.7z,.lzh,.gzip,.tar

7zFormatsNoP = zip,rar,7z,lzh,gzip,tar

mgEnabled = false

mgKey = ~NumpadSub

mgBackgroundColor = FF000000

mgSidePadding = 0.2

mgYOffset = 500

mgImageAdjust = 1

mgFont = Arial

mgText1Options = x10p y30p w80p Center cBBFFFFFF r4 s100 BoldItalic

mgText1Text = Please select a game

mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic

mgText2Offset = 70

mgUseSound = true

mgSoundfreq = 300

mgExitEffect = none

mgSelectedEffect = rotate

mgUseGameArt = false

mgArtworkDir = Artwork1

hpEnabled = false

hpKey = ~NumpadAdd

hpBackToMenuBarKey = X

hpZoomInKey = C

hpZoomOutKey = V

hpScreenshotKey = ~PrintScreen

hpHiToTextPath = D:\Hyperspin\HyperLaunch\Module Extensions\HiToText.exe

hpSaveStateKeyCodes =

hpLoadStateKeyCodes =

keymapperEnabled = false

keymapper = ahk

xpadderFullPath = D:\Hyperspin\Utilities\Xpadder\xpadder.exe

joyToKeyFullPath = D:\Hyperspin\Utilities\JoyToKey\JoyToKey.exe

keymapperProfilePath = D:\Hyperspin\HyperLaunch\Profiles\ahk

keymapperFrontEndProfileName = HyperSpin

keymapperHyperLaunchProfileEnabled = false

JoyIDsEnabled = false

JoyIDsPreferredControllersSystem = use_global

JoyIDsPreferredControllersGlobal = use_global

CustomJoyNamesEnabled = false

CustomJoyNames =

FEProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\HyperSpin

defaultProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\_Default

systemProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System

xPadderSystemProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\_Default

emuProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\ZSNESw

romProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\Super Mario World

blankProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\blank

HyperLaunchProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\HyperLaunch

bezelEnabled = false

statisticsEnabled = true

22:09:14:843 | HL | INFO | +0 | BuildScript - Loaded XHotkey Init.ahk scripts

22:09:14:843 | HL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts

22:09:14:843 | HL | INFO | +0 | BuildScript - Loaded User Functions Init.ahk script

22:09:14:859 | HL | INFO | +15 | BuildScript - Module:

MEmu = ZSNESw

MEmuV = v1.51

MURL = http://www.zsnes.com/

MAuthor = djvj

MVersion = 2.0

MCRC = 90F089AF

iCRC = 3B0E8F48

MID = 635038268938832977

MSystem = "Super Nintendo Entertainment System"

;----------------------------------------------------------------------------

; Notes:

; Make sure you set quickexit to your Exit_Emulator_Key key while in ZSNES.

; If you want to use Esc as your quick exit key, open zsnesw.cfg with a text editor and find the lines below.

; Set KeyQuickExit to 1, as shown below. You can't set the quick exit key to escape while in the emulator, because that's the exit key to configuring keys.

;

; Quit ZSNES / Load Menu / Reset Game / Panic Key

; KeyQuickExit=1

; KeyQuickLoad=0

; KeyQuickRst=0

; KeyResetAll=42

;----------------------------------------------------------------------------

StartModule()

FadeInStart()

settingsFile := modulePath . "\" . moduleName . ".ini"

Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)

Stretch := IniReadCheck(settingsFile, "Settings", "Stretch","true",,1)

resX := IniReadCheck(settingsFile, "Settings", "resX","1280",,1)

resY := IniReadCheck(settingsFile, "Settings", "resY","1024",,1)

DisplayRomInfo := IniReadCheck(settingsFile, "Settings", "DisplayRomInfo","false",,1) ; Display rom info on load along bottom of screen

SetKeyDelay, 50

zsnesFile := CheckFile(emuPath . "\zsnesw.cfg")

FileRead, zsnesCfg, %zsnesFile%

xLine := TF_Find(zsnesCfg,"","","CustomResX=") ; find location in zsnes cfg where it stores its custom X res

yLine := TF_Find(zsnesCfg,"","","CustomResY=") ; find location in zsnes cfg where it stores its custom Y res

modeLine := TF_Find(zsnesCfg,"","","cvidmode=") ; find location in zsnes cfg where it stores its custom vid mode

zsnesCfg := TF_ReplaceLine(zsnesCfg,xLine,xLine,"CustomResX=" . resX) ; update custom X res in zsnes cfg file

zsnesCfg := TF_ReplaceLine(zsnesCfg,yLine,yLine,"CustomResY=" . resY) ; update custom Yres in zsnes cfg file

If ( Fullscreen = "true" && Stretch = "true" ) ; sets fullscreen, stretch, and filter support

vidMode = 39

Else If ( Fullscreen = "true" && Stretch != "true" ) ; sets fullscreen, correct aspect ratio, and filter support

vidMode = 42

Else ; sets windowed mode with filter support

vidMode = 38

zsnesCfg := TF_ReplaceLine(zsnesCfg,modeLine,modeLine,"cvidmode=" . vidMode) ; update custom vid mode in zsnes cfg file

; Setting DisplayRomInfo setting in cfg if it doesn't match what user wants above

currentDRI := (InStr(zsnesCfg, "DisplayInfo=1") ? ("true") : ("false"))

If ( DisplayRomInfo != "true" And currentDRI = "true" ) {

StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=1, DisplayInfo=0

} Else If ( DisplayRomInfo = "true" And currentDRI = "false" ) {

StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=0, DisplayInfo=1

}

SaveFile(zsnesCfg, zsnesFile) ; save changes to zsnesw.cfg

7z(romPath, romName, romExtension, 7zExtractPath)

Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)

WinWait("ZSNES ahk_class ZSNES")

WinWaitActive("ZSNES ahk_class ZSNES")

FadeInExit()

Process("WaitClose",executable)

7zCleanUp()

FadeOutExit()

ExitModule()

SaveFile(text,file) {

FileDelete, %file%

FileAppend, %text%, %file%

}

CloseProcess:

FadeOutStart()

SetWinDelay, 50

Send, {Alt Down}{F4 Down}{F4 Up}{Alt Up} ; No other closing method seems to work

Return

TF_Find(Text, StartLine = 1, EndLine = 0, SearchText = "", ReturnFirst = 1, ReturnText = 0)

{ ; complete rewrite for 3.1

TF_GetData(OW, Text, FileName)

If (RegExMatch(Text, SearchText) < 1)

Return "0" ; SearchText not in file or error, do nothing

TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList

Loop, Parse, Text, `n

{

If A_Index in %TF_MatchList%

{

If (RegExMatch(A_LoopField, SearchText) > 0)

{

If (ReturnText = 0)

Lines .= A_Index "," ; line number

Else If (ReturnText = 1)

Lines .= A_LoopField "`n" ; text of line

Else If (ReturnText = 2)

Lines .= A_Index ": " A_LoopField "`n" ; add line number

If (ReturnFirst = 1) ; only return first occurence

Break

}

}

}

If (Lines <> "")

StringTrimRight, Lines, Lines, 1 ; trim trailing , or `n

Else

Lines = 0 ; make sure we return 0

Return Lines

}

TF_ReplaceLine(Text, StartLine = 1, Endline = 0, ReplaceText = "")

{

TF_GetData(OW, Text, FileName)

TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList

Loop, Parse, Text, `n, `r

{

If A_Index in %TF_MatchList%

Output .= ReplaceText "`n"

Else

Output .= A_LoopField "`n"

}

Return TF_ReturnOutPut(OW, OutPut, FileName)

}

TF_GetData(byref OW, byref Text, byref FileName)

{

OW=0 ; default setting: asume it is a file and create file_copy

IfNotInString, Text, `n ; it can be a file as the Text doesn't contact a newline character

{

If (SubStr(Text,1,1)="!") ; first we check for "overwrite"

{

Text:=SubStr(Text,2)

OW=1 ; overwrite file (if it is a file)

}

IfNotExist, %Text% ; now we can check if the file exists, it doesn't so it is a var

{

If (OW=1) ; the variable started with a ! so we need to put it back because it is variable/text not a file

Text:= "!" . Text

OW=2 ; no file, so it is a var or Text passed on directly to TF

}

}

Else ; there is a newline character in Text so it has to be a variable

{

OW=2

}

If (OW = 0) or (OW = 1) ; it is a file, so we have to read into var Text

{

Text := (SubStr(Text,1,1)="!") ? (SubStr(Text,2)) : Text

FileName=%Text% ; Store FileName

FileRead, Text, %Text% ; Read file and return as var Text

If (ErrorLevel > 0)

{

MsgBox, 48, TF Lib Error, % "Can not read " FileName

ExitApp

}

}

Return

}

TF_Count(String, Char)

{

StringReplace, String, String, %Char%,, UseErrorLevel

Return ErrorLevel

}

TF_ReturnOutPut(OW, Text, FileName, TrimTrailing = 1, CreateNewFile = 0) { ; HugoV

If (OW = 0) ; input was file, file_copy will be created, if it already exist file_copy will be overwritten

{

IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e

{

If (CreateNewFile = 1) ; CreateNewFile used for TF_SplitFileBy* and others

{

OW = 1

Goto CreateNewFile

}

Else

Return

}

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

SplitPath, FileName,, Dir, Ext, Name

If (Dir = "") ; if Dir is empty Text & script are in same directory

Dir := A_ScriptDir

IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there

FileCopy, % Dir "\" Name "_copy." Ext, % Dir "\backup\" Name "_copy.bak", 1

FileDelete, % Dir "\" Name "_copy." Ext

FileAppend, %Text%, % Dir "\" Name "_copy." Ext

Return Errorlevel ? False : True

}

CreateNewFile:

If (OW = 1) ; input was file, will be overwritten by output

{

IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e

{

If (CreateNewFile = 0) ; CreateNewFile used for TF_SplitFileBy* and others

Return

}

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

SplitPath, FileName,, Dir, Ext, Name

If (Dir = "") ; if Dir is empty Text & script are in same directory

Dir := A_ScriptDir

IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there

FileCopy, % Dir "\" Name "." Ext, % Dir "\backup\" Name ".bak", 1

FileDelete, % Dir "\" Name "." Ext

FileAppend, %Text%, % Dir "\" Name "." Ext

Return Errorlevel ? False : True

}

If (OW = 2) ; input was var, return variable

{

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

Return Text

}

}

_MakeMatchList(Text, Start = 1, End = 0)

{

ErrorList=

(join|

Error 01: Invalid StartLine parameter (non numerical character)

Error 02: Invalid EndLine parameter (non numerical character)

Error 03: Invalid StartLine parameter (only one + allowed)

)

StringSplit, ErrorMessage, ErrorList, |

Error = 0

TF_MatchList= ; just to be sure

If (Start = 0 or Start = "")

Start = 1

; some basic error checking

; error: only digits - and + allowed

If (RegExReplace(Start, "[ 0-9+\-\,]", "") <> "")

Error = 1

If (RegExReplace(End, "[0-9 ]", "") <> "")

Error = 2

; error: only one + allowed

If (TF_Count(Start,"+") > 1)

Error = 3

If (Error > 0 )

{

MsgBox, 48, TF Lib Error, % ErrorMessage%Error%

ExitApp

}

; Option #1

; StartLine has + character indicating startline + incremental processing.

; EndLine will be used

; Make TF_MatchList

IfInString, Start, `+

{

If (End = 0 or End = "") ; determine number of lines

End:= TF_Count(Text, "`n") + 1

StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,

Loop, %Section0%

{

StringSplit, SectionLines, Section%A_Index%, `+

LoopSection:=End + 1 - SectionLines1

Counter=0

TF_MatchList .= SectionLines1 ","

Loop, %LoopSection%

{

If (A_Index >= End) ;

Break

If (Counter = (SectionLines2-1)) ; counter is smaller than the incremental value so skip

{

TF_MatchList .= (SectionLines1 + A_Index) ","

Counter=0

}

Else

Counter++

}

}

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

; Option #2

; StartLine has - character indicating from-to, COULD be multiple sections.

; EndLine will be ignored

; Make TF_MatchList

IfInString, Start, `-

{

StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,

Loop, %Section0%

{

StringSplit, SectionLines, Section%A_Index%, `-

LoopSection:=SectionLines2 + 1 - SectionLines1

Loop, %LoopSection%

{

TF_MatchList .= (SectionLines1 - 1 + A_Index) ","

}

}

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

; Option #3

; StartLine has comma indicating multiple lines.

; EndLine will be ignored

IfInString, Start, `,

{

TF_MatchList:=Start

Return TF_MatchList

}

; Option #4

; parameters passed on as StartLine, EndLine.

; Make TF_MatchList from StartLine to EndLine

If (End = 0 or End = "") ; determine number of lines

End:= TF_Count(Text, "`n") + 1

LoopTimes:=End-Start

Loop, %LoopTimes%

{

TF_MatchList .= (Start - 1 + A_Index) ","

}

TF_MatchList .= End ","

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

22:09:14:859 | HL | INFO | +0 | BuildScript - Loaded Statistics.ahk script

22:09:14:859 | HL | INFO | +0 | BuildScript - Loaded User Functions.ahk script

22:09:14:859 | HL | INFO | +0 | BuildScript - Finished injecting functions into module

22:09:14:859 | HL | INFO | +0 | Main - Module is built

22:09:14:859 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\AutoHotkey.dll exists

22:09:14:859 | HL | INFO | +0 | Main - Running module

2. Yes, as I said before. This wondered me too. And yes, I change x and y resolution to my res. 1280x1024, and change stretch to 'true'.

3. Yes that's also correct. I set KeyQuickExit to "1" in zsnesw config. But that issue appears also without set it to "1".

Posted

I didn't mean setting it to 1, I meant this part:

; Make sure you set quickexit to your Exit_Emulator_Key key while in ZSNES.

Sounds like you aren't setting the exit key properly in ZSNES. Also why did you edit the module for that? Those settings should be changed in the ini through HLHQ you should never need to edit anything in the modules.

Log is still wrong, you set the log level in the General Settings tab not in the log tab that's only for the log viewer filter.

Posted

I do not understand what you mean with quickexit. I do exactly what is suggested in the notes, I change "0" to "1" in the zsnesw cfg file to set the quickexit key in zsnesw, because (as it's written in the notes) I can't change them in zsnes menu because esc is the exit key to configuring keys. So, what's wrong? What should I do? Or do you mean I should set it to my new key "f"?

I do make changes in the module because, when I set the resolution in zsnes to 1280x1024 it does not shows these resolution in the emu if I start it via HL. Emulator itself starts in 1280x1024.

Ok, set the log correct in general settings. Here it is (direct after the issue appears and beforce closing zsnes or HL):

20:48:28:453 | HL | INFO | +N/A | Main - HyperLaunch v3.0.0.9

20:48:28:453 | HL | INFO | +0 | Main - System Specs:

HyperLaunch Dir: D:\Hyperspin\HyperLaunch

OS: WIN_XP

Architecture: 32-bit (might not be accurate)

OS Language: German_Standard

OS Admin Status: Yes

Monitor #1 (\\.\DISPLAY1): 1280x1024 (1280x1024 work)

AutoHotkey Path:

AHK Version: 1.1.09.04

Unicode: No

20:48:28:453 | HL | INFO | +0 | Main - HyperSpin.exe coordinates are x0 y0 w1280 h1024

20:48:28:453 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\HyperLaunch.exe exists

20:48:28:453 | HL | DEBUG1 | +0 | CheckFile - Attributes:

FileDescription Your favorite Front End companion!

FileVersion 3.0.0.9

LegalCopyright ©2013 HL squad

ProductName djvj's one swell guy!

ProductVersion 1.1.9.4

CompanyName djvj's one swell guy!

File Size: 899072 bytes

Created: 9/6/2013 - 8:06:33

Modified: 9/6/2013 - 8:06:34

20:48:28:453 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\gdip.ahk exists

20:48:28:453 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Extension.

20:48:28:453 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 88789 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:453 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\RIni.ahk exists

20:48:28:468 | HL | DEBUG1 | +16 | CRC Check - CRC matches, this is an official unedited Extension.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 67561 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:06:32

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\CLR.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Extension.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 10586 bytes

Created: 9/6/2013 - 8:06:29

Modified: 9/6/2013 - 8:06:30

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\COM.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Extension.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 26342 bytes

Created: 9/6/2013 - 8:06:29

Modified: 9/6/2013 - 8:06:30

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\JSON.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Extension.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 9203 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Fade Init.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 1145 bytes

Created: 9/6/2013 - 8:06:29

Modified: 9/6/2013 - 8:06:30

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\HyperPause Init.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 691 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Keymapper Init.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 2485 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\MultiGame Init.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 161 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Statistics Init.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 167 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:06:32

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Fade.ahk exists

20:48:28:468 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:468 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 26644 bytes

Created: 9/6/2013 - 8:06:29

Modified: 9/6/2013 - 8:06:30

20:48:28:468 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\HyperPause.ahk exists

20:48:28:484 | HL | DEBUG1 | +15 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:484 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 326352 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:484 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Keymapper.ahk exists

20:48:28:484 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:484 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 27844 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:484 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\MultiGame.ahk exists

20:48:28:484 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:484 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 28070 bytes

Created: 9/6/2013 - 8:06:30

Modified: 9/6/2013 - 8:06:32

20:48:28:484 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Bezel.ahk exists

20:48:28:484 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:484 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 21407 bytes

Created: 9/6/2013 - 8:06:29

Modified: 9/6/2013 - 8:06:30

20:48:28:484 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Statistics.ahk exists

20:48:28:484 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:484 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 26089 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:06:32

20:48:28:484 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Rom Mapping Launch Menu.ahk exists

20:48:28:500 | HL | DEBUG1 | +16 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:500 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 63798 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:06:32

20:48:28:500 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Shared.ahk exists

20:48:28:500 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:500 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 65137 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:06:32

20:48:28:500 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\XHotkey.ahk exists

20:48:28:500 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:500 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 28659 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:06:32

20:48:28:500 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Lib\Fade Animations.ahk exists

20:48:28:500 | HL | DEBUG1 | +0 | CRC Check - CRC matches, this is an official unedited Library.

20:48:28:500 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 48181 bytes

Created: 9/6/2013 - 8:06:29

Modified: 9/6/2013 - 8:06:30

20:48:28:500 | HL | INFO | +0 | Main - HyperLaunch received "Super Nintendo Entertainment System" and "Super Mario World"

20:48:28:500 | HL | INFO | +0 | Main - Super Mario World is using the default emulator: ZSNESw

20:48:28:500 | HL | INFO | +0 | Main - Checking for a [ZSNESw] section in D:\Hyperspin\HyperLaunch\Settings\Super Nintendo Entertainment System\Emulators.ini

20:48:28:500 | HL | INFO | +0 | Main - Checking for a [ZSNESw] section in D:\Hyperspin\HyperLaunch\Settings\Global Emulators.ini

20:48:28:500 | HL | INFO | +0 | Main - Found [ZSNESw] in D:\Hyperspin\HyperLaunch\Settings\Global Emulators.ini

20:48:28:500 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk exists

20:48:28:500 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 10997 bytes

Created: 9/6/2013 - 8:06:31

Modified: 9/6/2013 - 8:20:16

20:48:28:515 | HL | WARNING | +16 | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.

20:48:28:515 | HL | INFO | +0 | Main - Super Mario World will use module: D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk

20:48:28:515 | HL | INFO | +0 | Main - Using standard method with "Rom Extensions" SkipChecks or without any SkipChecks.

20:48:28:515 | HL | INFO | +0 | Main - INI Keys read

20:48:28:515 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\7z.exe exists

20:48:28:515 | HL | DEBUG1 | +0 | CheckFile - Attributes:

FileDescription 7-Zip Console

FileVersion 9.20

InternalName 7z

LegalCopyright Copyright © 1999-2010 Igor Pavlov

OriginalFilename 7z.exe

ProductName 7-Zip

ProductVersion 9.20

CompanyName Igor Pavlov

File Size: 163840 bytes

Created: 9/6/2013 - 8:06:33

Modified: 9/6/2013 - 8:06:34

20:48:28:515 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\Module Extensions\7z.dll exists

20:48:28:515 | HL | DEBUG1 | +0 | CheckFile - Attributes:

FileDescription 7z Standalone Plugin

FileVersion 9.20

InternalName 7za

LegalCopyright Copyright © 1999-2010 Igor Pavlov

OriginalFilename 7za.dll

ProductName 7-Zip

ProductVersion 9.20

CompanyName Igor Pavlov

File Size: 914432 bytes

Created: 9/6/2013 - 8:06:33

Modified: 9/6/2013 - 8:06:34

20:48:28:515 | HL | INFO | +0 | CheckPaths - Started

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.7z

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World\Super Mario World.7z

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom by extension: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World\*.7z

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.zip

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World\Super Mario World.zip

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom by extension: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World\*.zip

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.sfc

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom by name in subfolder: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World\Super Mario World.sfc

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom by extension: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World\*.sfc

20:48:28:515 | HL | DEBUG1 | +0 | CheckPaths - Looking for rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.smc

20:48:28:515 | HL | INFO | +0 | CheckPaths - Found rom: D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms\Super Mario World.smc

20:48:28:515 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe exists

20:48:28:515 | HL | DEBUG1 | +0 | CheckFile - Attributes:

File Size: 535552 bytes

Created: 9/6/2013 - 7:03:10

Modified: 7/20/2008 - 3:01:18

20:48:28:515 | HL | INFO | +0 | CheckPaths - Ended

20:48:28:515 | HL | INFO | +0 | BuildScript - User Variables:

;----------------------------------------------------------------------------

; INJECTED VARIABLES

;----------------------------------------------------------------------------

#NoTrayIcon

#InstallKeybdHook

DetectHiddenWindows, ON

SetTitleMatchMode, 2

SendMode, Event

0 = 2

frontendPID = 2108

frontendPath = D:\Hyperspin

frontendExe = HyperSpin.exe

frontendExt = exe

frontendName = HyperSpin

frontendDrive = D:

exitEmulatorKey = ~Esc|F

exitEmulatorKeyWait = 0

forceHoldKey = ~Esc

restoreFE = false

exitScriptKey = ~q & ~s

emuFullPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\zsnesw.exe

emuPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System

emuName = ZSNESw

emuExt = exe

romPath = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms

romPathFromIni = D:\Hyperspin\Emulators\Super Nintendo Entertainment System\Roms

romExtension = .smc

romExtensionOrig = .smc

romExtensions = 7z|zip|sfc|smc

executable = zsnesw.exe

systemName = Super Nintendo Entertainment System

dbName = Super Mario World

romName =

romMapPath =

romMappingEnabled = false

romMappingLaunchMenuEnabled = false

romMappingFirstMatchingExt = false

romMappingShowAllRomsInArchive = true

romMappingNumberOfWheelsByScreen = 7

romMappingMenuWidth = 300

romMappingMenuMargin = 50

romMappingTextFont = Bebas Neue

romMappingTextOptions = cFFFFFFFF r4 s40 Bold

romMappingDisabledTextColor = ff888888

romMappingTextSizeDifference = 5

romMappingTextMargin = 10

romMappingTitleTextFont = Bebas Neue

romMappingTitleTextOptions = cFFFFFFFF r4 s60 Bold

romMappingTitle2TextFont = Bebas Neue

romMappingTitle2TextOptions = cFFFFFFFF r4 s15 Bold

romMappingGameInfoTextFont = Bebas Neue

romMappingGameInfoTextOptions = cFFFFFFFF r4 s15 Regular

romMappingBackgroundBrush = aa000000

romMappingColumnBrush = 33000000

romMappingButtonBrush1 = 6f000000

romMappingButtonBrush2 = 33000000

romMappingBackgroundAlign = Stretch and Lose Aspect

romMappingMenuFlagWidth = 40

romMappingMenuFlagSeparation = 5

romMappingDefaultMenuList = FullList

romMappingSingleFilteredRomAutomaticLaunch = false

skipchecks = false

romMatchExt = true

logFile = D:\Hyperspin\HyperLaunch\HyperLaunch.log

logLabel := [" INFO"," WARNING"," ERROR"," DEBUG1"," DEBUG2"]

logLevel = 4

logIncludeModule = true

logIncludeFileProperties = true

logShowCommandWindow = false

logCommandWindow = false

navUpKey = Up

navDownKey = Down

navLeftKey = Left

navRightKey = Right

navSelectKey = Enter

navP2UpKey = Numpad8

navP2DownKey = Numpad2

navP2LeftKey = Numpad4

navP2RightKey = Numpad6

navP2SelectKey = NumpadEnter

originalWidth = 1280

originalHeight = 1024

dtEnabled = true

dtPath =

dtUseSCSI = true

dtAddDrive = true

emuIdleShutdown = 0

hideEmu = false

hideFE = false

fadeIn = false

fadeInDuration = 500

fadeInTransitionAnimation = DefaultAnimateFadeIn

fadeInDelay = 0

fadeInExitDelay = 0

fadeOutExitDelay = 0

fadeOut = false

fadeOutDuration = 500

fadeOutTransitionAnimation = DefaultAnimateFadeOut

fadeOutDelay = 0

fadeLyrInterpolation = 7

fadeLyr1Color = FF000000

fadeLyr1AlignImage = Align to Top Left

fadeLyr2Pos = Bottom Right Corner

fadeLyr2X = 300

fadeLyr2Y = 300

fadeLyr2Adjust = 1

fadeLyr2PicPad = 0

fadeLyr3Pos = Center

fadeLyr3X = 300

fadeLyr3Y = 300

fadeLyr3Adjust = 0.75

fadeLyr3Speed = 750

fadeLyr3Animation = DefaultFadeAnimation

fadeLyr37zAnimation = DefaultFadeAnimation

fadeLyr3Type = imageandbar

fadeLyr3ImgFollow7zProgress = true

fadeLyr3Repeat = 1

fadeLyr3PicPad = 0

fadeLyr4Adjust = 0.75

fadeLyr4X = 100

fadeLyr4Y = 100

fadeLyr4Pos = Above Layer 3 - Left

fadeLyr4FPS = 10

fadeLyr4PicPad = 0

fadeTranspGifColor = FFFFFF

fadeBarWindow = false

fadeBarWindowX =

fadeBarWindowY =

fadeBarWindowW = 600

fadeBarWindowH = 120

fadeBarWindowR = 20

fadeBarWindowM = 20

fadeBarWindowHatchStyle = 8

fadeBarBack = true

fadeBarBackColor = FF555555

fadeBarH = 20

fadeBarR = 5

fadeBarColor = DD00BFFF

fadeBarHatchStyle = 3

fadeBarPercentageText = true

fadeBarInfoText = true

fadeBarXOffset = 0

fadeBarYOffset = 100

fadeRomInfoDescription = text

fadeRomInfoSystemName = text

fadeRomInfoYear = text

fadeRomInfoManufacturer = text

fadeRomInfoGenre = text

fadeRomInfoRating = text

fadeRomInfoOrder = Description|SystemName|Year|Manufacturer|Genre|Rating

fadeRomInfoTextPlacement = topRight

fadeRomInfoTextMargin = 5

fadeRomInfoText1Options = cFF555555 r4 s20 Bold

fadeRomInfoText2Options = cFF555555 r4 s20 Bold

fadeRomInfoText3Options = cFF555555 r4 s20 Bold

fadeRomInfoText4Options = cFF555555 r4 s20 Bold

fadeRomInfoText5Options = cFF555555 r4 s20 Bold

fadeRomInfoText6Options = cFF555555 r4 s20 Bold

fadeStats_Number_of_Times_Played = text with label

fadeStats_Last_Time_Played = text with label

fadeStats_Average_Time_Played = text with label

fadeStats_Total_Time_Played = text with label

fadeStats_System_Total_Played_Time = text with label

fadeStats_Total_Global_Played_Time = text with label

fadeStatsInfoOrder = Number_of_Times_Played|Last_Time_Played|Average_Time_Played|Total_Time_Played|System_Total_Played_Time|Total_Global_Played_Time

fadeStatsInfoTextPlacement = topLeft

fadeStatsInfoTextMargin = 5

fadeStatsInfoText1Options = cFF555555 r4 s20 Bold

fadeStatsInfoText2Options = cFF555555 r4 s20 Bold

fadeStatsInfoText3Options = cFF555555 r4 s20 Bold

fadeStatsInfoText4Options = cFF555555 r4 s20 Bold

fadeStatsInfoText5Options = cFF555555 r4 s20 Bold

fadeStatsInfoText6Options = cFF555555 r4 s20 Bold

fadeText1X = 0

fadeText1Y = 0

fadeText1Options = cFFFFFFFF r4 s20 Right Bold

fadeText1 = Loading Game

fadeText2X = 0

fadeText2Y = 0

fadeText2Options = cFFFFFFFF r4 s20 Right Bold

fadeText2 = Extraction Complete

fadeFont = Arial

fadeSystemAndRomLayersOnly = false

fadeInterruptKey =

detectFadeErrorEnabled = true

fadeImgPath = D:\Hyperspin\HyperLaunch\Media\Fade

HLDataPath = D:\Hyperspin\HyperLaunch\Data

HLMediaPath = D:\Hyperspin\HyperLaunch\Media

HLErrSoundPath = D:\Hyperspin\HyperLaunch\Media\Sounds\Error

modulesPath = D:\Hyperspin\HyperLaunch\Modules

moduleFullName = D:\Hyperspin\HyperLaunch\Modules\ZSNESw\ZSNESw.ahk

moduleName = ZSNESw

modulePath = D:\Hyperspin\HyperLaunch\Modules\ZSNESw

moduleExtension = ahk

moduleExtensionsPath = D:\Hyperspin\HyperLaunch\Module Extensions

libPath = D:\Hyperspin\HyperLaunch\Lib

7zEnabled = false

7zPath = D:\Hyperspin\HyperLaunch\Module Extensions\7z.exe

7zDllPath = D:\Hyperspin\HyperLaunch\Module Extensions\7z.dll

7zExtractPath = C:\Dokumente und Einstellungen\Arcade Machine\Lokale Einstellungen\Temp\HS

7zExtractPathOrig =

7zAttachSystemName = false

7zDelTemp = true

7zSounds = true

7zFormats = .zip,.rar,.7z,.lzh,.gzip,.tar

7zFormatsNoP = zip,rar,7z,lzh,gzip,tar

mgEnabled = false

mgKey = ~NumpadSub

mgBackgroundColor = FF000000

mgSidePadding = 0.2

mgYOffset = 500

mgImageAdjust = 1

mgFont = Arial

mgText1Options = x10p y30p w80p Center cBBFFFFFF r4 s100 BoldItalic

mgText1Text = Please select a game

mgText2Options = w96p cFFFFFFFF r4 s50 Center BoldItalic

mgText2Offset = 70

mgUseSound = true

mgSoundfreq = 300

mgExitEffect = none

mgSelectedEffect = rotate

mgUseGameArt = false

mgArtworkDir = Artwork1

hpEnabled = false

hpKey = ~NumpadAdd

hpBackToMenuBarKey = X

hpZoomInKey = C

hpZoomOutKey = V

hpScreenshotKey = ~PrintScreen

hpHiToTextPath = D:\Hyperspin\HyperLaunch\Module Extensions\HiToText.exe

hpSaveStateKeyCodes =

hpLoadStateKeyCodes =

keymapperEnabled = false

keymapper = ahk

xpadderFullPath = D:\Hyperspin\Utilities\Xpadder\xpadder.exe

joyToKeyFullPath = D:\Hyperspin\Utilities\JoyToKey\JoyToKey.exe

keymapperProfilePath = D:\Hyperspin\HyperLaunch\Profiles\ahk

keymapperFrontEndProfileName = HyperSpin

keymapperHyperLaunchProfileEnabled = false

JoyIDsEnabled = false

JoyIDsPreferredControllersSystem = use_global

JoyIDsPreferredControllersGlobal = use_global

CustomJoyNamesEnabled = false

CustomJoyNames =

FEProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\HyperSpin

defaultProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\_Default

systemProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System

xPadderSystemProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\_Default

emuProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\ZSNESw

romProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\Super Nintendo Entertainment System\Super Mario World

blankProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\blank

HyperLaunchProfile = D:\Hyperspin\HyperLaunch\Profiles\ahk\HyperLaunch

bezelEnabled = false

statisticsEnabled = true

20:48:28:515 | HL | INFO | +0 | BuildScript - Loaded XHotkey Init.ahk scripts

20:48:28:515 | HL | INFO | +0 | BuildScript - Loaded Statistics Init.ahk scripts

20:48:28:515 | HL | INFO | +0 | BuildScript - Loaded User Functions Init.ahk script

20:48:28:515 | HL | DEBUG1 | +0 | BuildScript - Module starts on line: 285

20:48:28:515 | HL | INFO | +0 | BuildScript - Module:

MEmu = ZSNESw

MEmuV = v1.51

MURL = http://www.zsnes.com/

MAuthor = djvj

MVersion = 2.0

MCRC = 90F089AF

iCRC = 3B0E8F48

MID = 635038268938832977

MSystem = "Super Nintendo Entertainment System"

;----------------------------------------------------------------------------

; Notes:

; Make sure you set quickexit to your Exit_Emulator_Key key while in ZSNES.

; If you want to use Esc as your quick exit key, open zsnesw.cfg with a text editor and find the lines below.

; Set KeyQuickExit to 1, as shown below. You can't set the quick exit key to escape while in the emulator, because that's the exit key to configuring keys.

;

; Quit ZSNES / Load Menu / Reset Game / Panic Key

; KeyQuickExit=1

; KeyQuickLoad=0

; KeyQuickRst=0

; KeyResetAll=42

;----------------------------------------------------------------------------

StartModule()

FadeInStart()

settingsFile := modulePath . "\" . moduleName . ".ini"

Fullscreen := IniReadCheck(settingsFile, "Settings", "Fullscreen","true",,1)

Stretch := IniReadCheck(settingsFile, "Settings", "Stretch","true",,1)

resX := IniReadCheck(settingsFile, "Settings", "resX","1280",,1)

resY := IniReadCheck(settingsFile, "Settings", "resY","1024",,1)

DisplayRomInfo := IniReadCheck(settingsFile, "Settings", "DisplayRomInfo","false",,1) ; Display rom info on load along bottom of screen

SetKeyDelay, 50

zsnesFile := CheckFile(emuPath . "\zsnesw.cfg")

FileRead, zsnesCfg, %zsnesFile%

xLine := TF_Find(zsnesCfg,"","","CustomResX=") ; find location in zsnes cfg where it stores its custom X res

yLine := TF_Find(zsnesCfg,"","","CustomResY=") ; find location in zsnes cfg where it stores its custom Y res

modeLine := TF_Find(zsnesCfg,"","","cvidmode=") ; find location in zsnes cfg where it stores its custom vid mode

zsnesCfg := TF_ReplaceLine(zsnesCfg,xLine,xLine,"CustomResX=" . resX) ; update custom X res in zsnes cfg file

zsnesCfg := TF_ReplaceLine(zsnesCfg,yLine,yLine,"CustomResY=" . resY) ; update custom Yres in zsnes cfg file

If ( Fullscreen = "true" && Stretch = "true" ) ; sets fullscreen, stretch, and filter support

vidMode = 39

Else If ( Fullscreen = "true" && Stretch != "true" ) ; sets fullscreen, correct aspect ratio, and filter support

vidMode = 42

Else ; sets windowed mode with filter support

vidMode = 38

zsnesCfg := TF_ReplaceLine(zsnesCfg,modeLine,modeLine,"cvidmode=" . vidMode) ; update custom vid mode in zsnes cfg file

; Setting DisplayRomInfo setting in cfg if it doesn't match what user wants above

currentDRI := (InStr(zsnesCfg, "DisplayInfo=1") ? ("true") : ("false"))

If ( DisplayRomInfo != "true" And currentDRI = "true" ) {

StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=1, DisplayInfo=0

} Else If ( DisplayRomInfo = "true" And currentDRI = "false" ) {

StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=0, DisplayInfo=1

}

SaveFile(zsnesCfg, zsnesFile) ; save changes to zsnesw.cfg

7z(romPath, romName, romExtension, 7zExtractPath)

Run(executable . " """ . romPath . "\" . romName . romExtension . """", emuPath)

WinWait("ZSNES ahk_class ZSNES")

WinWaitActive("ZSNES ahk_class ZSNES")

FadeInExit()

Process("WaitClose",executable)

7zCleanUp()

FadeOutExit()

ExitModule()

SaveFile(text,file) {

FileDelete, %file%

FileAppend, %text%, %file%

}

CloseProcess:

FadeOutStart()

SetWinDelay, 50

Send, {Alt Down}{F4 Down}{F4 Up}{Alt Up} ; No other closing method seems to work

Return

TF_Find(Text, StartLine = 1, EndLine = 0, SearchText = "", ReturnFirst = 1, ReturnText = 0)

{ ; complete rewrite for 3.1

TF_GetData(OW, Text, FileName)

If (RegExMatch(Text, SearchText) < 1)

Return "0" ; SearchText not in file or error, do nothing

TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList

Loop, Parse, Text, `n

{

If A_Index in %TF_MatchList%

{

If (RegExMatch(A_LoopField, SearchText) > 0)

{

If (ReturnText = 0)

Lines .= A_Index "," ; line number

Else If (ReturnText = 1)

Lines .= A_LoopField "`n" ; text of line

Else If (ReturnText = 2)

Lines .= A_Index ": " A_LoopField "`n" ; add line number

If (ReturnFirst = 1) ; only return first occurence

Break

}

}

}

If (Lines <> "")

StringTrimRight, Lines, Lines, 1 ; trim trailing , or `n

Else

Lines = 0 ; make sure we return 0

Return Lines

}

TF_ReplaceLine(Text, StartLine = 1, Endline = 0, ReplaceText = "")

{

TF_GetData(OW, Text, FileName)

TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList

Loop, Parse, Text, `n, `r

{

If A_Index in %TF_MatchList%

Output .= ReplaceText "`n"

Else

Output .= A_LoopField "`n"

}

Return TF_ReturnOutPut(OW, OutPut, FileName)

}

TF_GetData(byref OW, byref Text, byref FileName)

{

OW=0 ; default setting: asume it is a file and create file_copy

IfNotInString, Text, `n ; it can be a file as the Text doesn't contact a newline character

{

If (SubStr(Text,1,1)="!") ; first we check for "overwrite"

{

Text:=SubStr(Text,2)

OW=1 ; overwrite file (if it is a file)

}

IfNotExist, %Text% ; now we can check if the file exists, it doesn't so it is a var

{

If (OW=1) ; the variable started with a ! so we need to put it back because it is variable/text not a file

Text:= "!" . Text

OW=2 ; no file, so it is a var or Text passed on directly to TF

}

}

Else ; there is a newline character in Text so it has to be a variable

{

OW=2

}

If (OW = 0) or (OW = 1) ; it is a file, so we have to read into var Text

{

Text := (SubStr(Text,1,1)="!") ? (SubStr(Text,2)) : Text

FileName=%Text% ; Store FileName

FileRead, Text, %Text% ; Read file and return as var Text

If (ErrorLevel > 0)

{

MsgBox, 48, TF Lib Error, % "Can not read " FileName

ExitApp

}

}

Return

}

TF_Count(String, Char)

{

StringReplace, String, String, %Char%,, UseErrorLevel

Return ErrorLevel

}

TF_ReturnOutPut(OW, Text, FileName, TrimTrailing = 1, CreateNewFile = 0) { ; HugoV

If (OW = 0) ; input was file, file_copy will be created, if it already exist file_copy will be overwritten

{

IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e

{

If (CreateNewFile = 1) ; CreateNewFile used for TF_SplitFileBy* and others

{

OW = 1

Goto CreateNewFile

}

Else

Return

}

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

SplitPath, FileName,, Dir, Ext, Name

If (Dir = "") ; if Dir is empty Text & script are in same directory

Dir := A_ScriptDir

IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there

FileCopy, % Dir "\" Name "_copy." Ext, % Dir "\backup\" Name "_copy.bak", 1

FileDelete, % Dir "\" Name "_copy." Ext

FileAppend, %Text%, % Dir "\" Name "_copy." Ext

Return Errorlevel ? False : True

}

CreateNewFile:

If (OW = 1) ; input was file, will be overwritten by output

{

IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e

{

If (CreateNewFile = 0) ; CreateNewFile used for TF_SplitFileBy* and others

Return

}

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

SplitPath, FileName,, Dir, Ext, Name

If (Dir = "") ; if Dir is empty Text & script are in same directory

Dir := A_ScriptDir

IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there

FileCopy, % Dir "\" Name "." Ext, % Dir "\backup\" Name ".bak", 1

FileDelete, % Dir "\" Name "." Ext

FileAppend, %Text%, % Dir "\" Name "." Ext

Return Errorlevel ? False : True

}

If (OW = 2) ; input was var, return variable

{

If (TrimTrailing = 1)

StringTrimRight, Text, Text, 1 ; remove trailing `n

Return Text

}

}

_MakeMatchList(Text, Start = 1, End = 0)

{

ErrorList=

(join|

Error 01: Invalid StartLine parameter (non numerical character)

Error 02: Invalid EndLine parameter (non numerical character)

Error 03: Invalid StartLine parameter (only one + allowed)

)

StringSplit, ErrorMessage, ErrorList, |

Error = 0

TF_MatchList= ; just to be sure

If (Start = 0 or Start = "")

Start = 1

; some basic error checking

; error: only digits - and + allowed

If (RegExReplace(Start, "[ 0-9+\-\,]", "") <> "")

Error = 1

If (RegExReplace(End, "[0-9 ]", "") <> "")

Error = 2

; error: only one + allowed

If (TF_Count(Start,"+") > 1)

Error = 3

If (Error > 0 )

{

MsgBox, 48, TF Lib Error, % ErrorMessage%Error%

ExitApp

}

; Option #1

; StartLine has + character indicating startline + incremental processing.

; EndLine will be used

; Make TF_MatchList

IfInString, Start, `+

{

If (End = 0 or End = "") ; determine number of lines

End:= TF_Count(Text, "`n") + 1

StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,

Loop, %Section0%

{

StringSplit, SectionLines, Section%A_Index%, `+

LoopSection:=End + 1 - SectionLines1

Counter=0

TF_MatchList .= SectionLines1 ","

Loop, %LoopSection%

{

If (A_Index >= End) ;

Break

If (Counter = (SectionLines2-1)) ; counter is smaller than the incremental value so skip

{

TF_MatchList .= (SectionLines1 + A_Index) ","

Counter=0

}

Else

Counter++

}

}

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

; Option #2

; StartLine has - character indicating from-to, COULD be multiple sections.

; EndLine will be ignored

; Make TF_MatchList

IfInString, Start, `-

{

StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by ,

Loop, %Section0%

{

StringSplit, SectionLines, Section%A_Index%, `-

LoopSection:=SectionLines2 + 1 - SectionLines1

Loop, %LoopSection%

{

TF_MatchList .= (SectionLines1 - 1 + A_Index) ","

}

}

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

; Option #3

; StartLine has comma indicating multiple lines.

; EndLine will be ignored

IfInString, Start, `,

{

TF_MatchList:=Start

Return TF_MatchList

}

; Option #4

; parameters passed on as StartLine, EndLine.

; Make TF_MatchList from StartLine to EndLine

If (End = 0 or End = "") ; determine number of lines

End:= TF_Count(Text, "`n") + 1

LoopTimes:=End-Start

Loop, %LoopTimes%

{

TF_MatchList .= (Start - 1 + A_Index) ","

}

TF_MatchList .= End ","

StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing ,

Return TF_MatchList

}

20:48:28:515 | HL | INFO | +0 | BuildScript - Loaded Statistics.ahk script

20:48:28:515 | HL | INFO | +0 | BuildScript - Loaded User Functions.ahk script

20:48:28:515 | HL | INFO | +0 | BuildScript - Finished injecting functions into module

20:48:28:515 | HL | INFO | +0 | Main - Module is built

20:48:28:515 | HL | INFO | +0 | CheckFile - Checking if D:\Hyperspin\HyperLaunch\AutoHotkey.dll exists

20:48:28:531 | HL | DEBUG1 | +15 | CheckFile - Attributes:

FileDescription AutoHotkey_H ANSI 32-bit

FileVersion 1.1.09.04

InternalName AutoHotkey_H

LegalCopyright Copyright © 2012

OriginalFilename AutoHotkey.exe

ProductName AutoHotkey_H

ProductVersion 1.1.09.04

File Size: 785408 bytes

Created: 9/6/2013 - 8:06:33

Modified: 9/6/2013 - 8:06:34

20:48:28:531 | HL | INFO | +0 | Main - Running module

  • 10 months later...
Posted

I got the same problem and many many more eg: videos not showing up for random systems, settings saving not taking hold at all. always forums lead to No answer or people making excuses "you dont need your windows taskbar anyways" "xpadder is a beautiful program" honestly i don't care anymore all i need to know is. dose anyone ever play a game on hyperspin ? or do people just dedicate there lives changing settings that may or may not take hold ? im sick of it its like going to gun range to see how well your shooting with blanks ! and seriously that's the last straw! why complain about a free program ? 2 years of precious life is not free far from it ive payed in literal blood, sweat, tears time and space. far more valuable than any currency.. well goodbye now !

Posted

??? Only 9 posts since joining in Jan 2013 and you are complaining about not getting any answers? Perhaps you should start again from first principles. Check the link in my sig and read Ron's guide to posting, then you should get some help if you still need it.

Posted

I personally have a policy of only answering questions that have proper capitalization and mostly correct spelling. I have a hard time reading badly written posts due to some personal difficulties so I don't answer them. Also I think if you can't take the time to correctly write a question, that you probably wouldn't read instructions because your time is obviously too valuable.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...