Can't get bezel working for PCSX2

mankin

Member
RL Member
Hi:

I can't seem to get the bezel to appear for this emu. I have a bezel in RL media under bezels in the correct system folder with a _Default folder with an ini file and png file in it; and under the bezel tab in RL UI I have it set to true but when I launch a game no bezel appears what am I missing?

Thank you in advance.
 

mankin

Member
RL Member
I still can't get this bezel to work. I am using PCSX2 1.4.0. I have the windows video settings at an aspect ratio of standard 4:3. I have tried 16x9 and fit to window/screen but it always seems to default back to standard 4:3. again I have RU bezel tab set to true and the RU media folder >bezels> Sony Playstation 2> _Default>has both a PNG and INI file.
 

SupraKarma

Member
Supporter
RL Member
PCSX2 is kind of a pain to set up bezels for. IIRC I had to set fullscreen = false in the module settings, and maybe I had to turn off fullscreen settings in the emulator itself as well. I think I used 'stretch to fit screen' settings.

Also be aware that you will need to use the 'no gui' mode (because the module grabs the GUI window and tries to draw the bezel to that), and you will need to edit the config file for PCSX2 to allow for exiting the emulator with the 'Escape' key, because without it, you can't exit the emulator since there's no GUI.

I might take a look at the module later, there has to be a way to get the module to see the correct window, so that you don't have to mess around with the 'No GUI' mode.
 

agent47

Super Moderator
Staff member
Supporter
RL Member
Not without using a regex for the window title matching which I don't think is possible. All of the PCSX2 windows have the same window class and the render window isn't a static title, it's crammed with a bunch of settings info.
 

SupraKarma

Member
Supporter
RL Member
Maybe a user function then, to minimize the GUI window before the the bezel can grab it.

Edit: Nope, that didn't work. :)
 
Last edited:

SupraKarma

Member
Supporter
RL Member
Ok this seems to be working in a user function though:

