Thanks to @aurel102001, @brolly and @jviegas I complied a little bit from everyone and came up with the below.
- It can use any database as long as the .7z or folder names are the same as the database (I'm using the one I created here
http://hyperspin-fe.com/forums/topic...tabase-thread/)
- It can load the games from any directory, it does not have to be in emulator directory
- It loads 7z games and extracts them, it also audits them green
- It loads already extracted games however the folder has to be named the same as the database, as they are folders they are not audited green, not sure if this can be fixed?
Does anyone have any idea on how to hide the emulator between the transition from fade to emulator and also hide the emulator after you exit the game? Example in the video.
- Setting the Fade In Exit Delay to 6000 fixes it when going from Fade to Emulator but each game loads different times.
- You can also see the emulator again on exit.
Video Example: (Bandicam doesn't record the game any further after the shaders have loaded but I can confirm it loads)
https://youtu.be/mpPqwFv1aAs
RPCS3.ahk
Code:
MEmu := "RPCS3"
MEmuV := "v0.0.5-6953 Alpha (2018-06-14)"
MURL := ["https://rpcs3.net"]
MAuthor := ["aurel102001, brolly, jviegas, wallmachine"]
MVersion := "1.0.0"
MCRC := ""
iCRC := ""
MID := ""
MSystem := ["Sony Playstation 3"]
;----------------------------------------------------------------------------
; Notes:
; Set Skip Checks to "Rom Only"
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
primaryExe := new Emulator(emuPath . "\" . executable) ; Instantiate emulator executable object
primaryWindowClassName := "Qt5QWindowIcon"
emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable)) ; Instantiate primary emulator window object
Fullscreen := moduleIni.Read("Settings", "Fullscreen", "true",, 1)
; Find emulator/game config file
Rpcs3config := new File(emuPath . "\config.yml")
Rpcs3config.CheckFile("Could not find Emulator Config.yml! Run your emulator, go to Settings and save them.")
BezelStart()
; Set fullscreen in emulator config
SetFullscreen(Rpcs3config, Fullscreen)
If (Rpcs3gameconfig.Exist()) {
; Set fullscreen on game config
SetFullscreen(Rpcs3gameconfig, Fullscreen)
}
hideEmuObj := Object(emuPrimaryWindow,1)
HideAppStart(hideEmuObj,hideEmu)
7z(romPath, romName, romExtension, sevenZExtractPath)
discgameFile := romPath . "\" . romName . "\PS3_GAME\USRDIR\EBOOT.BIN"
hddgameFile := romPath . "\" . romName . "\USRDIR\EBOOT.BIN"
If (Fileexist(discgameFile)) {
primaryExe.Run(" """ . discgameFile)
} Else If (Fileexist(hddgameFile)) {
primaryExe.Run(" """ . hddgameFile)
} Else {
ScriptError("Game not found. Check ROM Paths and module ROM settings.")
}
; Waiting for main emulator window
emuPrimaryWindow.Wait()
emuPrimaryWindow.Active()
emuPrimaryWindow.WaitActive()
; Identifying game window
WinGet gameWindowID, ID, A
gameWindow := new Window(new WindowTitle(,,,gameWindowID))
BezelDraw()
HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
primaryExe.Process("WaitClose")
7zCleanUp()
BezelExit()
FadeOutExit()
ExitModule()
CloseProcess:
FadeOutStart()
gameWindow.Close()
Return
SetFullscreen(configFile, fs) {
configFile.Read()
configContents := configFile.Text
SearchText := "Start games in fullscreen mode: " . (If fs = "true" ? "false" : "true")
ReplaceText := "Start games in fullscreen mode: " . (If fs = "true" ? "true" : "false")
configContents := StringUtils.Replace(configContents, SearchText, ReplaceText, "All")
configFile.Delete()
configFile.Append(configContents)
}
Not sure if this is needed:
RPCS3.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>If true emulator will run fullscreen.</DESCRIPTION>
</KEY>
</KEYS>
</SECTION>
</SECTIONS>
</INIFILE>
</INIFILES>
</INISCHEMA>