Code:
	; This method gets ran right before Bezel is draw on the screen
	PreBezelDraw() {
		Global dbName,systemName
		RLLog.Info(A_ThisFunc . " - Starting")
		Sleep, 2000
		RLLog.Info(A_ThisFunc . " - Ending")


I'll test some more to verify - but the issue here is the bezel is grabbing the GUI window only because the main window sometimes (most of the time for me) doesn't get drawn in time. The delay seems to be fixing that.
 

SupraKarma

Member
Supporter
RL Member
It works, now I'm just working on making a working module with it built in. Studying the code in the PPSSPP module, here's what I've got so far. I've got the default bezel sleep timer at 2000 ms, and I've got the key in the isd file, but for some reason, changing the value isn't affecting anything. I'll highlight in red what I've changed.

Code:
MEmu := "PCSX2"
MEmuV := "1.5.0-dev-263"
MURL := ["http://pcsx2.net/"]
MAuthor := ["djvj"]
MVersion := "2.2.1"
MCRC := "1E4F5067"
iCRC := "65DD0603"
MID := "635038268913291718"
MSystem := ["Sony PlayStation 2"]
;----------------------------------------------------------------------------
; Notes:
; This module has many settings that can be controlled via RocketLauncherUI
; If you want to customize settings per game, add the game to the module's ini using RocketLauncherUI
; If you use Daemon Tools, make sure you have a SCSI virtual drive setup. Not a DT one.
; Tested Virtual Drive support with the cdvdGigaherz CDVD plugin. Make sure you set it to use your SCSI Virtual Drive letter.
; If the incorrect drive is used, the emu will boot to the bios screen and emu will hang in your running processes on exit and require it to be force closed
; Module will set the CdvdSource to Plugin or Iso depending on if you have Virtual Drive enabled or not.
; If you have any problems closing the emulator, make sure noGUI module setting in RocketLauncherUI is set to default or false.
; Most stable bios is Japan v01.00(17/01/2000)
;
; Per-game memory cards
; This module supports per-game memory cards to prevent them from ever becoming full
; To use this feature, set the PerGameMemoryCards to true in RocketLauncherUI
; You need to create a default blank memory card in the path you have defined in pcsx's ini found in section [Folders], key MemoryCards.
; Make sure one of the current memory cards are blank, then copy it in that folder and rename it to "default.ps2". The module will copy this file to a romName.ps2 for each game launched.
; The module will only insert memory cards into Slot 1. So save your games there.
;
; Linuz cdvd plugin stores its settings in the registry @ HKEY_CURRENT_USER\Software\PS2Eplugin\CDVD\CDVDiso
;
; v1.4.0 setup guide: https://www.youtube.com/watch?v=ovagz8UXFTU
;
; Run pcsx2 with the --help option to see current CLI parameters
; Known CLI options not currently supported by this module:
;  --console        	forces the program log/console to be visible
;  --portable       	enables portable mode operation (requires admin/root access)
;  --elf=<str>      	executes an ELF image
;  --forcewiz       	forces PCSX2 to start the First-time Wizard
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()

primaryExe := new Emulator(emuPath . "\" . executable)				; instantiate emulator executable object
emuPrimaryWindow := new Window(new WindowTitle(,"wxWindowNR"),,,"PCSX2")	; instantiate primary emulator window object
emuGUIWindow := new Window(new WindowTitle("PCSX2","wxWindowNR"))
emuLoadingWindow := new Window(new WindowTitle("Speed","wxWindowNR"),,"PCSX2")
emuBootingWindow := new Window(new WindowTitle("Booting","wxWindowNR"))

Fullscreen := moduleIni.Read("Settings", "Fullscreen","true",,1)
[COLOR="#FF0000"]bezelSleep := IniReadCheck(settingsFile, "Settings", "bezelSleep","2000",,1) ; In miliseconds, if you are using the bezel view and the GUI window is being grabbed instead of the main window, try to increase this value. Default is 2000.[/COLOR]
AspectRatio := moduleIni.Read(romName . "|Settings", "AspectRatio","4:3",,1)
noGUI := moduleIni.Read("Settings", "noGUI","false",,1)	; disables display of the gui while running games
perGameMemCards := moduleIni.Read("Settings", "PerGameMemoryCards","false",,1)
hideConsole := moduleIni.Read("Settings", "HideConsole","true",,1)	; Hides console window from view if it shows up
cfgPath := moduleIni.Read("Settings", "cfgpath", emuPath . "\Game Configs",,1)	; specifies the config folder; applies to pcsx2 + plugins
autoCreateINIDir := moduleIni.Read("Settings", "AutoCreateINIDir","false",,1)  ; Enables the module to auto-create of per game ini files and directories
defaultINISPath := moduleIni.Read("Settings", "DefaultINISPath",,,1)  ; Path to default INIS folder of PCSX2.
fullboot := moduleIni.Read(romName . "|Settings", "fullboot","false",,1)	; disables the quick boot feature, forcing you to sit through the PS2 startup splash screens
gs := moduleIni.Read(romName . "|Settings", "gs",,,1)	; override for the GS plugin
pad := moduleIni.Read(romName . "|Settings", "pad",,,1)	; override for the PAD plugin
spu2 := moduleIni.Read(romName . "|Settings", "spu2",,,1)	; override for the SPU2 plugin
cdvd := moduleIni.Read(romName, "cdvd",,,1)	; override for the CDVD plugin
usb := moduleIni.Read(romName . "|Settings", "usb",,,1)	; override for the USB plugin
fw := moduleIni.Read(romName . "|Settings", "fw",,,1)	; override for the FW plugin
dev9 := moduleIni.Read(romName . "|Settings", "dev9",,,1)	; override for the DEV9 plugin
vdOveride := moduleIni.Read(romName, "VDOveride",,,1)
nohacks := moduleIni.Read(romName, "nohacks","false",,1)	; disables all speedhacks
gamefixes := moduleIni.Read(romName, "gamefixes",,,1)	; Enable specific gamefixes for this session. Use the specified comma or pipe-delimited list of gamefixes: VuAddSub,VuClipFlag,FpuCompare,FpuMul,FpuNeg,EETiming,SkipMpeg,OPHFlag,DMABusy,VIFFIFO,VI,FMVinSoftware

; GS plugin settings, primarily to fix upscaling issues in games. Game specific settings can be found here: http://www.neogaf.com/forum/showpost.php?p=27110555&postcount=2
userHacks_MSAA := If moduleIni.Read(romName, "MSAA",0,,1)	; Applies hardware anti-aliasing
userHacks_SkipDraw := moduleIni.Read(romName, "Skipdraw",0,,1)	; Can remove ghost images
userHacks_HalfPixelOffset := If moduleIni.Read(romName, "Half-pixel_Offset",0,,1)	; Fixes blur or halo effects
userHacks_WildHack := If moduleIni.Read(romName, "Wild_Arms_Offset",0,,1)	; Fixes fonts in many games
userHacks_unsafe_fbmask := If moduleIni.Read(romName, "Fast_Accurate_Blending",0,,1)	; Accelerates blending operations, speeds up Xenosaga
userHacks_AlphaStencil := If moduleIni.Read(romName, "Alpha_Stencil",0,,1)	; May improve drawing shadows
userHacks_align_sprite_X := If moduleIni.Read(romName, "Align_Sprite",0,,1)	; Fixes issues with vertical lines in Ace Combat, Tekken, Soul Calibur
userHacks_AlphaHack := If moduleIni.Read(romName, "Alpha",0,,1)	; Improves drawing fog-like effects
preload_frame_with_gs_data := If moduleIni.Read(romName, "Preload_Data_Frame",0,,1)	; Fixes black screen issues in Armored Core: Last Raven
userHacks_round_sprite_offset := moduleIni.Read(romName, "Round_Sprite",0,,1)	; Fixes lines in sprites in Ar tonelico
userHacks_SpriteHack := moduleIni.Read(romName, "Sprite",0,,1)	; Fixes inner lines in sprites in Mana Khemia, Ar tonelico, Tales of Destiny
userHacks_TCOffset := moduleIni.Read(romName, "TC_Offset",0,,1)	; Fixes misaligned textures in Persona 3, Haunting Ground, Xenosaga
; Set the userHacks variable to 1 if any of the hacks are used.
userHacks := If (userHacks_MSAA || userHacks_SkipDraw || userHacks_HalfPixelOffset || userHacks_WildHack || userHacks_unsafe_fbmask || userHacks_AlphaStencil || userHacks_align_sprite_X || userHacks_AlphaHack || preload_frame_with_gs_data || userHacks_round_sprite_offset || userHacks_SpriteHack || userHacks_TCOffset) ? 1 : ""

cfgPath := new Folder(GetFullName(cfgPath))
If !cfgPath.Exist()
	cfgPath.CreateDir()	; create the cfg folder if it does not exist

; PCSX2_ui.ini = default ini that contains memory card info and general settings
portableIni := new File(emuPath . "\portable.ini")
If portableIni.Exist() {	; portable install
	RLLog.Info("Module - PCSX2 is operating in a portable mode")
	pcsx2IniFolder := emuPath . "\inis"
	pcsx2_GS_IniFile := CheckFile(emuPath . "\inis\GSdx.ini", "Could not find the default GSdx.ini file. Please manually run and configure PCSX2 first so this file is created with all your default settings.")
} Else {	; default not portable install
	RLLog.Info("Module - PCSX2 is operating in a standard installation mode")
	pcsx2IniFolder := Registry.Read("HKCU", "Software\PCSX2", "SettingsFolder")
}
pcsx2Ini := new IniFile(pcsx2IniFolder . "\PCSX2_ui.ini")
pcsx2Ini.CheckFile("Could not find the default PCSX2_ui.ini file. Please manually run and configure PCSX2 first so this file is created with all your default settings.")
pcsx2GSdxIni := new IniFile(pcsx2IniFolder . "\GSdx.ini")
pcsx2GSdxIni.CheckFile("Could not find the default GSdx.ini file. Please manually run and configure PCSX2 first so this file is created with all your default settings.")
pcsx2IniFolder := new Folder(pcsx2IniFolder)

; memory card information moved to here to correct for save games not being saved to
; game memory cards when per game ini directories are in use. This move should not 
; effect installations where games are already on a wrong memcards. the pcsx2_ui.ini 
; in the game ini directory will contain the name of the memory card being used for game.
; **************************************************************************************

; Memory Cards
If (perGameMemCards = "true")
{	currentMemCard1 := pcsx2Ini.Read("MemoryCards", "Slot1_Filename")
	memCardPath := pcsx2Ini.Read("Folders", "MemoryCards")	; folder where memory cards are stored
	memCardPathLeft := StringUtils.SubStr(memCardPath,1,3)	; get left 3 characters
	memCardPathIsAbsolute := If (StringUtils.RegExMatch(memCardPathLeft, "[a-zA-Z]:\\") && (StringUtils.StringLength(memCardPath) >= 3))	; this is 1 only when path looks like this "C:\"
	memCardPath := If memCardPathIsAbsolute ? memCardPath : emuPath . "\" . memCardPath	; if only a folder name is defined for the memory card path, tack on the emuPath to find the memory cards, otherwise leave the full path as is
	defaultMemCard := new File(memCardPath . "\default.ps2")	; defining default blank memory card for slot 1
	RLLog.Info("Module - Default memory card for Slot 1 should be: " . defaultMemCard.FileFullPath)
	romMemCard1 := new File(memCardPath . "\" . romName . ".ps2")	; defining name for rom's memory card for slot 1
	RLLog.Info("Module - Rom memory card for Slot 1 should be: " . romMemCard1.FileFullPath)
	RLLog.Info("Module - Current memory card inserted in PCSX2's ini in Slot 1 is: " . currentMemCard1.FileFullPath)

	If (currentMemCard1 != romName . ".ps2") {	; if current memory card in slot 1 does not match this romName, switch to one that does if exist or load a default one
		If !romMemCard1.Exist()	; first check if romName.ps2 memory card exists
			If !defaultMemCard.Exist()
				RLLog.Error("Module - A default memory card for Slot 1 was not found in """ . memCardPath . """. Please create an empty memory card called ""default.ps2"" in this folder for per-game memory card support.")
			Else {
				defaultMemCard.Copy(romMemCard1.FileFullPath)	; create a new blank memory card for this game
				RLLog.Info("Module - Creating a new blank memory card for this game in Slot 1: " . romMemCard1.FileFullPath)
			}
		pcsx2Ini.Write(romName . ".ps2", "MemoryCards", "Slot1_Filename")	; update the ini to use this rom's card
		RLLog.Info("Module - Switched memory card in Slot 1 to: " . romMemCard1.FileFullPath)
	}
}

; Create INIs subfolder for the game if it does not exist and if AutoCreateINIDir is true
perGameINIPath := new Folder(cfgPath.FileFullPath . "\" . romName)
If (autoCreateINIDir = "true") {
	RLLog.Info("Module - PerGameIni - perGameINIPath = " . perGameINIPath.FileFullPath)
	If !perGameINIPath.Exist() {
		perGameINIPath.CreateDir()
		If (defaultINISPath != "") {
			defaultINISPath := new Folder(defaultINISPath)
			RLLog.Info("Module - PerGameIni - perGameINIPath does not exist.  So we will create it at " . perGameINIPath.FileFullPath)
			RLLog.Info("Module - PerGameIni - Now copying the ini files from " . defaultINISPath.FileFullPath . " to " . perGameINIPath.FileFullPath)
			defaultINISPath.Copy(perGameINIPath.FileFullPath,0,"\*.ini")
		} Else {
			RLLog.Info("Module - PerGameIni - perGameINIPath does not exist.  So we will create it at " . perGameINIPath.FileFullPath)
			RLLog.Info("Module - PerGameIni - Now copying the ini files from " . pcsx2IniFolder.FileFullPath . " to " . perGameINIPath.FileFullPath)
			pcsx2IniFolder.Copy(perGameINIPath.FileFullPath,0,"\*.ini")
		}
	}
}

BezelStart()

Fullscreen := If Fullscreen = "true" ? " --fullscreen" : ""
noGUI := If noGUI = "true" ? " --nogui" : ""
If (noGUI != "")
	RLLog.Warning("Module - noGUI is set to true, THIS MAY PREVENT PCSX2 FROM CLOSING PROPERLY. If you have any issues, set it to false or default in RocketLauncherUI.")
fullboot := If fullboot = "true" ? " --fullboot" : ""
nohacks := If nohacks = "true" ? " --nohacks" : ""
gamefixes := If gamefixes ? " --gamefixes=" . gamefixes : ""
gs := If gs ? " --gs=""" . GetFullName(gs) . """" : ""
pad := If pad ? " --pad=""" . GetFullName(pad) . """" : ""
spu2 := If spu2 ? " --spu2=""" . GetFullName(spu2) . """" : ""
usb := If usb ? " --usb=""" . GetFullName(usb) . """" : ""
fw := If fw ? " --fw=""" . GetFullName(fw) . """" : ""
dev9 := If dev9 ? " --dev9=""" . GetFullName(dev9) . """" : ""

; cfgRomPath := new File(cfgPath . "\" . romName)
cfgPathCLI := If perGameINIPath.Exist() ? " --cfgpath=""" . perGameINIPath.FileFullPath . """" : ""

; Specify what main ini PCSX2 should use
pcsx2GameIni := new File(perGameINIPath.FileFullPath . "\PCSX2_ui.ini")
If (cfgPathCLI && pcsx2GameIni.Exist()) {
	;We can't set both cfgpath and cfg CLI switches, so if only PCSX2_ui.ini file exists we use cfg otherwise we use cfgpath
	;--cfg specifies a custom configuration file to use instead of PCSX2.ini (does not affect plugins)
	filecount := 0 
	Loop % perGameINIPath.FileFullPath . "\*.ini"
		filecount++
	If (filecount = 1)
	{
		;Only PCSX2_ui.ini found
		pcsx2IniFile := pcsx2GameIni
		RLLog.Info("Module - Found a game-specific PCSX2_ui.ini in the cfgPath. Telling PCSX2 to use this one instead: " . pcsx2IniFile.FileFullPath)
		cfg := " --cfg=""" . pcsx2IniFile.FileFullPath . """"
		cfgPathCLI := ""
	}
}
RLLog.Info("Module - " . (If cfgPathCLI != "" ? "Setting PCSX2's config path to """ . perGameINIPath.FileFullPath . """" : "Using PCSX2's default configuration folder: """ . pcsx2IniFolder.FileFullPath . """"))

; Update the aspect ratio if the user selected one.
If AspectRatio {
    pcsx2Ini.Write(AspectRatio, "GSWindow", "AspectRatio")	; Write the aspect ratio value to the pcsx2Ini.
}

; Update the GS plugin settings if hacks were selected.
If userHacks {
	RLLog.Info("Module - UserHacks are being used. Updating GSdx.ini")
	pcsx2GSdxIni.Write(userHacks, "Settings", "UserHacks")
	pcsx2GSdxIni.Write(userHacks_MSAA, "Settings", "UserHacks_MSAA")
	pcsx2GSdxIni.Write(userHacks_SkipDraw, "Settings", "UserHacks_SkipDraw")
	pcsx2GSdxIni.Write(userHacks_HalfPixelOffset, "Settings", "UserHacks_HalfPixelOffset")
	pcsx2GSdxIni.Write(userHacks_WildHack, "Settings", "UserHacks_WildHack")
	pcsx2GSdxIni.Write(userHacks_unsafe_fbmask, "Settings", "UserHacks_unsafe_fbmask")
	pcsx2GSdxIni.Write(userHacks_AlphaStencil, "Settings", "UserHacks_AlphaStencil")
	pcsx2GSdxIni.Write(userHacks_align_sprite_X, "Settings", "UserHacks_align_sprite_X")
	pcsx2GSdxIni.Write(userHacks_AlphaHack, "Settings", "UserHacks_AlphaHack")
	pcsx2GSdxIni.Write(preload_frame_with_gs_data, "Settings", "preload_frame_with_gs_data")
	pcsx2GSdxIni.Write(userHacks_round_sprite_offset, "Settings", "UserHacks_round_sprite_offset")
	pcsx2GSdxIni.Write(userHacks_SpriteHack, "Settings", "UserHacks_SpriteHack")
	pcsx2GSdxIni.Write(userHacks_TCOffset, "Settings", "UserHacks_TCOffset")
} Else {
	; Make sure hacks are disabled.
	pcsx2GSdxIni.Write(UserHacks, "Settings", "UserHacks")
}


			  
							 
																   
																							  
																			   
																																													  
																																																								   
																										 
																								
																											   
																						 
																												 

																																								  
																		 
							 
																																																				 
		 
																								
																												
	
																										   
																					   
  
 
hideEmuObj := Object(emuBootingWindow,0,emuGUIWindow,0,emuPrimaryWindow,1)
7z(romPath, romName, romExtension, SevenZExtractPath)

pcsx2Ini := LoadProperties(pcsx2IniFile.FileFullPath)	; load the config into memory
dvdSource := ReadProperty(pcsx2Ini,"CdvdSource")	; read value

If (vdEnabled != "true" && romExtension = ".cue") {
	RLLog.Warning("Module - Virtual Drive is disabled but you supplied a .cue as your rom which is not supported by PCSX2")
	pcsx2GameBin := new File(romPath . "\" . romName . ".bin")
	pcsx2GameIso := new File(romPath . "\" . romName . ".iso")
	If pcsx2GameBin.Exist() {
		romExtension := ".bin"
		RLLog.Warning("Module - Found a .bin file with the same name as your cue, using it instead. Please change the order of your rom extensions if you want bins to be found first.")
	} Else If pcsx2GameIso.Exist() {
		romExtension := ".iso"
		RLLog.Warning("Module - Found a .iso file with the same name as your cue, using it instead. Please change the order of your rom extensions if you want isos to be found first.")
	}
}

; Mount the CD using a Virtual Drive
If vdOveride	; this allows per-game Virtual Drive support because some games boot to black when Virtual Drive is enabled
	vdEnabled := vdOveride
If (vdEnabled = "true" && StringUtils.Contains(romExtension,"\.mds|\.mdx|\.b5t|\.b6t|\.bwt|\.ccd|\.cue|\.isz|\.nrg|\.cdi|\.iso|\.ape|\.flac")) {	; if Virtual Drive is enabled and using an image type Virtual Drive can load
	If !cdvd {
		vdCDVDPlugin := moduleIni.Read("Settings", "VD_CDVD_Plugin",,,1)
		If vdCDVDPlugin
			cdvd := vdCDVDPlugin
	}
	cdvd := If cdvd ? " --cdvd=""" . GetFullName(cdvd) . """" : ""
	If (dvdSource != "Plugin")
	{	RLLog.Info("Module - CdvdSource was not set to ""Plugin"", changing it so PCSX2 can read from Virtual Drive.")
		WriteProperty(pcsx2Ini,"CdvdSource","Plugin")	; write a new value to the pcsx2IniFile
		SaveProperties(pcsx2IniFile.FileFullPath,pcsx2Ini)	; save pcsx2IniFile to disk
	}
	
	pcsx2cdvdIni := new IniFile(pcsx2IniFolder . "\cdvdGigaherz.ini")
	dvdDrive := pcsx2cdvdIni.Read("Config", "Source")	; cdvd drive
	If StringUtils.InStr(dvdDrive,"@") {
		If (vdDriveLetter != "")
			pcsx2cdvdIni.Write(vdDriveLetter, "Config", "Source")
		Else
			ScriptError("You are using a Virtual Drive but have not selected the drive you want to use in PCSX2 CDVD Plugin settings. Select your drive first, either in RLUI Virtual Drive Third Party Settings or within the PCSX2's plugin settings, then try launching again.")
	} Else If (dvdDrive != vdDriveLetter) {
		RLLog.Warning("Module - PCSX2 is set to use drive """ . dvdDrive . """ but RocketLauncher is set to use """ . vdDriveLetter . """. Ignore this warning if this is expected.")
	}
	VirtualDrive("mount",romPath . "\" . romName . romExtension)
	HideAppStart(hideEmuObj,hideEmu)
	errLvl := primaryExe.Run(" --usecd" . noGUI . Fullscreen . fullboot . nohacks . gamefixes . cfg . cfgPathCLI . gs . pad . spu2 . cdvd . usb . fw . dev9, "UseErrorLevel")
	usedVD := 1	; tell the rest of the script to use VD methods
} Else If StringUtils.Contains(romExtension,"\.iso|\.mdf|\.nrg|\.bin|\.img|\.gz|\.cso|\.dump")	; the only formats PCSX2 supports loading directly
{
	If !cdvd {
		imageCDVDPlugin := moduleIni.Read("Settings", "Image_CDVD_Plugin",,,1)
		If imageCDVDPlugin
			cdvd := imageCDVDPlugin
	}
	cdvd := If cdvd ? " --cdvd=""" . GetFullName(cdvd) . """" : ""
	If (dvdSource != "Iso")
	{	RLLog.Info("Module - CdvdSource was not set to ""Iso"", changing it so PCSX2 can launch this " . romExtension . " image directly")
		WriteProperty(pcsx2Ini,"CdvdSource","Iso")	; write a new value to the pcsx2IniFile
		SaveProperties(pcsx2IniFile.FileFullPath,pcsx2Ini)	; save pcsx2IniFile to disk
	}
	HideAppStart(hideEmuObj,hideEmu)
	errLvl := primaryExe.Run(" """ . romPath . "\" . romName . romExtension . """ " . noGUI . Fullscreen . fullboot . nohacks . gamefixes . cfg . cfgPathCLI . gs . pad . spu2 . cdvd . usb . fw . dev9, "UseErrorLevel")
} Else If StringUtils.Contains(romExtension,"\.bz2")	; special case format that requires plugin mode and pcsx2 loads it directly
{
	If !cdvd {
		linuzCDVDPlugin := moduleIni.Read("Settings", "Linuz_CDVD_Plugin",,,1)
		If linuzCDVDPlugin
			cdvd := linuzCDVDPlugin
	}
	cdvd := If cdvd ? " --cdvd=""" . GetFullName(cdvd) . """" : ""
	If (dvdSource != "plugin")
	{	RLLog.Info("Module - CdvdSource was not set to ""Plugin"", changing it so PCSX2 can launch this " . romExtension . " image directly")
		WriteProperty(pcsx2Ini,"CdvdSource","Plugin")	; write a new value to the pcsx2IniFile
		SaveProperties(pcsx2IniFile.FileFullPath,pcsx2Ini)	; save pcsx2IniFile to disk
	}
	oldHex := Registry.Read("HKEY_CURRENT_USER", "Software\PS2Eplugin\CDVD\CDVDiso", "IsoFile")	; read last used bz2 image
	newHex := StringUtils.StringToHex(romPath . "\" . romName . romExtension)	; convert new bz2 image path to hex
	i := 512 - StringUtils.StringLength(newHex)	; get total amount of 0's to add to end of hex to make it 512 bytes
	Loop % i
		newHex := newHex . "0"	; add required bytes to end
	If (oldHex != newHex) {
		RLLog.Info("Module - Writing new bz2 path to registry")
		Registry.Write("REG_BINARY", "HKEY_CURRENT_USER", "Software\PS2Eplugin\CDVD\CDVDiso", "IsoFile", newHex)	; write new bz2 path to registry
	}
	HideAppStart(hideEmuObj,hideEmu)
	errLvl := primaryExe.Run(" """ . romPath . "\" . romName . romExtension . """ " . noGUI . Fullscreen . fullboot . nohacks . gamefixes . cfg . cfgPathCLI . gs . pad . spu2 . cdvd . usb . fw . dev9, "UseErrorLevel")
} Else
	ScriptError("You are trying to run a rom type of """ . romExtension . """ but PCSX2 only supports loading iso|mdf|nrg|bin|img|gz directly. Please turn on Virtual Drive and/or 7z support or put ""cue"" last in your rom extensions for " . MEmu . " instead.")
 
If errLvl
	ScriptError("Error launching emulator, closing script.")

emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()

[COLOR="#FF0000"]If bezelPath
	Sleep, %bezelSleep%[/COLOR]

BezelDraw()

; If (hideConsole = "true") {	; should not be needed anymore
	; TimerUtils.SetTimerF("HidePCSX2Console", 10)
	; SetTimerF("HidePCSX2Console", 10)
	; emuBootingWindow.Set("Transparent",0) ; ,"Booting ahk_class wxWindowNR",,"fps:","fps:")	; hiding the console window
	; emuGUIWindow.Set("Transparent",0) ;,"PCSX2 ahk_class wxWindowNR",,"fps:","fps:")	; hiding the GUI window with the menubar
; }

SetTitleMatchMode 2 ; Wrong window might be detected in the next loop if we only use the class name for WinGetTitle so we will add fps to it
Loop { ; Looping until pcsx2 is done loading game
	Sleep, 200
	loopWinTitle := emuLoadingWindow.GetTitle(0) ; Excluding the title of the GUI window so we can read the title of the game window instead
	StringUtils.RegExMatch(loopWinTitle,"(?<=\()(.*?)(?=\))",winText) ;,1,0)	; Only get value between parenthesis
	If (winText > 0) {	; If FPS shows any value, break out
		RLLog.Debug("Module - Game is now running, waiting for exit")
		Break
	}
	If A_Index > 150	; After 30 seconds, error out
		ScriptError("There was an error detecting when PCSX2 finished loading your game. Please report this so the module can be fixed.")

	; Old method here in case devs change something back
	; StringSplit, winTextSplit, winTitle, |, %A_Space%
	; If (winTextSplit10 != "") ; 10th position in the array is empty until game actually starts
		; Break
	; tipText:= 
	; Loop % winTextSplit0
		; tipText .= "`nposition " . A_Index . ": " . winTextSplit%A_Index%
	; ToolTip, % "Loop: " . A_Index . "`ntitle: " . winTitle . "`ntext: " . winText . tipText,0,0
}

HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
primaryExe.Process("WaitClose")

If usedVD
	VirtualDrive("unmount")

7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()


MultiGame:
	; msgbox % "selectedRom = " . selectedRom . "`nselected game = " . currentButton . "`nmgRomPath = " . mgRomPath . "`nmgRomExt = " . mgRomExt . "`nmgRomName = "  . mgRomName
	; Unmount the CD from Virtual Drive
	If usedVD
		VirtualDrive("unmount")
	Sleep, 500	; Required to prevent your Virtual Drive from bugging
	; Mount the CD using Virtual Drive
	If usedVD
		VirtualDrive("mount",selectedRom)
Return

; HidePCSX2Console:
	; hideConsoleTimer++
	; If emuBootingWindow.Exist()
	; {	RLLog.Info("Module - HidePCSX2Console - Console window found, hiding it out of view.")
		; emuBootingWindow.Set("Transparent",0) ; ,"Booting ahk_class wxWindowNR",,"fps:","fps:")	; hiding the console window
		; emuGUIWindow.Set("Transparent",0) ; ,"PCSX2 ahk_class wxWindowNR",,"fps:","fps:")	; hiding the GUI window with the menubar
		; SetTimer("HidePCSX2Console", "Off")
	; } Else If (hideConsoleTimer >= 200)
		; SetTimer("HidePCSX2Console", "Off")
; Return
; HidePCSX2Console() {
	; Static hideConsoleTimer
	; hideConsoleTimer++
	; If emuBootingWindow.Exist()
	; {	RLLog.Info("Module - HidePCSX2Console - Console window found, hiding it out of view.")
		; emuBootingWindow.Set("Transparent",0) ; ,"Booting ahk_class wxWindowNR",,"fps:","fps:")	; hiding the console window
		; emuGUIWindow.Set("Transparent",0) ; ,"PCSX2 ahk_class wxWindowNR",,"fps:","fps:")	; hiding the GUI window with the menubar
		; TimerUtils.SetTimerF("HidePCSX2Console", "Off")
	; } Else If (hideConsoleTimer >= 200)
		; TimerUtils.SetTimerF("HidePCSX2Console", "Off")
; }

CloseProcess:
	FadeOutStart()
	If (fullscreen = "true") {
		; emuPrimaryWindow.CreateControl("wxWindowNR1")		; instantiate new control for wxWindowNR1
		; emuPrimaryWindow.GetControl("wxWindowNR1").Send("Esc")	; Send ESC to the main window when fullscreen is true to close the emu
		emuPrimaryWindow.Close()
	} Else {
		emuGUIWindow.MenuSelectItem("System","Pause")
		emuGUIWindow.Close()
	}
Return

And here's the ISD:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<INISCHEMA>
	<INIFILES>
		<INIFILE name="%ModuleName%" required="false">
			<INITYPE>Module</INITYPE>
			<SECTIONS>
				<SECTION name="Settings" required="false">
					<SECTIONTYPE>Global</SECTIONTYPE>
					<KEYS>
						<KEY name="Fullscreen" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>Enables/Disables Fullscreen</DESCRIPTION>
						</KEY>
						<KEY name="AspectRatio" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Set this to the relation between width and height you'd like the game presented on your display.</DESCRIPTION>
							<VALUES>
								<VALUE description="Fit to Window/Screen">Stretch</VALUE>
								<VALUE description="4:3">4:3</VALUE>
								<VALUE description="16:9">16:9</VALUE>
							</VALUES>
						</KEY>
						<KEY name="PerGameMemoryCards" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>Enables/Disables Support for Per-Game Memory Card support. Make sure you first create a "default.ps2" memory card in the folder you store your memory cards in.</DESCRIPTION>
						</KEY>
						<KEY name="noGUI" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>If true, the GUI window will not show, DO NOT SET THIS AS TRUE, currently pcsx2 doesn't close properly when you exit in this mode. Make sure this option is set to default or false for normal usage, it is only for testing purposes.</DESCRIPTION>
						</KEY>
						<KEY name="fullboot" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>Disables fast booting and shows the bios screen.</DESCRIPTION>
						</KEY>
						<KEY name="HideConsole" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>Enables/Disables hiding of console window that can appear while in windowed mode or using bezels.</DESCRIPTION>
						</KEY>
						<KEY name="AutoCreateINIDir" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>Enables/Disables the module to automatically create per game ini directories for each game in the defined DefaultINISPath directory.</DESCRIPTION>
						</KEY>
						<KEY name="DefaultINISPath" required="false" nullable="true">
							<KEYTYPE>FolderPath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Path to default INIS folder of PCSX2. The INIS files in there will be copied in a new game config folder if AutoCreateINIDir is true, and if it doesn't already exist. If it's empty, it will use the inis subfolder in PCSX2 folder.</DESCRIPTION>
						</KEY>
						<KEY name="cfgpath" required="false" nullable="true">
							<KEYTYPE>FolderPath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Specifies the base config folder. Applies to pcsx2 + plugins. Default will be a subfolder inside your emuPath called "Game Configs". In this folder should reside more folders named after each game and contain any custom dll plugin inis.</DESCRIPTION>
						</KEY>
						<KEY name="VD_CDVD_Plugin" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>In order to support multiple types of images in a single collection, the module needs to know what your CDVD plugin is called when using games mounted with a Virtual Drive. Usually you set this to use cdvdGigaherz.dll (the plugin that supports virtual mounted images)</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="Image_CDVD_Plugin" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>In order to support multiple types of images in a single collection, the module needs to know what your CDVD plugin is called when using images directly loaded by your CDVD plugin. Usually you set this to use CDVDnull.dll (the plugin that supports loading images directly)</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="Linuz_CDVD_Plugin" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>If different than your Image_CDVD_Plugin, point this setting to your Linuz dll. In order to support multiple types of images in a single collection, the module needs to know what your CDVD plugin is called when using BZ2 formatted images, which are directly loaded by your CDVD plugin. Usually you set this to use cdvdiso.dll (the plugin that supports loading BZ2 directly)</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="gs" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default GS plugin set in the emu for all games, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="pad" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default PAD plugin set in the emu for all games, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="spu2" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default SPU2 plugin set in the emu for all games, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="usb" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default USB plugin set in the emu for all games, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="fw" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default FW plugin set in the emu for all games, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="dev9" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default DEV9 plugin set in the emu for all games, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="bezelSleep" required="false" nullable="true" minLength="0">
							<KEYTYPE>Integer</KEYTYPE>
							[COLOR="#FF0000"]<DESCRIPTION>In miliseconds, if you are using the bezel view and the GUI window is being grabbed instead of the main window, try to increase this value. Default is 2000.</DESCRIPTION>[/COLOR]
						</KEY>
					</KEYS>
				</SECTION>
				<SECTION name="%RomName%" required="false">
					<SECTIONTYPE>Rom</SECTIONTYPE>
					<GROUPS>
						<GROUP name="Settings"/>
						<GROUP name="GS Plugin HW Hacks"/>
					</GROUPS>
					<KEYS>
						<KEY name="AspectRatio" group="Settings" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Set this to the relation between width and height you'd like the game presented on your display.</DESCRIPTION>
							<VALUES>
								<VALUE description="Fit to Window/Screen">Stretch</VALUE>
								<VALUE description="4:3">4:3</VALUE>
								<VALUE description="16:9">16:9</VALUE>
							</VALUES>
						</KEY>
						<KEY name="VDOveride" group="Settings" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>This is an override for Virtual Drive support. It allows per-game support for Virtual Drives. Set to true to force this game to use a Virtual Drive or false to disable it.</DESCRIPTION>
						</KEY>
						<KEY name="nohacks" group="Settings" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>disables all speedhacks</DESCRIPTION>
                        </KEY>
						<KEY name="fullboot" required="false" nullable="false">
							<KEYTYPE>Boolean</KEYTYPE>
							<DESCRIPTION>Disables fast booting and shows the bios screen.</DESCRIPTION>
						</KEY>
						<KEY name="gamefixes" group="Settings" required="false" nullable="true">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Use the specified comma or pipe-delimited list of gamefixes: "VuAddSub | VuClipFlag | FpuCompare | FpuMul | FpuNeg | EETiming | SkipMpeg | OPHFlag | DMABusy | VIFFIFO | VI | FMVinSoftware"</DESCRIPTION>
						</KEY>
						<KEY name="gs" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default GS plugin set in the emu, only for this rom, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="pad" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default PAD plugin set in the emu, only for this rom, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="spu2" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default SPU2 plugin set in the emu, only for this rom, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="cdvd" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default CDVD plugin set in the emu, only for this rom, by setting one here. This will also override all the global CDVD plugins set for this module.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="usb" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default USB plugin set in the emu, only for this rom, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="fw" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default FW plugin set in the emu, only for this rom, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="dev9" group="Settings" required="false" nullable="true">
							<KEYTYPE>FilePath</KEYTYPE>
							<FULLROW>true</FULLROW>
							<DESCRIPTION>Override the default DEV9 plugin set in the emu, only for this rom, by setting one here.</DESCRIPTION>
							<PATHTYPE>Any</PATHTYPE>
							<FILEEXTENSIONS>
								<FILEEXTENSION>dll</FILEEXTENSION>
							</FILEEXTENSIONS>
						</KEY>
						<KEY name="MSAA" group="GS Plugin HW Hacks" required="false" nullable="false" minLength="0" maxLength="16">
							<KEYTYPE>Integer</KEYTYPE>
							<DESCRIPTION>Adds anti-aliasing of the selected level to every surface rendered. This is very demanding of video card memory.</DESCRIPTION>
							<VALUES>
								<VALUE description="0x">0</VALUE>
								<VALUE description="2x">2</VALUE>
								<VALUE description="4x">4</VALUE>
								<VALUE description="8x">8</VALUE>
								<VALUE description="16x">16</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Skipdraw" group="GS Plugin HW Hacks" required="false" nullable="false" minLength="0" maxLength="100">
							<KEYTYPE>Integer</KEYTYPE>
							<DESCRIPTION>Skips drawing some surfaces based on how likely they are to cause issues. This option may help with removing ghost images or other post-processing effect rendered incorrectly. You should specify how many surfaces need to be skipped after the first problematic one is found. Always try lower values (like 1-3) first before using higher ones, max of 100. The side effect is the increased possibility for broken/missing graphics and effects. This hack may cause random performance boosts as well.</DESCRIPTION>
						</KEY>
						<KEY name="Half-pixel_Offset" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>This hack adds a 0.5 pixel offset to all surfaces so some common up-scaling issues may be fixed. You can try it when blur or halo effects seem to appear shifted to the upper-left corner from where they should be.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Wild_Arms_Offset" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Lowers GS precision to avoid gaps in pixels when upscaling. It's known to help with upscaling problems for some 2D games.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Fast_Accurate_Blending" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Relies on undefined hardware behavior to accelerate accurate blending operations. Provides a major boost to the Xenosaga series.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Alpha_Stencil" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>This setting will disable partial transparency or prevent drawing some elements. May improve drawing shadows.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Align_Sprite" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Fixes issues with upscaling (vertical lines) in Namco games like Ace Combat, Tekken, Soul Calibur, etc.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Alpha" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Different alpha handling. Try this if your game has issues with fog-like effects or shadows.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Preload_Data_Frame" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>String</KEYTYPE>
							<DESCRIPTION>Uploads GS data when rendering a new frame to reproduce some effects accurately. Fixes black screen issues in games like Armored Core: Last Raven.</DESCRIPTION>
							<VALUES>
								<VALUE description="true">1</VALUE>
								<VALUE description="false">0</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Round_Sprite" group="GS Plugin HW Hacks" required="false" nullable="false" minLength="0" maxLength="2">
							<KEYTYPE>Integer</KEYTYPE>
							<DESCRIPTION>Corrects the sampling of 2D sprite textures when upscaling. Fixes lines in sprites when upscaling in games like Ar tonelico. Half option is for flat sprites, full is for all sprites.</DESCRIPTION>
							<VALUES>
								<VALUE description="Off">0</VALUE>
								<VALUE description="Half">1</VALUE>
								<VALUE description="Full">2</VALUE>
							</VALUES>
						</KEY>
						<KEY name="Sprite" group="GS Plugin HW Hacks" required="false" nullable="false" minLength="0" maxLength="2">
							<KEYTYPE>Integer</KEYTYPE>
							<DESCRIPTION>Helps get rid of black inner lines in some filtered sprites. Half option is the preferred one. Use it for Mana Khemia or Ar tonelico. Full can be used for Tales of Destiny.</DESCRIPTION>
							<VALUES>
								<VALUE description="Off">0</VALUE>
								<VALUE description="Half">1</VALUE>
								<VALUE description="Full">2</VALUE>
							</VALUES>
						</KEY>
						<KEY name="TC_Offset" group="GS Plugin HW Hacks" required="false" nullable="false">
							<KEYTYPE>Integer</KEYTYPE>
							<DESCRIPTION>This setting can help fix some misaligned textures when upscaling. They will correct textures in some games, including Persona 3, Haunting Ground and Xenosaga. (Enter the value found in the GS ini file after setting the offsets within the plugin ui of PCSX2). 32768500 - fixes Persona 3 minimap, helps Haunting Ground. 65536000 - fixes Xenosaga hair edges (DX10+ issue).</DESCRIPTION>
						</KEY>						
					</KEYS>
				</SECTION>
			</SECTIONS>
		</INIFILE>
	</INIFILES>
</INISCHEMA>

I don't fully understand the code, I'm just using my scrubby 'trial and error' methods to try to make it work. :)
 

SupraKarma

Member
Supporter
RL Member
I got it working completely. I changed this:

Code:
bezelSleep := IniReadCheck(settingsFile, "Settings", "bezelSleep","2000",,1) ; In miliseconds, if you are using the bezel view and the GUI window is being grabbed instead of the main window, try to increase this value. Default is 2000.

To this:

Code:
bezelSleep := moduleIni.Read("Settings", "bezelSleep","2000",,1) ; In miliseconds, if you are using the bezel view and the GUI window is being grabbed instead of the main window, try to increase this value. Default is 2000.

The PPSSPP module used the code in the first one, but I noticed the PCSX2 module used 'moduleIni.Read.'

Why doesn't IniReadCheck work though?
 

SupraKarma

Member
Supporter
RL Member
For the OP since I've shamelessly hijacked this thread :D

Here's screenshots of my emulator and module settings. I am not however using version 1.4, but a much later (not current) nightly. You can try this and see if it works.

2018-05-26 (3).png
2018-05-26 (4).png
 

agent47

Super Moderator
Staff member
Supporter
RL Member
The PPSSPP module used the code in the first one, but I noticed the PCSX2 module used 'moduleIni.Read.'

Why doesn't IniReadCheck work though?

You didn't declare the settingsFile but moduleIni.Read is the way it should be done anyway since that uses the newer RL classes.
 

mankin

Member
RL Member
Ok I stepped away for awhile. Updated to the PCSX2 1.6 version read this thread and edited both the AHK module and ISD file with SuperKarma's code and tried to change the global settings in the module ( it won't let me make any changes other than default otherwise it crashes because I edited the module) AND I still can't get the bezel to appear. Here is my RL log:
PHP:
[QUOTE][code]
19:51:14:663 | RL |      INFO  | +N/A   | Main - RocketLauncher v1.2.0.1 (www.rlauncher.com)
19:51:14:784 | RL |      INFO  | +125   | Main - System Specs:
					RocketLauncher Dir: D:\Games\RocketLauncher
					RocketLauncher is: 32-bit
					OS: Microsoft Windows 10 Home
					SKU: Windows 8
					Total Memory: 16340.61 MB
					Free Memory: 11671.62 MB
					Used Memory: 4668.992 MB
					SystemType: 64-bit
					Physical Processors: 1
					Logical Processors: 8
					GPU 1 Name: NVIDIA GeForce GTX 1080
					GPU 1 RAM: -1.00 MB
					GPU 1 Driver Version: 27.21.14.5167
					Sound 1 Device: Steam Streaming Microphone
					Sound 1 Status: Enabled
					Sound 2 Device: Steam Streaming Speakers
					Sound 2 Status: Enabled
					Sound 3 Device: NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
					Sound 3 Status: Enabled
					Sound 4 Device: Sound Blaster Recon3Di
					Sound 4 Status: Enabled
					Sound 5 Device: NVIDIA High Definition Audio
					Sound 5 Status: Enabled
					OS Language: English_United_States
					System Locale: en-CA
					Formats Locale: en-CA
					Windows UI Language: en-US
					Text Encoding: Windows-1252
					OS Admin Status: No
					RL Compatibility Flags:  HIGHDPIAWARE
					Latest .Net Version: v4.0.30319
					Monitor #1 (\\.\DISPLAY1): 1920x1080 (1920x1080 work) [32bit] [144hz] [Landscape]  (Primary)
					Current AHK Desktop Width: 1920
					Current AHK Desktop Height: 1080
					Monitor #1 DPI: 100
					ErrorMode: 0
					AutoHotkey Path: C:\Program Files\AutoHotkey\AutoHotkey.exe
					AHK Version: 1.1.13.00
					Unicode: No
19:51:14:784 | RL |      INFO  | +0     | CheckFile - Checking if D:\Games\RocketLauncher\RocketLauncher.exe exists
19:51:14:785 | RL |      INFO  | +0     | Main - Raw CLI received: "-s Sony PlayStation 2 -r Tekken Tag Tournament (USA) -f D:\Games\Hyperspin\HyperSpin.exe -p HyperSpin -c 1 -o 1"
19:51:14:785 | RL |      INFO  | +0     | Main - Loading Front End Plugin: "HyperSpin"
19:51:14:785 | RL |      INFO  | +0     | Main - RocketLauncher received "Sony PlayStation 2" and "Tekken Tag Tournament (USA)"
19:51:14:789 | RL |      INFO  | +0     | Main - Did not find a "D:\Games\RocketLauncher\Settings\Sony PlayStation 2\Game Options.ini" file, skipping any game-specific options.
19:51:14:789 | RL |      INFO  | +0     | Main - Tekken Tag Tournament (USA) is using the default emulator: PCSX2
19:51:14:789 | RL |      INFO  | +0     | Main - Checking for a [PCSX2] section in D:\Games\RocketLauncher\Settings\Sony PlayStation 2\Emulators.ini
19:51:14:789 | RL |      INFO  | +0     | Main - Checking for a [PCSX2] section in D:\Games\RocketLauncher\Settings\Global Emulators.ini
19:51:14:789 | RL |      INFO  | +0     | Main - Found [PCSX2] in D:\Games\RocketLauncher\Settings\Global Emulators.ini
19:51:14:790 | RL |      INFO  | +0     | CheckFile - Checking if D:\Games\RocketLauncher\Modules\PCSX2\PCSX2.ahk exists
19:51:14:793 | RL |   WARNING  | +0     | Main - CRC Check - CRC does not match official module and will not be supported. Continue using at your own risk.
19:51:14:793 | RL |      INFO  | +0     | Main - Tekken Tag Tournament (USA) will use module: D:\Games\RocketLauncher\Modules\PCSX2\PCSX2.ahk
19:51:14:801 | RL |      INFO  | +15    | Main - Using standard method with "Rom Extension" SkipChecks or without any SkipChecks.
19:51:14:806 | RL |      INFO  | +0     | CheckFile - Checking if D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\pcsx2.exe exists
19:51:14:806 | RL |      INFO  | +0     | Main - INI Keys read
19:51:14:806 | RL |      INFO  | +0     | CheckFile - Checking if D:\Games\RocketLauncher\Module Extensions\7z.exe exists
19:51:14:807 | RL |      INFO  | +0     | CheckFile - Checking if D:\Games\RocketLauncher\Module Extensions\7z.dll exists
19:51:14:814 | RL |      INFO  | +16    | Main - "Tekken Tag Tournament (USA)" does not qualify for MultiGame. Only roms with any of these strings in their name are acceptable: \(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side
19:51:14:814 | RL |      INFO  | +0     | CheckPaths - Started
19:51:14:814 | RL |      INFO  | +0     | CheckPaths - Looking for rom: F:\Romsets\Sony PlayStation 2\Roms\Tekken Tag Tournament (USA).7z
19:51:14:814 | RL |      INFO  | +0     | CheckPaths - Found rom: F:\Romsets\Sony PlayStation 2\Roms\Tekken Tag Tournament (USA).7z
19:51:14:814 | RL |      INFO  | +0     | CheckPaths - Ended
19:51:14:814 | RL |      INFO  | +0     | BuildScript - User Variables:
					;----------------------------------------------------------------------------
					; INJECTED VARIABLES
					;----------------------------------------------------------------------------
					
					#NoTrayIcon
					#InstallKeybdHook
					MiscUtils.DetectHiddenWindows("On")
					SetTitleMatchMode, 2
					SendMode, Event
					Global RLLog
					Global RLObject
					0 := "12"
					rlPath := "D:\Games\RocketLauncher"
					pluginPath := "D:\Games\RocketLauncher\Plugins"
					pluginName := "HyperSpin"
					pluginExt := ".plugin"
					contextOnExit := "1"
					rlMode := ""
					rlTitle := "RocketLauncher"
					rlVersion := "1.2.0.1"
					rlAuthor := "djvj"
					rlURL := "www.rlauncher.com"
					langFile := "D:\Games\RocketLauncher\Data\Language\Localization.ini"
					primMonitor := "1"
					frontendPID := ""
					frontendPath := "D:\Games\Hyperspin"
					frontendExe := "HyperSpin.exe"
					frontendExt := "exe"
					frontendName := "HyperSpin"
					frontendDrive := "D"
					exitEmulatorKey := "2joy7&2joy8|1joy7&1joy8"
					restoreFE := "false"
					exitScriptKey := "~q & ~s"
					toggleCursorKey := "~e & ~t"
					emuFullPath := "D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\pcsx2.exe"
					emuPath := "D:\Games\HyperSpin\Emulators\pcsx2 1.6.0"
					emuName := "PCSX2"
					emuExt := "exe"
					baseRomPath := ""
					romPath := "F:\Romsets\Sony PlayStation 2\Roms"
					romPathFromIni := "F:\Romsets\Sony PlayStation 2\Roms"
					romExtension := ".7z"
					romExtensionOrig := ".7z"
					romExtensions := "7z|rar|zip|cue|iso|gzip|cso|iso.bz2|bin.bz2"
					executable := "pcsx2.exe"
					systemDbName := "Sony PlayStation 2"
					systemName := "Sony PlayStation 2"
					dbPath := ""
					dbName := "Tekken Tag Tournament (USA)"
					dbExt := ""
					romFoundByExt := ""
					romName := "Tekken Tag Tournament (USA)"
					romMapPath := ""
					romMappingEnabled := "false"
					romMappingLaunchMenuEnabled := "false"
					romMappingFirstMatchingExt := "false"
					romMappingShowAllRomsInArchive := "true"
					romMappingNumberOfGamesByScreen := "7"
					romMappingHideParent := "false"
					romMappingMenuWidth := "400"
					romMappingMenuMargin := "65"
					romMappingTextFont := "Bebas Neue"
					romMappingTextOptions := "cFFFFFFFF r4 s60 Bold"
					romMappingDisabledTextColor := "ff888888"
					romMappingTextSizeDifference := "7"
					romMappingTextMargin := "15"
					romMappingTitleTextFont := "Bebas Neue"
					romMappingTitleTextOptions := "cFFFFFFFF r4 s90 Bold"
					romMappingTitle2TextFont := "Bebas Neue"
					romMappingTitle2TextOptions := "cFFFFFFFF r4 s22 Bold"
					romMappingGameInfoTextFont := "Bebas Neue"
					romMappingGameInfoTextOptions := "cFFFFFFFF r4 s22 Regular"
					romMappingGameNameTextFont := "Bebas Neue"
					romMappingGameNameTextOptions := "cFFFFFFFF r4 s40 Regular"
					romMappingBackgroundBrush := "aa000000"
					romMappingColumnBrush := "33000000"
					romMappingButtonBrush1 := "6f000000"
					romMappingButtonBrush2 := "33000000"
					romMappingBackgroundAlign := "Stretch and Lose Aspect"
					romMappingMenuFlagWidth := "55"
					romMappingMenuFlagSeparation := "7"
					romMappingDefaultMenuList := "FullList"
					romMappingSingleFilteredRomAutomaticLaunch := "false"
					altArchiveNameOnly := ""
					altRomNameOnly := ""
					altArchiveAndRomName := ""
					altArchiveAndManyRomNames := ""
					altRomNamesOnly := ""
					romMapScenario := ""
					skipchecks := "false"
					romMatchExt := "false"
					blockInputTime := "0"
					blockInputFile := "D:\Games\RocketLauncher\Module Extensions\BlockInput.exe"
					errorLevelReporting := "false"
					lockLaunch := "false"
					lockLaunchGame := ""
					screenRotationAngle := "0"
					screenRotationAngleGame := ""
					setResolution := ""
					logFile := ""
					logLabel := ["    INFO"," WARNING","   ERROR","   DEBUG","   TRACE"]
					logLevel := "3"
					logShowDebugConsole := "false"
					logShowCommandWindow := "false"
					logCommandWindow := "false"
					logIncludeModule := "true"
					logIncludeFileProperties := "true"
					logIncludeDLLLogs := "false"
					errorSounds := "true"
					rlDebugConsoleStdout := ""
					sysLang := "English_United_States"
					sysType := "64-bit"
					broadcastWindowTitle := ""
					navUpKey := "Up"
					navDownKey := "Down"
					navLeftKey := "Left"
					navRightKey := "Right"
					navSelectKey := "Enter"
					navP2UpKey := "Numpad8"
					navP2DownKey := "Numpad2"
					navP2LeftKey := "Numpad4"
					navP2RightKey := "Numpad6"
					navP2SelectKey := "NumpadEnter"
					originalWidth := "1920"
					originalHeight := "1080"
					vdEnabled := "false"
					vdFullPath := "C:\Program Files\DAEMON Tools Lite\DTLite.exe"
					vdUseSCSI := "false"
					vdDriveLetter := "K"
					vdDriveLetterScsi := ""
					vdAddDrive := "true"
					demulShooterPath := "D:\Games\HyperSpin\Utilities\DemulShooter_v4.6\DemulShooter.exe"
					servoStikEnabled := "false"
					servoStikExitMode := "false"
					ledblinkyEnabled := "false"
					ledblinkySystemName := ""
					ledblinkyFullPath := ""
					ledblinkyProfilePath := "D:\Games\RocketLauncher\Profiles\LEDBlinky"
					ledblinkyRLProfile := "D:\Games\RocketLauncher\Profiles\LEDBlinky\RocketLauncher"
					winIPACFullPath := ""
					ultraMapEnabled := "false"
					ultraMapFullPath := ""
					emuIdleShutdown := "0"
					launchPasswordHash := "UpUpDownDownLeftRightLeftRight"
					cursorSize := ""
					hideCursor := "false"
					hideEmu := "false"
					hideFE := "false"
					suspendFE := "false"
					fadeIn := "true"
					fadeInDuration := "500"
					fadeInTransitionAnimation := "DefaultAnimateFadeIn"
					fadeInDelay := "1000"
					fadeInExitDelay := "0"
					fadeOutExitDelay := "0"
					fadeOut := "true"
					fadeOutExtraScreen := "false"
					fadeOutDuration := "500"
					fadeOutTransitionAnimation := "DefaultAnimateFadeOut"
					fadeOutDelay := "1000"
					fadeLyrInterpolation := "7"
					fadeMuteEmulator := "false"
					fadeUseBackgrounds := "false"
					fadeClickThrough := "false"
					fadeSounds := "true"
					fade7zProgressMode := "extraction"
					fadeWidthBaseRes := "1920"
					fadeHeightBaseRes := "1080"
					fadeLyr1Color := "FF000000"
					fadeLyr1AlignImage := "Stretch and Lose Aspect"
					fadeLyr2Pos := "Stretch and Lose Aspect"
					fadeLyr2X := "0"
					fadeLyr2Y := "0"
					fadeLyr2W := ""
					fadeLyr2H := ""
					fadeLyr2Adjust := "1"
					fadeLyr2PicPad := "0"
					fadeLyr2Prefix := "Extra Layer 1 - Console"
					fadeLyr3Pos := "Center"
					fadeLyr3X := "450"
					fadeLyr3Y := "450"
					fadeLyr3W := ""
					fadeLyr3H := ""
					fadeLyr3Adjust := "1"
					fadeLyr3PicPad := "0"
					fadeLyr3Speed := "750"
					fadeLyr3Animation := "DefaultFadeAnimation"
					fadeLyr37zAnimation := "DefaultFadeAnimation"
					fadeLyr3Type := "imageandbar"
					fadeLyr3ImgFollow7zProgress := "true"
					fadeLyr3Repeat := "1"
					fadeLyr3BackImageTransparency := "30"
					fadeLyr3StaticPos := "No Alignment"
					fadeLyr3StaticX := "0"
					fadeLyr3StaticY := "870|1575"
					fadeLyr3StaticW := ""
					fadeLyr3StaticH := ""
					fadeLyr3StaticAdjust := "1"
					fadeLyr3StaticPicPad := "0"
					fadeLyr3StaticPrefix := "Info Bar"
					fadeLyr4Adjust := "1"
					fadeLyr4X := "1792|952"
					fadeLyr4Y := "891|1596"
					fadeLyr4W := "231"
					fadeLyr4H := "250"
					fadeLyr4Pos := "Bottom Center"
					fadeLyr4FPS := "50"
					fadeLyr4PicPad := "420"
					fadeTranspGifColor := "FFFFFF"
					fadeBarWindow := "Image"
					fadeBarWindowX := ""
					fadeBarWindowY := ""
					fadeBarWindowW := "900"
					fadeBarWindowH := ""
					fadeBarWindowR := "30"
					fadeBarWindowM := "30"
					fadeBarWindowHatchStyle := "8"
					fadeBar := "7zOnly"
					fadeProgressDuration := "0"
					fadeBarBack := "true"
					fadeBarBackColor := "FF555555"
					fadeBarH := "30"
					fadeBarR := "10"
					fadeBarColor := "DD00BFFF"
					fadeBarHatchStyle := "8"
					fadeBarPercentageText := "true"
					fadeBarInfoText := "true"
					fadeBarXOffset := "0"
					fadeBarYOffset := "150"
					fadeRomInfoDescription := "filtered text"
					fadeRomInfoSystemName := "image"
					fadeRomInfoYear := "text with label"
					fadeRomInfoDeveloper := "disabled"
					fadeRomInfoPublisher := "disabled"
					fadeRomInfoGenre := "disabled"
					fadeRomInfoRating := "image"
					fadeRomInfoOrder := "Description|SystemName|Year|Developer|Genre|Rating|Publisher"
					fadeRomInfoTextPlacement := "User Defined"
					fadeRomInfoTextMargin := "7"
					fadeRomInfoText1Options := "w1600|787 h90 x165 y870|1575 cFFE1E1E1 r4 s90 Left Regular"
					fadeRomInfoText2Options := "w400 x8 y15 cFF555555 r4 s60 Bold"
					fadeRomInfoText3Options := "w310 x165 y960|1665 cFFE1E1E1 r4 s66 Left Regular"
					fadeRomInfoText4Options := "w1305|492 h66 x460 y960|1665 cFFE1E1E1 r4 s66 Left Regular"
					fadeRomInfoText5Options := "cFF555555 r4 s42 Bold"
					fadeRomInfoText6Options := "h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular"
					fadeRomInfoText7Options := "h135 x15 y885|1590 cFFCFCFCA r4 s120 Regular"
					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 := "topRight"
					fadeStatsInfoTextMargin := "7"
					fadeStatsInfoText1Options := "cFFB4B4B4 r4 s22 Bold"
					fadeStatsInfoText2Options := "cFFB4B4B4 r4 s22 Bold"
					fadeStatsInfoText3Options := "cFFB4B4B4 r4 s22 Bold"
					fadeStatsInfoText4Options := "cFFB4B4B4 r4 s22 Bold"
					fadeStatsInfoText5Options := "cFFB4B4B4 r4 s22 Bold"
					fadeStatsInfoText6Options := "cFFB4B4B4 r4 s22 Bold"
					fadeText1X := "0"
					fadeText1Y := "0"
					fadeText1Options := "cFFB4B4B4 r4 s30 Right Bold"
					fadeText1 := "Loading Game"
					fadeText2X := "0"
					fadeText2Y := "0"
					fadeText2Options := "cFFB4B4B4 r4 s30 Right Bold"
					fadeText2 := "Extraction Complete, Ready"
					fadeText3 := "Loading Game"
					fadeText4 := "Loading Complete"
					fadeFont := "Bebas Neue"
					fadeSystemAndRomLayersOnly := "false"
					fadeExtractionTime := "disabled"
					fadeExtractionTimeTextX := "0"
					fadeExtractionTimeTextY := "0"
					fadeExtractionTimeTextOptions := "cFF555555 r4 s20 Bold"
					fadeInterruptKey := ""
					detectFadeErrorEnabled := "true"
					fadeImgPath := "D:\Games\RocketLauncher\Media\Fade"
					RLDataPath := "D:\Games\RocketLauncher\Data"
					RLMediaPath := "D:\Games\RocketLauncher\Media"
					RLErrSoundPath := "D:\Games\RocketLauncher\Media\Sounds\Error"
					modulesPath := "D:\Games\RocketLauncher\Modules"
					moduleFullName := "D:\Games\RocketLauncher\Modules\PCSX2\PCSX2.ahk"
					moduleName := "PCSX2"
					modulePath := "D:\Games\RocketLauncher\Modules\PCSX2"
					moduleExtension := "ahk"
					moduleExtensionsPath := "D:\Games\RocketLauncher\Module Extensions"
					libPath := "D:\Games\RocketLauncher\Lib"
					sevenZEnabled := "true"
					sevenZPath := "D:\Games\RocketLauncher\Module Extensions\7z.exe"
					sevenZDllPath := "D:\Games\RocketLauncher\Module Extensions\7z.dll"
					sevenZExtractPath := "C:\Temp Game HyperSpin"
					sevenZExtractPathOrig := ""
					sevenZAttachSystemName := "false"
					sevenZDelTemp := "false"
					sevenZFormats := ".7z|.rar|.zip"
					sevenZFormatsNoP := "7z|rar|zip"
					sevenZFormatsRegEx := "\.7z|\.rar|\.zip"
					sevenZGamesToKeep := ""
					sevenZDeletePerSystem := "false"
					sevenZExtensions := "7z|rar|zip"
					7zExtractPath := "C:\Temp Game HyperSpin"
					mgEnabled := "false"
					mgKey := "~NumpadSub"
					mgBackgroundColor := "FF000000"
					mgSidePadding := "0.2"
					mgWidthBaseRes := "1920"
					mgHeightBaseRes := "1080"
					mgYOffset := "500|800"
					mgFont := "Arial"
					mgText1Options := "x10p y250|500 w80p Center cBBFFFFFF r4 s100 BoldItalic"
					mgText1Text := "Please select a game"
					mgText2Options := "w96p cFFFFFFFF r4 s50 Center BoldItalic"
					mgText2Offset := "100"
					mgUseSound := "true"
					mgSoundfreq := "300"
					mgExitEffect := "none"
					mgSelectedEffect := "rotate"
					mgUseGameArt := "false"
					mgCandidate := ""
					mgValidTypes := "\(Disc|\(Disk|\(Cart|\(Tape|\(Cassette|\(Part|\(Side"
					mgOnLaunch := "false"
					pauseEnabled := "false"
					pauseKey := "~NumpadAdd"
					pauseBackToMenuBarKey := "X"
					pauseZoomInKey := "C"
					pauseZoomOutKey := "V"
					pauseScreenshotKey := "~PrintScreen"
					pauseHiToTextPath := "D:\Games\RocketLauncher\Module Extensions\HiToText.exe"
					pauseSaveStateKeyCodes := "{F1 down}{F1 up}"
					pauseLoadStateKeyCodes := "{F3 down}{F3 up}"
					keyboardEncoder := ""
					keyboardEncoderEnabled := "false"
					keymapperEnabled := "true"
					keymapperAHKMethod := "false"
					keymapper := "joytokey"
					xpadderFullPath := "D:\Games\HyperSpin\Utilities\Xpadder\Xpadder.exe"
					joyToKeyFullPath := "D:\Games\HyperSpin\Utilities\JoyToKey\JoyToKey.exe"
					profilePath := "D:\Games\RocketLauncher\Profiles"
					keymapperProfilePath := "D:\Games\RocketLauncher\Profiles\joytokey"
					keymapperFrontEndProfileName := "RocketLauncherUI"
					keymapperFrontEndProfile := "joytokey"
					keymapperRocketLauncherProfileEnabled := "true"
					joyIDsEnabled := "true"
					joyIDsPreferredControllersGlobal := "Controller (XBOX 360 For Windows)"
					joyIDsPreferredControllersSystem := "use_global"
					joyIDsPreferredControllersOnExit := ""
					CustomJoyNamesEnabled := "false"
					CustomJoyNames := ""
					rotateMethod := "false"
					FEProfile := "D:\Games\RocketLauncher\Profiles\joytokey\RocketLauncherUI"
					defaultProfile := "D:\Games\RocketLauncher\Profiles\joytokey\_Default"
					systemProfile := "D:\Games\RocketLauncher\Profiles\joytokey\Sony PlayStation 2"
					xPadderSystemProfile := "D:\Games\RocketLauncher\Profiles\joytokey\Sony PlayStation 2\_Default"
					emuProfile := "D:\Games\RocketLauncher\Profiles\joytokey\Sony PlayStation 2\PCSX2"
					romProfile := "D:\Games\RocketLauncher\Profiles\joytokey\Sony PlayStation 2\Tekken Tag Tournament (USA)"
					RocketLauncherProfile := "D:\Games\RocketLauncher\Profiles\joytokey\RocketLauncher"
					blankProfile := "D:\Games\RocketLauncher\Profiles\joytokey\blank"
					ahkFEProfile := "D:\Games\RocketLauncher\Profiles\AHK\RocketLauncherUI"
					ahkDefaultProfile := "D:\Games\RocketLauncher\Profiles\AHK\_Default"
					ahkSystemProfile := "D:\Games\RocketLauncher\Profiles\AHK\Sony PlayStation 2"
					ahkEmuProfile := "D:\Games\RocketLauncher\Profiles\AHK\Sony PlayStation 2\PCSX2"
					ahkRomProfile := "D:\Games\RocketLauncher\Profiles\AHK\Sony PlayStation 2\Tekken Tag Tournament (USA)"
					ahkRocketLauncherProfile := "D:\Games\RocketLauncher\Profiles\AHK\RocketLauncher"
					bezelEnabled := "true"
					bezelICEnabled := "false"
					shaderName := "false"
					shaderColor := ""
					shaderTransparency := ""
					statisticsEnabled := "true"
					pressDuration := "-1"
					emuVolume := "1"
					dxwndIni := "D:\Games\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini"
					dxwndFullPath := "D:\Games\RocketLauncher\Module Extensions\dxwnd\dxwnd.exe"
					qResFullPath := "D:\Games\RocketLauncher\Module Extensions\QRes.exe"
					mon1O := ""
					pacDrivedllFile := "D:\Games\RocketLauncher\Module Extensions\PacDrive32.dll"
					userFadeAnimIniFile := "D:\Games\RocketLauncher\Lib\User Fade Animations.ini"
					testFile := ""
					testDuration := ""
					initialErrorMode := "0"

19:51:14:817 | RL |      INFO  | +0     | BuildScript - Loaded XHotkey Init.ahk scripts
19:51:14:817 | RL |      INFO  | +0     | BuildScript - Loaded Keymapper Init.ahk scripts
19:51:14:817 | RL |      INFO  | +0     | BuildScript - Loaded Fade Init.ahk scripts
19:51:14:817 | RL |      INFO  | +0     | BuildScript - Loaded Statistics Init.ahk scripts
19:51:14:817 | RL |      INFO  | +0     | BuildScript - Validating module
19:51:14:818 | RL |      INFO  | +0     | BuildScript - Validation complete
19:51:14:818 | RL |      INFO  | +0     | BuildScript - Module:
					MEmu := "PCSX2"
					MEmuV := "1.5.0-dev-263"
					MURL := ["http://pcsx2.net/"]
					MAuthor := ["djvj"]
					MVersion := "2.2.1"
					MCRC := "1E4F5067"
					iCRC := "65DD0603"
					MID := "635038268913291718"
					MSystem := ["Sony PlayStation 2"]
					;----------------------------------------------------------------------------
					; Notes:
					; This module has many settings that can be controlled via RocketLauncherUI
					; If you want to customize settings per game, add the game to the module's ini using RocketLauncherUI
					; If you use Daemon Tools, make sure you have a SCSI virtual drive setup. Not a DT one.
					; Tested Virtual Drive support with the cdvdGigaherz CDVD plugin. Make sure you set it to use your SCSI Virtual Drive letter.
					; If the incorrect drive is used, the emu will boot to the bios screen and emu will hang in your running processes on exit and require it to be force closed
					; Module will set the CdvdSource to Plugin or Iso depending on if you have Virtual Drive enabled or not.
					; If you have any problems closing the emulator, make sure noGUI module setting in RocketLauncherUI is set to default or false.
					; Most stable bios is Japan v01.00(17/01/2000)
					;
					; Per-game memory cards
					; This module supports per-game memory cards to prevent them from ever becoming full
					; To use this feature, set the PerGameMemoryCards to true in RocketLauncherUI
					; You need to create a default blank memory card in the path you have defined in pcsx's ini found in section [Folders], key MemoryCards.
					; Make sure one of the current memory cards are blank, then copy it in that folder and rename it to "default.ps2". The module will copy this file to a romName.ps2 for each game launched.
					; The module will only insert memory cards into Slot 1. So save your games there.
					;
					; Linuz cdvd plugin stores its settings in the registry @ HKEY_CURRENT_USER\Software\PS2Eplugin\CDVD\CDVDiso
					;
					; v1.4.0 setup guide: https://www.youtube.com/watch?v=ovagz8UXFTU
					;
					; Run pcsx2 with the --help option to see current CLI parameters
					; Known CLI options not currently supported by this module:
					;  --console        	forces the program log/console to be visible
					;  --portable       	enables portable mode operation (requires admin/root access)
					;  --elf=<str>      	executes an ELF image
					;  --forcewiz       	forces PCSX2 to start the First-time Wizard
					;----------------------------------------------------------------------------
					StartModule()
					BezelGUI()
					FadeInStart()
					
					primaryExe := new Emulator(emuPath . "\" . executable)				; instantiate emulator executable object
					emuPrimaryWindow := new Window(new WindowTitle(,"wxWindowNR"),,,"PCSX2")	; instantiate primary emulator window object
					emuGUIWindow := new Window(new WindowTitle("PCSX2","wxWindowNR"))
					emuLoadingWindow := new Window(new WindowTitle("Speed","wxWindowNR"),,"PCSX2")
					emuBootingWindow := new Window(new WindowTitle("Booting","wxWindowNR"))
					
					Fullscreen := moduleIni.Read("Settings", "Fullscreen","true",,1)
					bezelSleep := moduleIni.Read("Settings", "bezelSleep","2000",,1) ; In miliseconds, if you are using the bezel view and the GUI window is being grabbed instead of the main window, try to increase this value. Default is 2000.
					AspectRatio := moduleIni.Read(romName . "|Settings", "AspectRatio","4:3",,1)
					noGUI := moduleIni.Read("Settings", "noGUI","false",,1)	; disables display of the gui while running games
					perGameMemCards := moduleIni.Read("Settings", "PerGameMemoryCards","false",,1)
					hideConsole := moduleIni.Read("Settings", "HideConsole","true",,1)	; Hides console window from view if it shows up
					cfgPath := moduleIni.Read("Settings", "cfgpath", emuPath . "\Game Configs",,1)	; specifies the config folder; applies to pcsx2 + plugins
					autoCreateINIDir := moduleIni.Read("Settings", "AutoCreateINIDir","false",,1)  ; Enables the module to auto-create of per game ini files and directories
					defaultINISPath := moduleIni.Read("Settings", "DefaultINISPath",,,1)  ; Path to default INIS folder of PCSX2.
					fullboot := moduleIni.Read(romName . "|Settings", "fullboot","false",,1)	; disables the quick boot feature, forcing you to sit through the PS2 startup splash screens
					gs := moduleIni.Read(romName . "|Settings", "gs",,,1)	; override for the GS plugin
					pad := moduleIni.Read(romName . "|Settings", "pad",,,1)	; override for the PAD plugin
					spu2 := moduleIni.Read(romName . "|Settings", "spu2",,,1)	; override for the SPU2 plugin
					cdvd := moduleIni.Read(romName, "cdvd",,,1)	; override for the CDVD plugin
					usb := moduleIni.Read(romName . "|Settings", "usb",,,1)	; override for the USB plugin
					fw := moduleIni.Read(romName . "|Settings", "fw",,,1)	; override for the FW plugin
					dev9 := moduleIni.Read(romName . "|Settings", "dev9",,,1)	; override for the DEV9 plugin
					vdOveride := moduleIni.Read(romName, "VDOveride",,,1)
					nohacks := moduleIni.Read(romName, "nohacks","false",,1)	; disables all speedhacks
					gamefixes := moduleIni.Read(romName, "gamefixes",,,1)	; Enable specific gamefixes for this session. Use the specified comma or pipe-delimited list of gamefixes: VuAddSub,VuClipFlag,FpuCompare,FpuMul,FpuNeg,EETiming,SkipMpeg,OPHFlag,DMABusy,VIFFIFO,VI,FMVinSoftware
					
					; GS plugin settings, primarily to fix upscaling issues in games. Game specific settings can be found here: http://www.neogaf.com/forum/showpost.php?p=27110555&postcount=2
					userHacks_MSAA := If moduleIni.Read(romName, "MSAA",0,,1)	; Applies hardware anti-aliasing
					userHacks_SkipDraw := moduleIni.Read(romName, "Skipdraw",0,,1)	; Can remove ghost images
					userHacks_HalfPixelOffset := If moduleIni.Read(romName, "Half-pixel_Offset",0,,1)	; Fixes blur or halo effects
					userHacks_WildHack := If moduleIni.Read(romName, "Wild_Arms_Offset",0,,1)	; Fixes fonts in many games
					userHacks_unsafe_fbmask := If moduleIni.Read(romName, "Fast_Accurate_Blending",0,,1)	; Accelerates blending operations, speeds up Xenosaga
					userHacks_AlphaStencil := If moduleIni.Read(romName, "Alpha_Stencil",0,,1)	; May improve drawing shadows
					userHacks_align_sprite_X := If moduleIni.Read(romName, "Align_Sprite",0,,1)	; Fixes issues with vertical lines in Ace Combat, Tekken, Soul Calibur
					userHacks_AlphaHack := If moduleIni.Read(romName, "Alpha",0,,1)	; Improves drawing fog-like effects
					preload_frame_with_gs_data := If moduleIni.Read(romName, "Preload_Data_Frame",0,,1)	; Fixes black screen issues in Armored Core: Last Raven
					userHacks_round_sprite_offset := moduleIni.Read(romName, "Round_Sprite",0,,1)	; Fixes lines in sprites in Ar tonelico
					userHacks_SpriteHack := moduleIni.Read(romName, "Sprite",0,,1)	; Fixes inner lines in sprites in Mana Khemia, Ar tonelico, Tales of Destiny
					userHacks_TCOffset := moduleIni.Read(romName, "TC_Offset",0,,1)	; Fixes misaligned textures in Persona 3, Haunting Ground, Xenosaga
					; Set the userHacks variable to 1 if any of the hacks are used.
					userHacks := If (userHacks_MSAA || userHacks_SkipDraw || userHacks_HalfPixelOffset || userHacks_WildHack || userHacks_unsafe_fbmask || userHacks_AlphaStencil || userHacks_align_sprite_X || userHacks_AlphaHack || preload_frame_with_gs_data || userHacks_round_sprite_offset || userHacks_SpriteHack || userHacks_TCOffset) ? 1 : ""
					
					cfgPath := new Folder(GetFullName(cfgPath))
					If !cfgPath.Exist()
						cfgPath.CreateDir()	; create the cfg folder if it does not exist
					
					; PCSX2_ui.ini = default ini that contains memory card info and general settings
					portableIni := new File(emuPath . "\portable.ini")
					If portableIni.Exist() {	; portable install
						RLLog.Info("Module - PCSX2 is operating in a portable mode")
						pcsx2IniFolder := emuPath . "\inis"
						pcsx2_GS_IniFile := CheckFile(emuPath . "\inis\GSdx.ini", "Could not find the default GSdx.ini file. Please manually run and configure PCSX2 first so this file is created with all your default settings.")
					} Else {	; default not portable install
						RLLog.Info("Module - PCSX2 is operating in a standard installation mode")
						pcsx2IniFolder := Registry.Read("HKCU", "Software\PCSX2", "SettingsFolder")
					}
					pcsx2Ini := new IniFile(pcsx2IniFolder . "\PCSX2_ui.ini")
					pcsx2Ini.CheckFile("Could not find the default PCSX2_ui.ini file. Please manually run and configure PCSX2 first so this file is created with all your default settings.")
					pcsx2GSdxIni := new IniFile(pcsx2IniFolder . "\GSdx.ini")
					pcsx2GSdxIni.CheckFile("Could not find the default GSdx.ini file. Please manually run and configure PCSX2 first so this file is created with all your default settings.")
					pcsx2IniFolder := new Folder(pcsx2IniFolder)
					
					; Create INIs subfolder for the game if it does not exist and if AutoCreateINIDir is true
					perGameINIPath := new Folder(cfgPath.FileFullPath . "\" . romName)
					If (autoCreateINIDir = "true") {
						RLLog.Info("Module - PerGameIni - perGameINIPath = " . perGameINIPath.FileFullPath)
						If !perGameINIPath.Exist() {
							perGameINIPath.CreateDir()
							If (defaultINISPath != "") {
								defaultINISPath := new Folder(defaultINISPath)
								RLLog.Info("Module - PerGameIni - perGameINIPath does not exist.  So we will create it at " . perGameINIPath.FileFullPath)
								RLLog.Info("Module - PerGameIni - Now copying the ini files from " . defaultINISPath.FileFullPath . " to " . perGameINIPath.FileFullPath)
								defaultINISPath.Copy(perGameINIPath.FileFullPath,0,"\*.ini")
							} Else {
								RLLog.Info("Module - PerGameIni - perGameINIPath does not exist.  So we will create it at " . perGameINIPath.FileFullPath)
								RLLog.Info("Module - PerGameIni - Now copying the ini files from " . pcsx2IniFolder.FileFullPath . " to " . perGameINIPath.FileFullPath)
								pcsx2IniFolder.Copy(perGameINIPath.FileFullPath,0,"\*.ini")
							}
						}
					}
					
					BezelStart()
					
					Fullscreen := If Fullscreen = "true" ? " --fullscreen" : ""
					noGUI := If noGUI = "true" ? " --nogui" : ""
					If (noGUI != "")
						RLLog.Warning("Module - noGUI is set to true, THIS MAY PREVENT PCSX2 FROM CLOSING PROPERLY. If you have any issues, set it to false or default in RocketLauncherUI.")
					fullboot := If fullboot = "true" ? " --fullboot" : ""
					nohacks := If nohacks = "true" ? " --nohacks" : ""
					gamefixes := If gamefixes ? " --gamefixes=" . gamefixes : ""
					gs := If gs ? " --gs=""" . GetFullName(gs) . """" : ""
					pad := If pad ? " --pad=""" . GetFullName(pad) . """" : ""
					spu2 := If spu2 ? " --spu2=""" . GetFullName(spu2) . """" : ""
					usb := If usb ? " --usb=""" . GetFullName(usb) . """" : ""
					fw := If fw ? " --fw=""" . GetFullName(fw) . """" : ""
					dev9 := If dev9 ? " --dev9=""" . GetFullName(dev9) . """" : ""
					
					; cfgRomPath := new File(cfgPath . "\" . romName)
					cfgPathCLI := If perGameINIPath.Exist() ? " --cfgpath=""" . perGameINIPath.FileFullPath . """" : ""
					
					; Specify what main ini PCSX2 should use
					pcsx2GameIni := new File(perGameINIPath.FileFullPath . "\PCSX2_ui.ini")
					If (cfgPathCLI && pcsx2GameIni.Exist()) {
						;We can't set both cfgpath and cfg CLI switches, so if only PCSX2_ui.ini file exists we use cfg otherwise we use cfgpath
						;--cfg specifies a custom configuration file to use instead of PCSX2.ini (does not affect plugins)
						filecount := 0 
						Loop % perGameINIPath.FileFullPath . "\*.ini"
							filecount++
						If (filecount = 1)
						{
							;Only PCSX2_ui.ini found
							pcsx2IniFile := pcsx2GameIni
							RLLog.Info("Module - Found a game-specific PCSX2_ui.ini in the cfgPath. Telling PCSX2 to use this one instead: " . pcsx2IniFile.FileFullPath)
							cfg := " --cfg=""" . pcsx2IniFile.FileFullPath . """"
							cfgPathCLI := ""
						}
					}
					RLLog.Info("Module - " . (If cfgPathCLI != "" ? "Setting PCSX2's config path to """ . perGameINIPath.FileFullPath . """" : "Using PCSX2's default configuration folder: """ . pcsx2IniFolder.FileFullPath . """"))
					
					; Update the aspect ratio if the user selected one.
					If AspectRatio {
					    pcsx2Ini.Write(AspectRatio, "GSWindow", "AspectRatio")	; Write the aspect ratio value to the pcsx2Ini.
					}
					
					; Update the GS plugin settings if hacks were selected.
					If userHacks {
						RLLog.Info("Module - UserHacks are being used. Updating GSdx.ini")
						pcsx2GSdxIni.Write(userHacks, "Settings", "UserHacks")
						pcsx2GSdxIni.Write(userHacks_MSAA, "Settings", "UserHacks_MSAA")
						pcsx2GSdxIni.Write(userHacks_SkipDraw, "Settings", "UserHacks_SkipDraw")
						pcsx2GSdxIni.Write(userHacks_HalfPixelOffset, "Settings", "UserHacks_HalfPixelOffset")
						pcsx2GSdxIni.Write(userHacks_WildHack, "Settings", "UserHacks_WildHack")
						pcsx2GSdxIni.Write(userHacks_unsafe_fbmask, "Settings", "UserHacks_unsafe_fbmask")
						pcsx2GSdxIni.Write(userHacks_AlphaStencil, "Settings", "UserHacks_AlphaStencil")
						pcsx2GSdxIni.Write(userHacks_align_sprite_X, "Settings", "UserHacks_align_sprite_X")
						pcsx2GSdxIni.Write(userHacks_AlphaHack, "Settings", "UserHacks_AlphaHack")
						pcsx2GSdxIni.Write(preload_frame_with_gs_data, "Settings", "preload_frame_with_gs_data")
						pcsx2GSdxIni.Write(userHacks_round_sprite_offset, "Settings", "UserHacks_round_sprite_offset")
						pcsx2GSdxIni.Write(userHacks_SpriteHack, "Settings", "UserHacks_SpriteHack")
						pcsx2GSdxIni.Write(userHacks_TCOffset, "Settings", "UserHacks_TCOffset")
					} Else {
						; Make sure hacks are disabled.
						pcsx2GSdxIni.Write(UserHacks, "Settings", "UserHacks")
					}
					
					; Memory Cards
					If (perGameMemCards = "true")
					{	currentMemCard1 := pcsx2Ini.Read("MemoryCards", "Slot1_Filename")
						memCardPath := pcsx2Ini.Read("Folders", "MemoryCards")	; folder where memory cards are stored
						memCardPathLeft := StringUtils.SubStr(memCardPath,1,3)	; get left 3 characters
						memCardPathIsAbsolute := If (StringUtils.RegExMatch(memCardPathLeft, "[a-zA-Z]:\\") && (StringUtils.StringLength(memCardPath) >= 3))	; this is 1 only when path looks like this "C:\"
						memCardPath := If memCardPathIsAbsolute ? memCardPath : emuPath . "\" . memCardPath	; if only a folder name is defined for the memory card path, tack on the emuPath to find the memory cards, otherwise leave the full path as is
						defaultMemCard := new File(memCardPath . "\default.ps2")	; defining default blank memory card for slot 1
						RLLog.Info("Module - Default memory card for Slot 1 should be: " . defaultMemCard.FileFullPath)
						romMemCard1 := new File(memCardPath . "\" . romName . ".ps2")	; defining name for rom's memory card for slot 1
						RLLog.Info("Module - Rom memory card for Slot 1 should be: " . romMemCard1.FileFullPath)
						RLLog.Info("Module - Current memory card inserted in PCSX2's ini in Slot 1 is: " . currentMemCard1.FileFullPath)
					
						If (currentMemCard1 != romName . ".ps2") {	; if current memory card in slot 1 does not match this romName, switch to one that does if exist or load a default one
							If !romMemCard1.Exist()	; first check if romName.ps2 memory card exists
								If !defaultMemCard.Exist()
									RLLog.Error("Module - A default memory card for Slot 1 was not found in """ . memCardPath . """. Please create an empty memory card called ""default.ps2"" in this folder for per-game memory card support.")
								Else {
									defaultMemCard.Copy(romMemCard1.FileFullPath)	; create a new blank memory card for this game
									RLLog.Info("Module - Creating a new blank memory card for this game in Slot 1: " . romMemCard1.FileFullPath)
								}
							pcsx2Ini.Write(romName . ".ps2", "MemoryCards", "Slot1_Filename")	; update the ini to use this rom's card
							RLLog.Info("Module - Switched memory card in Slot 1 to: " . romMemCard1.FileFullPath)
						}
					}
					
					hideEmuObj := Object(emuBootingWindow,0,emuGUIWindow,0,emuPrimaryWindow,1)
					7z(romPath, romName, romExtension, SevenZExtractPath)
					
					pcsx2Ini := LoadProperties(pcsx2IniFile.FileFullPath)	; load the config into memory
					dvdSource := ReadProperty(pcsx2Ini,"CdvdSource")	; read value
					
					If (vdEnabled != "true" && romExtension = ".cue") {
						RLLog.Warning("Module - Virtual Drive is disabled but you supplied a .cue as your rom which is not supported by PCSX2")
						pcsx2GameBin := new File(romPath . "\" . romName . ".bin")
						pcsx2GameIso := new File(romPath . "\" . romName . ".iso")
						If pcsx2GameBin.Exist() {
							romExtension := ".bin"
							RLLog.Warning("Module - Found a .bin file with the same name as your cue, using it instead. Please change the order of your rom extensions if you want bins to be found first.")
						} Else If pcsx2GameIso.Exist() {
							romExtension := ".iso"
							RLLog.Warning("Module - Found a .iso file with the same name as your cue, using it instead. Please change the order of your rom extensions if you want isos to be found first.")
						}
					}
					
					; Mount the CD using a Virtual Drive
					If vdOveride	; this allows per-game Virtual Drive support because some games boot to black when Virtual Drive is enabled
						vdEnabled := vdOveride
					If (vdEnabled = "true" && StringUtils.Contains(romExtension,"\.mds|\.mdx|\.b5t|\.b6t|\.bwt|\.ccd|\.cue|\.isz|\.nrg|\.cdi|\.iso|\.ape|\.flac")) {	; if Virtual Drive is enabled and using an image type Virtual Drive can load
						If !cdvd {
							vdCDVDPlugin := moduleIni.Read("Settings", "VD_CDVD_Plugin",,,1)
							If vdCDVDPlugin
								cdvd := vdCDVDPlugin
						}
						cdvd := If cdvd ? " --cdvd=""" . GetFullName(cdvd) . """" : ""
						If (dvdSource != "Plugin")
						{	RLLog.Info("Module - CdvdSource was not set to ""Plugin"", changing it so PCSX2 can read from Virtual Drive.")
							WriteProperty(pcsx2Ini,"CdvdSource","Plugin")	; write a new value to the pcsx2IniFile
							SaveProperties(pcsx2IniFile.FileFullPath,pcsx2Ini)	; save pcsx2IniFile to disk
						}
						
						pcsx2cdvdIni := new IniFile(pcsx2IniFolder . "\cdvdGigaherz.ini")
						dvdDrive := pcsx2cdvdIni.Read("Config", "Source")	; cdvd drive
						If StringUtils.InStr(dvdDrive,"@") {
							If (vdDriveLetter != "")
								pcsx2cdvdIni.Write(vdDriveLetter, "Config", "Source")
							Else
								ScriptError("You are using a Virtual Drive but have not selected the drive you want to use in PCSX2 CDVD Plugin settings. Select your drive first, either in RLUI Virtual Drive Third Party Settings or within the PCSX2's plugin settings, then try launching again.")
						} Else If (dvdDrive != vdDriveLetter) {
							RLLog.Warning("Module - PCSX2 is set to use drive """ . dvdDrive . """ but RocketLauncher is set to use """ . vdDriveLetter . """. Ignore this warning if this is expected.")
						}
						VirtualDrive("mount",romPath . "\" . romName . romExtension)
						HideAppStart(hideEmuObj,hideEmu)
						errLvl := primaryExe.Run(" --usecd" . noGUI . Fullscreen . fullboot . nohacks . gamefixes . cfg . cfgPathCLI . gs . pad . spu2 . cdvd . usb . fw . dev9, "UseErrorLevel")
						usedVD := 1	; tell the rest of the script to use VD methods
					} Else If StringUtils.Contains(romExtension,"\.iso|\.mdf|\.nrg|\.bin|\.img|\.gz|\.cso|\.dump")	; the only formats PCSX2 supports loading directly
					{
						If !cdvd {
							imageCDVDPlugin := moduleIni.Read("Settings", "Image_CDVD_Plugin",,,1)
							If imageCDVDPlugin
								cdvd := imageCDVDPlugin
						}
						cdvd := If cdvd ? " --cdvd=""" . GetFullName(cdvd) . """" : ""
						If (dvdSource != "Iso")
						{	RLLog.Info("Module - CdvdSource was not set to ""Iso"", changing it so PCSX2 can launch this " . romExtension . " image directly")
							WriteProperty(pcsx2Ini,"CdvdSource","Iso")	; write a new value to the pcsx2IniFile
							SaveProperties(pcsx2IniFile.FileFullPath,pcsx2Ini)	; save pcsx2IniFile to disk
						}
						HideAppStart(hideEmuObj,hideEmu)
						errLvl := primaryExe.Run(" """ . romPath . "\" . romName . romExtension . """ " . noGUI . Fullscreen . fullboot . nohacks . gamefixes . cfg . cfgPathCLI . gs . pad . spu2 . cdvd . usb . fw . dev9, "UseErrorLevel")
					} Else If StringUtils.Contains(romExtension,"\.bz2")	; special case format that requires plugin mode and pcsx2 loads it directly
					{
						If !cdvd {
							linuzCDVDPlugin := moduleIni.Read("Settings", "Linuz_CDVD_Plugin",,,1)
							If linuzCDVDPlugin
								cdvd := linuzCDVDPlugin
						}
						cdvd := If cdvd ? " --cdvd=""" . GetFullName(cdvd) . """" : ""
						If (dvdSource != "plugin")
						{	RLLog.Info("Module - CdvdSource was not set to ""Plugin"", changing it so PCSX2 can launch this " . romExtension . " image directly")
							WriteProperty(pcsx2Ini,"CdvdSource","Plugin")	; write a new value to the pcsx2IniFile
							SaveProperties(pcsx2IniFile.FileFullPath,pcsx2Ini)	; save pcsx2IniFile to disk
						}
						oldHex := Registry.Read("HKEY_CURRENT_USER", "Software\PS2Eplugin\CDVD\CDVDiso", "IsoFile")	; read last used bz2 image
						newHex := StringUtils.StringToHex(romPath . "\" . romName . romExtension)	; convert new bz2 image path to hex
						i := 512 - StringUtils.StringLength(newHex)	; get total amount of 0's to add to end of hex to make it 512 bytes
						Loop % i
							newHex := newHex . "0"	; add required bytes to end
						If (oldHex != newHex) {
							RLLog.Info("Module - Writing new bz2 path to registry")
							Registry.Write("REG_BINARY", "HKEY_CURRENT_USER", "Software\PS2Eplugin\CDVD\CDVDiso", "IsoFile", newHex)	; write new bz2 path to registry
						}
						HideAppStart(hideEmuObj,hideEmu)
						errLvl := primaryExe.Run(" """ . romPath . "\" . romName . romExtension . """ " . noGUI . Fullscreen . fullboot . nohacks . gamefixes . cfg . cfgPathCLI . gs . pad . spu2 . cdvd . usb . fw . dev9, "UseErrorLevel")
					} Else
						ScriptError("You are trying to run a rom type of """ . romExtension . """ but PCSX2 only supports loading iso|mdf|nrg|bin|img|gz directly. Please turn on Virtual Drive and/or 7z support or put ""cue"" last in your rom extensions for " . MEmu . " instead.")
					 
					If errLvl
						ScriptError("Error launching emulator, closing script.")
					
					emuPrimaryWindow.Wait()
					emuPrimaryWindow.WaitActive()
					
					If bezelPath
						Sleep, %bezelSleep%
					
					BezelDraw()
					
					; If (hideConsole = "true") {	; should not be needed anymore
						; TimerUtils.SetTimerF("HidePCSX2Console", 10)
						; SetTimerF("HidePCSX2Console", 10)
						; emuBootingWindow.Set("Transparent",0) ; ,"Booting ahk_class wxWindowNR",,"fps:","fps:")	; hiding the console window
						; emuGUIWindow.Set("Transparent",0) ;,"PCSX2 ahk_class wxWindowNR",,"fps:","fps:")	; hiding the GUI window with the menubar
					; }
					
					SetTitleMatchMode 2 ; Wrong window might be detected in the next loop if we only use the class name for WinGetTitle so we will add fps to it
					Loop { ; Looping until pcsx2 is done loading game
						Sleep, 200
						loopWinTitle := emuLoadingWindow.GetTitle(0) ; Excluding the title of the GUI window so we can read the title of the game window instead
						StringUtils.RegExMatch(loopWinTitle,"(?<=\()(.*?)(?=\))",winText) ;,1,0)	; Only get value between parenthesis
						If (winText > 0) {	; If FPS shows any value, break out
							RLLog.Debug("Module - Game is now running, waiting for exit")
							Break
						}
						If A_Index > 150	; After 30 seconds, error out
							ScriptError("There was an error detecting when PCSX2 finished loading your game. Please report this so the module can be fixed.")
					
						; Old method here in case devs change something back
						; StringSplit, winTextSplit, winTitle, |, %A_Space%
						; If (winTextSplit10 != "") ; 10th position in the array is empty until game actually starts
							; Break
						; tipText:= 
						; Loop % winTextSplit0
							; tipText .= "`nposition " . A_Index . ": " . winTextSplit%A_Index%
						; ToolTip, % "Loop: " . A_Index . "`ntitle: " . winTitle . "`ntext: " . winText . tipText,0,0
					}
					
					HideAppEnd(hideEmuObj,hideEmu)
					FadeInExit()
					primaryExe.Process("WaitClose")
					
					If usedVD
						VirtualDrive("unmount")
					
					7zCleanUp()
					BezelExit()
					FadeOutExit()
					ExitModule()
					
					
					MultiGame:
						; msgbox % "selectedRom = " . selectedRom . "`nselected game = " . currentButton . "`nmgRomPath = " . mgRomPath . "`nmgRomExt = " . mgRomExt . "`nmgRomName = "  . mgRomName
						; Unmount the CD from Virtual Drive
						If usedVD
							VirtualDrive("unmount")
						Sleep, 500	; Required to prevent your Virtual Drive from bugging
						; Mount the CD using Virtual Drive
						If usedVD
							VirtualDrive("mount",selectedRom)
					Return
					
					; HidePCSX2Console:
						; hideConsoleTimer++
						; If emuBootingWindow.Exist()
						; {	RLLog.Info("Module - HidePCSX2Console - Console window found, hiding it out of view.")
							; emuBootingWindow.Set("Transparent",0) ; ,"Booting ahk_class wxWindowNR",,"fps:","fps:")	; hiding the console window
							; emuGUIWindow.Set("Transparent",0) ; ,"PCSX2 ahk_class wxWindowNR",,"fps:","fps:")	; hiding the GUI window with the menubar
							; SetTimer("HidePCSX2Console", "Off")
						; } Else If (hideConsoleTimer >= 200)
							; SetTimer("HidePCSX2Console", "Off")
					; Return
					; HidePCSX2Console() {
						; Static hideConsoleTimer
						; hideConsoleTimer++
						; If emuBootingWindow.Exist()
						; {	RLLog.Info("Module - HidePCSX2Console - Console window found, hiding it out of view.")
							; emuBootingWindow.Set("Transparent",0) ; ,"Booting ahk_class wxWindowNR",,"fps:","fps:")	; hiding the console window
							; emuGUIWindow.Set("Transparent",0) ; ,"PCSX2 ahk_class wxWindowNR",,"fps:","fps:")	; hiding the GUI window with the menubar
							; TimerUtils.SetTimerF("HidePCSX2Console", "Off")
						; } Else If (hideConsoleTimer >= 200)
							; TimerUtils.SetTimerF("HidePCSX2Console", "Off")
					; }
					
					CloseProcess:
						FadeOutStart()
						If (fullscreen = "true") {
							; emuPrimaryWindow.CreateControl("wxWindowNR1")		; instantiate new control for wxWindowNR1
							; emuPrimaryWindow.GetControl("wxWindowNR1").Send("Esc")	; Send ESC to the main window when fullscreen is true to close the emu
							emuPrimaryWindow.Close()
						} Else {
							emuGUIWindow.MenuSelectItem("System","Pause")
							emuGUIWindow.Close()
						}
					Return

19:51:14:819 | RL |      INFO  | +0     | BuildScript - Loaded Multi-Player scripts
19:51:14:819 | RL |      INFO  | +0     | BuildScript - Loaded Statistics.ahk script
19:51:14:819 | RL |      INFO  | +0     | BuildScript - "D:\Games\RocketLauncher\Lib\User Functions\Global.ahk" not found
19:51:14:820 | RL |      INFO  | +0     | BuildScript - "D:\Games\RocketLauncher\Lib\User Functions\Sony PlayStation 2.ahk" not found
19:51:14:820 | RL |      INFO  | +0     | BuildScript - "D:\Games\RocketLauncher\Lib\User Functions\Emulators\PCSX2.ahk" not found
19:51:14:820 | RL |      INFO  | +0     | BuildScript - "D:\Games\RocketLauncher\Lib\User Functions\Sony PlayStation 2\Emulators\PCSX2.ahk" not found
19:51:14:820 | RL |      INFO  | +0     | BuildScript - "D:\Games\RocketLauncher\Lib\User Functions\Sony PlayStation 2\Tekken Tag Tournament (USA).ahk" not found
19:51:14:820 | RL |      INFO  | +0     | BuildScript - Finished injecting functions into module
19:51:14:820 | RL |      INFO  | +0     | Main - Module is built
19:51:14:820 | RL |      INFO  | +0     | CheckFile - Checking if D:\Games\RocketLauncher\AutoHotkey.dll exists
19:51:14:822 | RL |      INFO  | +0     | Main - Running module
19:51:15:012 | MD |      INFO  | +N/A   | Module initialized
19:51:15:043 | MD |      INFO  | +31    | LoadPreferredControllers - Started
19:51:15:043 | MD |      INFO  | +0     | GetJoystickArray - Started
19:51:15:075 | MD |      INFO  | +31    | GetJoystickGUID - Started
19:51:15:075 | MD |      INFO  | +0     | GetJoystickGUID - Ended and found GUID: F0CBD5E1AC09E8118001444553540000
19:51:15:104 | MD |      INFO  | +31    | GetJoystickGUID - Started
19:51:15:104 | MD |      INFO  | +0     | GetJoystickGUID - Ended and found GUID: E09D7EF1059FE8118001444553540000
19:51:15:104 | MD |      INFO  | +0     | GetJoystickArray - Ended
19:51:15:104 | MD |      INFO  | +0     | LoadPreferredControllers - Sorting Currently Connected joysticks List to match the order of the Preferred Controller List
19:51:15:104 | MD |      INFO  | +0     | LoadPreferredControllers - Assigning the New Joystick IDs according to the preferred list for the active controllers
19:51:15:104 | MD |      INFO  | +0     | ChangeJoystickID - Started
19:51:15:105 | MD |      INFO  | +0     | ChangeJoystickID - Ended
19:51:15:105 | MD |      INFO  | +0     | ChangeJoystickID - Started
19:51:15:105 | MD |      INFO  | +0     | ChangeJoystickID - Ended
19:51:15:105 | MD |      INFO  | +0     | LoadPreferredControllers - Ended
19:51:15:105 | MD |      INFO  | +0     | CheckFile - Checking if D:\Games\HyperSpin\Utilities\JoyToKey\JoyToKey.exe exists
19:51:15:106 | MD |      INFO  | +0     | Keymapper - Loading joytokey
19:51:15:106 | MD |      INFO  | +0     | RunKeymapper - Started, using method "load"
19:51:15:106 | MD |      INFO  | +0     | GetJoystickArray - Started
19:51:15:137 | MD |      INFO  | +32    | GetJoystickGUID - Started
19:51:15:137 | MD |      INFO  | +0     | GetJoystickGUID - Ended and found GUID: F0CBD5E1AC09E8118001444553540000
19:51:15:167 | MD |      INFO  | +31    | GetJoystickGUID - Started
19:51:15:168 | MD |      INFO  | +0     | GetJoystickGUID - Ended and found GUID: E09D7EF1059FE8118001444553540000
19:51:15:168 | MD |      INFO  | +0     | GetJoystickArray - Ended
19:51:15:168 | MD |   WARNING  | +0     | GetProfile - Keymapper support is enabled for "joytokey", but could not find a "Tekken Tag Tournament (USA)", "PCSX2", "Sony PlayStation 2", default, a "" player 1 profile or a blank profile in "D:\Games\RocketLauncher\Profiles\joytokey" for controller ""
19:51:15:168 | MD |      INFO  | +0     | RunJoyToKey - Started
19:51:15:168 | MD |      INFO  | +0     | Process - Exist Xpadder.exe 
19:51:15:197 | MD |      INFO  | +31    | WinClose - Closing: JoyToKey ahk_class TMainForm
19:51:15:340 | MD |      INFO  | +141   | Process - WaitClose JoyToKey.exe 2
19:51:15:356 | MD |      INFO  | +31    | RunJoyToKey - Ended
19:51:15:356 | MD |      INFO  | +0     | RunKeymapper - Ended
19:51:15:357 | MD |      INFO  | +0     | StartModule - Started
19:51:15:357 | MD |      INFO  | +0     | StartModule - MEmu: PCSX2
					MEmuV: 1.5.0-dev-263
					MURL: http://pcsx2.net/
					MAuthor: djvj
					MVersion: 2.2.1
					MCRC: 1E4F5067
					iCRC: 65DD0603
					MID: 635038268913291718
					MSystem: Sony PlayStation 2
19:51:15:357 | MD |      INFO  | +0     | StartModule - You have a supported System Name for this module: "Sony PlayStation 2"
19:51:15:357 | MD |      INFO  | +0     | LocaleUtils.i18n - Started
19:51:15:357 | MD |      INFO  | +0     | LocaleUtils.i18n - Ended, using "Open" for "dialog.open"
19:51:15:357 | MD |      INFO  | +0     | LocaleUtils.i18n - Started
19:51:15:357 | MD |      INFO  | +0     | LocaleUtils.i18n - Ended, using "Start" for "dialog.start"
19:51:15:358 | MD |      INFO  | +0     | PluginInit - Started
19:51:15:358 | MD |      INFO  | +0     | CheckFile - Checking if D:\Games\Hyperspin\Databases\Sony PlayStation 2\Sony PlayStation 2.xml exists
19:51:15:364 | MD |      INFO  | +0     | BuildAssetsTable - Started - Building Table for: Game Logo|System Logo
19:51:15:364 | MD |      INFO  | +0     | BuildAssetsTable - Ended
19:51:15:364 | MD |      INFO  | +0     | BuildAssetsTable - Started - Building Table for: Artwork1|Box Art|Cartridge|Flyers|Letters|Other
19:51:15:682 | MD |      INFO  | +312   | BuildAssetsTable - Ended
19:51:15:682 | MD |      INFO  | +0     | BuildAssetsTable - Started - Building Table for: Game Video|System Video
19:51:15:682 | MD |      INFO  | +0     | BuildAssetsTable - Ended
19:51:15:682 | MD |      INFO  | +0     | PluginInit - Ended
19:51:15:714 | MD |      INFO  | +32    | StartModule - Ended
19:51:15:714 | MD |      INFO  | +0     | BezelGUI - Started
19:51:15:963 | MD |      INFO  | +250   | BezelGUI - Ended
19:51:15:963 | MD |      INFO  | +0     | GetFadePicFile - Randomized images and Fade  will use D:\Games\RocketLauncher\Media\Fade\Sony PlayStation 2\_Default\Layer 1.png
19:51:15:964 | MD |      INFO  | +0     | GetFadePicFile - Randomized images and Fade  will use D:\Games\RocketLauncher\Media\Fade\Sony PlayStation 2\_Default\Extra Layer 1 - Console.png
19:51:16:149 | MD |      INFO  | +187   | DefaultAnimateFadeIn - Started, direction is: in
19:51:16:149 | MD |      INFO  | +0     | DefaultAnimateFadeIn - Drawing First FadeIn Image.
19:51:16:653 | MD |      INFO  | +500   | DefaultAnimateFadeIn - Ended
19:51:16:840 | MD |      INFO  | +188   | DxwndUpdateIniPath - DxwndIni set to D:\Games\RocketLauncher\Module Extensions\dxwnd\dxwnd.ini
19:51:16:871 | MD |      INFO  | +31    | RIniFile.Read - Module - Fullscreen: true (DEFAULT)
19:51:16:871 | MD |      INFO  | +0     | RIniFile.Read - Module - bezelSleep: 2000 (DEFAULT)
19:51:16:871 | MD |      INFO  | +0     | RIniFile.Read - Module - AspectRatio: 4:3 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - noGUI: false (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - PerGameMemoryCards: false (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - HideConsole: true (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - cfgpath: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\Game Configs (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - AutoCreateINIDir: false (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - DefaultINISPath: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - fullboot: false (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - gs: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - pad: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - spu2: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - cdvd: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - usb: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - fw: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - dev9: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - VDOveride: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - nohacks: false (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - gamefixes: (NO VALUE)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - MSAA: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Skipdraw: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Half-pixel_Offset: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Wild_Arms_Offset: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Fast_Accurate_Blending: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Alpha_Stencil: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module {GlobalModuleIni} - [Tekken Tag Tournament (USA)] - Align_Sprite: 1
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Alpha: 0 (DEFAULT)
19:51:16:872 | MD |      INFO  | +0     | RIniFile.Read - Module - Preload_Data_Frame: 0 (DEFAULT)
19:51:16:873 | MD |      INFO  | +0     | RIniFile.Read - Module - Round_Sprite: 0 (DEFAULT)
19:51:16:899 | MD |      INFO  | +31    | RIniFile.Read - Module - Sprite: 0 (DEFAULT)
19:51:16:899 | MD |      INFO  | +0     | RIniFile.Read - Module - TC_Offset: 0 (DEFAULT)
19:51:16:899 | MD |      INFO  | +0     | Module - PCSX2 is operating in a portable mode
19:51:16:899 | MD |      INFO  | +0     | CheckFile - Checking if D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini exists
19:51:16:900 | MD |      INFO  | +0     | File.CheckFile - Checking if "D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\PCSX2_ui.ini" exists
19:51:16:901 | MD |      INFO  | +0     | File.CheckFile - Checking if "D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini" exists
19:51:16:902 | MD |      INFO  | +0     | BezelStart - Started
19:51:16:964 | MD |      INFO  | +63    | BezelStart - Game will be moved to monitor 1 if RL finds a valid bezel to be show.
19:51:16:965 | MD |   WARNING  | +0     | BezelFilesPath - Bezels are enabled, however none of the Bezel files, with extensions png|gif|tif|bmp|jpg exist on the bezel folders.
19:51:16:965 | MD |      INFO  | +0     | BezelStart - Ended
19:51:16:965 | MD |      INFO  | +0     | Module - Using PCSX2's default configuration folder: "D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis"
19:51:16:990 | MD |      INFO  | +31    | IniFile.Write - SECTION: [GSWindow] - KEY: AspectRatio - VALUE: 4:3 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\PCSX2_ui.ini
19:51:16:990 | MD |      INFO  | +0     | Module - UserHacks are being used. Updating GSdx.ini
19:51:16:990 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks - VALUE: 1 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:991 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_MSAA - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:991 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_SkipDraw - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:992 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_HalfPixelOffset - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:992 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_WildHack - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:993 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_unsafe_fbmask - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:993 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_AlphaStencil - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:993 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_align_sprite_X - VALUE: 1 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:994 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_AlphaHack - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:994 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: preload_frame_with_gs_data - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:995 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_round_sprite_offset - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:995 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_SpriteHack - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:996 | MD |      INFO  | +0     | IniFile.Write - SECTION: [Settings] - KEY: UserHacks_TCOffset - VALUE: 0 - FILE: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\inis\GSdx.ini
19:51:16:996 | MD |      INFO  | +0     | 7z - Started, received F:\Romsets\Sony PlayStation 2\Roms\Tekken Tag Tournament (USA).7z. If rom is an archive, it will extract to C:\Temp Game HyperSpin
19:51:16:996 | MD |      INFO  | +0     | CheckFile - Checking if F:\Romsets\Sony PlayStation 2\Roms\Tekken Tag Tournament (USA).7z exists
19:51:17:051 | MD |      INFO  | +62    | 7z - Archive name matches rom name; DLL found rom inside archive using "findFileInZip": "Tekken Tag Tournament (USA)\Tekken Tag Tournament (USA).iso"
19:51:17:052 | MD |      INFO  | +0     | 7z - Starting non-7z FadeIn animation.
19:51:17:052 | MD |      INFO  | +0     | DefaultFadeAnimation - Started
19:51:17:053 | MD |      INFO  | +0     | GetFadePicFile - Randomized images and Fade  will use D:\Games\RocketLauncher\Media\Fade\Sony PlayStation 2\_Default\Info Bar.png
19:51:17:057 | MD |      INFO  | +0     | GetFadePicFile - Randomized images and Fade  will use D:\Games\RocketLauncher\Media\Fade\Sony PlayStation 2\_Default\Layer 3.png
19:51:17:087 | MD |      INFO  | +32    | BuildAssetsTable - Started - Building Table for: Genre Logo|Rating Logo|Developer Logo|Publisher Logo|Year Logo
19:51:17:087 | MD |      INFO  | +0     | BuildAssetsTable - Ended
19:51:17:088 | MD |      INFO  | +0     | BuildAssetsTable - Started - Building Table for: System Logo|Game Logo|Game Logo
19:51:17:088 | MD |      INFO  | +0     | BuildAssetsTable - Ended
19:51:17:242 | MD |      INFO  | +156   | DefaultFadeAnimationLoop - percentage
19:51:17:302 | MD |      INFO  | +62    | DefaultFadeAnimationLoop - percentage6
19:51:17:365 | MD |      INFO  | +63    | DefaultFadeAnimationLoop - percentage13
19:51:17:427 | MD |      INFO  | +62    | DefaultFadeAnimationLoop - percentage19
19:51:17:490 | MD |      INFO  | +63    | DefaultFadeAnimationLoop - percentage25
19:51:17:552 | MD |      INFO  | +62    | DefaultFadeAnimationLoop - percentage31
19:51:17:614 | MD |      INFO  | +63    | DefaultFadeAnimationLoop - percentage38
19:51:17:676 | MD |      INFO  | +62    | DefaultFadeAnimationLoop - percentage44
19:51:17:721 | MD |      INFO  | +47    | DefaultFadeAnimation - Ended
19:51:17:721 | MD |   WARNING  | +0     | 7z - romPath changed from "F:\Romsets\Sony PlayStation 2\Roms" to "C:\Temp Game HyperSpin\Tekken Tag Tournament (USA)\Tekken Tag Tournament (USA)"
19:51:17:721 | MD |   WARNING  | +0     | 7z - romName changed from "Tekken Tag Tournament (USA)" to "Tekken Tag Tournament (USA)"
19:51:17:721 | MD |   WARNING  | +0     | 7z - romExtension changed from ".7z" to ".iso"
19:51:17:721 | MD |      INFO  | +0     | 7z - Ended
19:51:17:721 | MD |      INFO  | +0     | LoadProperties - Started and loading this cfg into memory: 
19:51:17:721 | MD |      INFO  | +0     | LoadProperties - Ended
19:51:17:721 | MD |      INFO  | +0     | RIniFile.Read - Module - Image_CDVD_Plugin: (NO VALUE)
19:51:17:721 | MD |      INFO  | +0     | Module - CdvdSource was not set to "Iso", changing it so PCSX2 can launch this .iso image directly
19:51:17:721 | MD |      INFO  | +0     | SaveProperties - Started and saving this cfg to disk: 
19:51:17:721 | MD |      INFO  | +0     | SaveProperties - Ended
19:51:17:721 | MD |      INFO  | +0     | Process.Run - Running: D:\Games\HyperSpin\Emulators\pcsx2 1.6.0\pcsx2.exe  "C:\Temp Game HyperSpin\Tekken Tag Tournament (USA)\Tekken Tag Tournament (USA)\Tekken Tag Tournament (USA).iso"  --fullscreen
19:51:17:767 | MD |      INFO  | +47    | DefaultFadeAnimationLoop - percentage50
19:51:17:774 | MD |      INFO  | +0     | Window.Wait - Waiting for window "ahk_class wxWindowNR"
19:51:17:814 | MD |      INFO  | +47    | DefaultFadeAnimationLoop - percentage59
19:51:17:875 | MD |      INFO  | +63    | DefaultFadeAnimationLoop - percentage64
19:51:17:936 | MD |      INFO  | +62    | DefaultFadeAnimationLoop - percentage70
19:51:17:986 | MD |      INFO  | +47    | Window.WaitActive - Waiting for "ahk_class wxWindowNR"
19:51:17:998 | MD |      INFO  | +16    | DefaultFadeAnimationLoop - percentage77
19:51:18:061 | MD |      INFO  | +62    | DefaultFadeAnimationLoop - percentage83
19:51:18:334 | MD |      INFO  | +266   | BezelDraw - Started
19:51:18:334 | MD |      INFO  | +0     | BezelDraw - Ended
19:51:19:942 | MD |      INFO  | +1609  | DefaultAnimateFadeIn - Started, direction is: out
19:51:20:526 | MD |      INFO  | +578   | DefaultAnimateFadeIn - Ended
19:51:20:678 | MD |      INFO  | +156   | Process.Process - "WaitClose" "pcsx2.exe" 
19:52:18:781 | MD |     ERROR  | +58110 | 2
19:52:18:781 | MD |      INFO  | +0     | CloseProcess - Started, user requested to end launched application
19:52:18:782 | MD |      INFO  | +0     | GetFadePicFile - Randomized images and Fade  will use D:\Games\RocketLauncher\Media\Fade\Sony PlayStation 2\_Default\Layer -1.png
19:52:18:967 | MD |      INFO  | +187   | DefaultAnimateFadeOut - Started, direction is: in
19:52:19:469 | MD |      INFO  | +500   | DefaultAnimateFadeOut - Ended
19:52:20:367 | MD |      INFO  | +891   | CloseProcess - Ended
19:52:20:913 | MD |      INFO  | +547   | BezelExit - Started
19:52:20:938 | MD |      INFO  | +31    | BezelExit - Ended
19:52:20:940 | MD |      INFO  | +0     | DefaultAnimateFadeOut - Started, direction is: out
19:52:21:437 | MD |      INFO  | +500   | DefaultAnimateFadeOut - Ended
19:52:21:443 | MD |      INFO  | +0     | ExitModule - Started
19:52:21:443 | MD |      INFO  | +0     | UpdateStatistics - Starting Updating Statistics
19:52:21:511 | MD |      INFO  | +63    | UpdateStatistics - Game section statistics updated.
19:52:21:511 | MD |      INFO  | +0     | RunKeymapper - Started, using method "unload"
19:52:21:511 | MD |      INFO  | +0     | GetJoystickArray - Started
19:52:21:530 | MD |      INFO  | +31    | GetJoystickGUID - Started
19:52:21:530 | MD |      INFO  | +0     | GetJoystickGUID - Ended and found GUID: F0CBD5E1AC09E8118001444553540000
19:52:21:531 | MD |      INFO  | +0     | GetJoystickGUID - Started
19:52:21:531 | MD |      INFO  | +0     | GetJoystickGUID - Ended and found GUID: E09D7EF1059FE8118001444553540000
19:52:21:531 | MD |      INFO  | +0     | GetJoystickArray - Ended
19:52:21:531 | MD |      INFO  | +0     | RunJoyToKey - Started
19:52:21:531 | MD |      INFO  | +0     | Process - Exist Xpadder.exe 
19:52:21:536 | MD |      INFO  | +0     | WinClose - Closing: JoyToKey ahk_class TMainForm
19:52:21:639 | MD |      INFO  | +109   | Process - WaitClose JoyToKey.exe 2
19:52:21:643 | MD |      INFO  | +0     | RunJoyToKey - Ended
19:52:21:643 | MD |      INFO  | +0     | RunKeymapper - Ended
19:52:21:643 | MD |      INFO  | +0     | ExitModule - Ended
End of Module Logs
19:52:21:654 | RL |      INFO  | +66844 | Main - Module ended, exiting RocketLauncher normally
19:52:21:654 | RL |      INFO  | +0     | ExitScript - Started
19:52:21:657 | RL |      INFO  | +0     | ExitScript - Restoring taskbar
19:52:21:776 | RL |      INFO  | +109   | SystemCursor - Restoring mouse cursor
19:52:21:787 | RL |      INFO  | +16    | ExitScript - Restored cursor
19:52:21:787 | RL |      INFO  | +0     | ExitScript - Ended
[/code][/QUOTE]
 

agent47

Super Moderator
Staff member
Supporter
RL Member
tried to change the global settings in the module ( it won't let me make any changes other than default otherwise it crashes because I edited the module)

What "crashes"? If RLUI is crashing it's likely because the isd is bad.
 

mankin

Member
RL Member
Ok I went through the rocketlauncher log and came upon this:

22:55:43:683 | MD | WARNING | +0 | BezelFilesPath - Bezels are enabled, however none of the Bezel files, with extensions png|gif|tif|bmp|jpg exist on the bezel folders.

I am baffled this as there is a png and ini file in the bezel default folder for Sony Playstation 2 I tried changing it to other png and other ini files but this warning line remains. What am I missing and should I un-edit the AHK and IDS file?
 

mankin

Member
RL Member
Ok I got the bezel to appear now. It was a typo in the folder name but now with when I launch a game the screen does not fill to the bezel. What should the settings be to fix this?

Thanks
 
Top