Thread: Rpcs3

Page 11 of 17 FirstFirst ... 678910111213141516 ... LastLast
Results 201 to 220 of 334
  1. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Contribute If you enjoy reading the
    content here, click the below
    image to support our site.
    Click Here To Contribute To Our Site
    I have just updated the module to search through the games.yml file to find the game serial. As long as you update your games.yml file with the game serials and installation locations (for the games that do not do this automatically) then the module will be able to find the 9-digit serial and automatically create and remove the directory junction. It will even create this file for disc games so that they act as if they are installed directly.

    Code:
    MEmu := "RPCS3"
    MEmuV := "v0.0.7-8981-2cc71afd Alpha"
    MURL := ["https://rpcs3.net"]
    MAuthor := ["aurel102001", "brolly", "jviegas", "wallmachine", "slashin8r"]
    MVersion := "1.0.3"
    MCRC := ""
    iCRC := ""
    MID := ""
    MSystem := ["Sony Playstation 3"]
    ;---------------------------------------------------------------------------- 
    ; Notes:
    ; [2019-10-23] No known issues.
    ;---------------------------------------------------------------------------- 
    
    StartModule()
    BezelGUI()
    FadeInStart()
    
    primaryExe := new Emulator(emuPath . "\" . executable)
    primaryWindowClassName := "Qt5QWindowIcon"
    emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable))
    
    ; Finding emulator config file
    Rpcs3config := new File(emuPath . "\config.yml")
    Rpcs3config.CheckFile("Could not find RPCS3 config.yml! Run your emulator, go to Settings and save them.")
    
    ; Finding emulator games file
    Rpcs3games := new File(emuPath . "\games.yml")
    Rpcs3games.CheckFile("Could not find RPCS3 games.yml! Update this file with your list of game serials and game installation directories.")
    
    BezelStart()
    
    hideEmuObj := Object(emuPrimaryWindow,1)
    HideAppStart(hideEmuObj,hideEmu)
    
    7z(romPath, romName, romExtension, sevenZExtractPath)
    
    ; Find the game folder
    gameType := "game"
    StringRight, stringTest, romPath, 6
    If (stringTest = "USRDIR") {
      StringReplace, gameFolder, romPath, \USRDIR
      StringRight, stringTest, gameFolder, 8
      If (stringTest = "PS3_GAME") {
        gameType := "disc"
        StringReplace, gameFolder, gameFolder, \PS3_GAME
      }
    }
    Else
    {
      ScriptError("Rom is not located in the USRDIR directory. Please check the folder structure of your rom.")
    }
    
    ; Run the game
    primaryExe.Run(" """ . rompath . "\EBOOT.BIN""")
    
    ; Waiting for main emulator window
    emuPrimaryWindow.Wait()
    emuPrimaryWindow.Active()
    emuPrimaryWindow.WaitActive()
    
    ; Find the game serial
    gameSerial := ""
    If (Fileexist(emuPath . "\games.yml"))
    {
      Loop, read, %emuPath%\games.yml
      {
        StringReplace, gameLine, A_LoopReadLine, /, \, All
        IfInString, gameLine, %gameFolder%
        {
          StringLeft, gameSerial, gameLine, 9
          break
        }
      }
    }
    
    ; Create the directory junction
    If (gameSerial != "")
    {
      RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
    }
    
    ; Identifying game window
    WinGet gameWindowID, ID, A
    gameWindow := new Window(new WindowTitle(,,,gameWindowID))
    
    BezelDraw()
    HideAppEnd(hideEmuObj,hideEmu)
    FadeInExit()
    primaryExe.Process("WaitClose")
    7zCleanUp()
    ; Remove the directory junction
    If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial) && gameSerial != "")
    {
      RunWait, %ComSpec% /c "rmdir "%emuPath%\dev_hdd0\%gameType%\%gameSerial%"
    }
    BezelExit()
    FadeOutExit()
    ExitModule()
    
    CloseProcess:
      FadeOutStart()
      gameWindow.Close()
    Return
    Here is an example of the games.yml file after a few games have been added. The last game in the list had to be added manually as it is a HDD game.

    Code:
    BLUS30669: C:/Games/RocketLauncher/Temp/Sony Playstation 3/Child Of Eden [BLUS-30669].part1/BLUS30669 (Child Of Eden)/
    BLES01939: C:/Games/RocketLauncher/Temp/Sony Playstation 3/Disgaea D2/BLES01939/
    NPUB30162: C:/Games/RocketLauncher/Temp/Sony Playstation 3/Scott Pilgrim vs. the World - The Game/NPUB30162/
    Edit: Changed when to find the game serial so that it can be found when a new game is automatically added to the games.yml file. Also added an example of the games.yml file.

    Edit 2: A little background on my setup.
    You can obviously see that I have RocketLauncher on my C: and I also store my emulators within the RL folder structure. I have my roms stored on external and/or network hard drives. I compress every single rom I own and use the 7z functions supplied by RL. I prefer that a local copy of the game be read directly instead of reading over USB or a network. 7z will extract the rom from the external/network drive to my local RL temp folder to be played from there. This is a must for anyone who is utilizing NVMe solid state drives. You won't get that top speed performance if you bottleneck it through USB or ethernet or wifi.
    Last edited by slashin8r ; 10-23-2019 at 04:03 AM.
     

  2. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Here is my latest update. Added more error checking and also added the PPU compression option I mentioned earlier.

    Code:
    MEmu := "RPCS3"
    MEmuV := "v0.0.7-8981-2cc71afd Alpha"
    MURL := ["https://rpcs3.net"]
    MAuthor := ["aurel102001", "brolly", "jviegas", "wallmachine", "slashin8r"]
    MVersion := "1.0.4"
    MDate := "2019-10-23"
    MCRC := ""
    iCRC := ""
    MID := ""
    MSystem := ["Sony Playstation 3"]
    ;----------------------------------------------------------------------------
    ; Notes:
    ; You may now compress your PPU folder (found within the "cache" folder with a name matching your game's serial) to save additional space.
    ; After many games are loaded, these files add up very quickly.
    ; Follow the steps below to use this function.
    ; 
    ; 1) Compress the game's PPU folder as a .7z file.
    ; 2) Rename the .7z file as follows: romName_computerName.7z (ex. Rom File="PS3 Test Game.rar", romName="PS3 Test Game", computerName="PC001", PPU File="PS3 Test Game_PC001.7z")
    ; 3) Move the renamed .7z file to your roms folder.
    ;----------------------------------------------------------------------------
    
    StartModule()
    BezelGUI()
    FadeInStart()
    
    primaryExe := new Emulator(emuPath . "\" . executable)
    primaryWindowClassName := "Qt5QWindowIcon"
    emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable))
    
    ; Finding emulator config file
    Rpcs3config := new File(emuPath . "\config.yml")
    Rpcs3config.CheckFile("Could not find RPCS3 config.yml! Run your emulator, go to Settings and save them.")
    
    ; Finding emulator games file
    Rpcs3games := new File(emuPath . "\games.yml")
    Rpcs3games.CheckFile("Could not find RPCS3 games.yml! Update this file with your list of game serials and game installation directories.")
    
    BezelStart()
    
    hideEmuObj := Object(emuPrimaryWindow,1)
    HideAppStart(hideEmuObj,hideEmu)
    
    ; Find game location
    gameFolder := romPath . "\" . romName
    If (sevenZEnabled = "true")
    {
      gameFolder := sevenZExtractPath . "\" . romName
      If (sevenZAttachSystemName = "true")
      {
        gameFolder := sevenZExtractPath . "\" . systemName . "\" . romName
      }
    }
    
    ; Extract PPU files if they exist
    gameSerial := ""
    gamePPU := "false"
    ;If (sevenZEnabled = "true" && Fileexist(romPath . "\" . romName . "_" . A_ComputerName . romExtension))
    If (sevenZEnabled = "true" && Fileexist(romPath . "\" . romName . "_" . A_ComputerName . ".7z"))
    {
      ; Find the game serial
      If (Fileexist(emuPath . "\games.yml"))
      {
        Loop, read, %emuPath%\games.yml
        {
          StringReplace, gameLine, A_LoopReadLine, /, \, All
          IfInString, gameLine, %gameFolder%
          {
            StringLeft, gameSerial, gameLine, 9
            break
          }
        }
      }
      If (gameSerial != "")
      {
        sevenZExtractPPU := emuPath . "\cache"
        sevenZDeletePPU := emuPath . "\cache\" . gameSerial
    ;    RunWait, %ComSpec% /c ""%sevenZPath%" x "%romPath%\%romName%_%A_ComputerName%%romExtension%" -o"%sevenZExtractPPU%"
        RunWait, %ComSpec% /c ""%sevenZPath%" x "%romPath%\%romName%_%A_ComputerName%.7z" -o"%sevenZExtractPPU%"
        gamePPU := "true"
      }
      Else
      {
        ScriptError("Game serial not found in your RPCS3 games.yml file.")
      }
    }
    
    7z(romPath, romName, romExtension, sevenZExtractPath)
    
    ; Find the game location and determine the type of game (disc or hdd)
    gameType := "game"
    StringRight, stringTest, romPath, 6
    If (stringTest = "USRDIR") {
      StringReplace, gameFolder, romPath, \USRDIR
      StringRight, stringTest, gameFolder, 8
      If (stringTest = "PS3_GAME") {
        gameType := "disc"
        StringReplace, gameFolder, gameFolder, \PS3_GAME
      }
    }
    Else
    {
      ScriptError("Rom is not located in the USRDIR directory. Please check the folder structure of your rom.")
    }
    
    ; Run the game
    primaryExe.Run(" """ . rompath . "\EBOOT.BIN""")
    
    ; Waiting for main emulator window
    emuPrimaryWindow.Wait()
    emuPrimaryWindow.Active()
    emuPrimaryWindow.WaitActive()
    
    ; Find the game serial
    If (Fileexist(emuPath . "\games.yml") && gameSerial = "")
    {
      Loop, read, %emuPath%\games.yml
      {
        StringReplace, gameLine, A_LoopReadLine, /, \, All
        IfInString, gameLine, %gameFolder%
        {
          StringLeft, gameSerial, gameLine, 9
          break
        }
      }
    }
    
    ; Create the directory junction
    If (gameSerial != "")
    {
      RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
    }
    Else
    {
      ScriptError("Game serial not found in your RPCS3 games.yml file.")
    }
    
    ; Identifying game window
    WinGet gameWindowID, ID, A
    gameWindow := new Window(new WindowTitle(,,,gameWindowID))
    
    BezelDraw()
    HideAppEnd(hideEmuObj,hideEmu)
    FadeInExit()
    primaryExe.Process("WaitClose")
    7zCleanUp()
    ; Remove the directory junction and PPU files
    If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial) && gameSerial != "")
    {
      RunWait, %ComSpec% /c "rmdir "%emuPath%\dev_hdd0\%gameType%\%gameSerial%"
    }
    If (gamePPU = "true")
    {
      FileRemoveDir, %sevenZDeletePPU%, 1
    }
    BezelExit()
    FadeOutExit()
    ExitModule()
    
    CloseProcess:
      FadeOutStart()
      gameWindow.Close()
    Return
    I usually have the PPU compressed file named with the same extension as the rom file, but I opted to go for 7z only to make the process easier for everyone. No need to worry about whether your game is a 7z, RAR, ZIP, or any other compressed format. I still need to add compatibility for uncompressed games, but, honestly, everyone should be compressing these games since they utilize a folder structure. If you are running them uncompressed, then you can simply open your emulator without the help of RL and your games will be playable.

    Quote Originally Posted by oldhag270 View Post
    Any chance of having iso support,I believe it needs to be mounted at least with the emulator itself it does.I don't know the 1st thing about coding that's why I'm asking the experts here.
    ISO versions of the games are exceptions, but those could also be extracted and repacked as a new compressed file (or add iso to the 7z extensions and it will extract it instead of trying to mount it). I will not be adding ISO mounting support since I do not use the mounting tools when they are not needed. If someone else wants to tackle this, feel free to do so.

    Edit: Added more comments to code.
    Last edited by slashin8r ; 10-23-2019 at 04:16 PM.
     

  3. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    With your latest module, it gives me a message saying the games are not under USRDIR, while the PSN games (PKG) are installed under dev_hdd0, there the emulator automatically creates folders with the games installed in each folder, following a serial number, for example, dev_hdd0\NPUB30625, this folder has the USA version of Virtua Fighter 5 - Final Showdown, I also understand the emulator needs to create other temp files and cache for each of the games it runs, so, with all that in mind, isn't it possible for a module to identify each game you want to run automatically without any user intervention? For example, in my database, there would be the entry "Virtua Fighter 5 - Final Showdown (USA)", when I choose this game, the module would know exactly what to do, all artwork for my frontend would be named after the database entry "Virtua Fighter 5 - Final Showdown (USA)", otherwise, I'd need to name all that to the game ids, which is unpractical.
     

  4. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Quote Originally Posted by aorin1 View Post
    With your latest module, it gives me a message saying the games are not under USRDIR, while the PSN games (PKG) are installed under dev_hdd0, there the emulator automatically creates folders with the games installed in each folder, following a serial number, for example, dev_hdd0\NPUB30625, this folder has the USA version of Virtua Fighter 5 - Final Showdown, I also understand the emulator needs to create other temp files and cache for each of the games it runs, so, with all that in mind, isn't it possible for a module to identify each game you want to run automatically without any user intervention? For example, in my database, there would be the entry "Virtua Fighter 5 - Final Showdown (USA)", when I choose this game, the module would know exactly what to do, all artwork for my frontend would be named after the database entry "Virtua Fighter 5 - Final Showdown (USA)", otherwise, I'd need to name all that to the game ids, which is unpractical.
    This module is not compatible with PKG files. This module uses the already installed folder structure stored into zipped files. If you have installed the game using a PKG file, then you can just run it through the RPCS3 emulator instead of using RL to load it. Otherwise, to use the module, you would need to go to your "dev_hdd0\disc" or "dev_hdd0\game" folders and zip each of your games into separate files and store those in your roms folder.

    In your example, you would zip the "NPUB30625" folder and rename it to "Virtua Fighter 5 - Final Showdown (USA).7z" (used 7zip to compress in this example, well don't compress, but store instead so it unzips faster later) and move it to where you store all your other games (anywhere except the "dev_hdd0" folder otherwise it may get crowded fast). The module will automatically unzip your new file to whatever directory you specified for your 7zextraction path within the RL settings and then it will figure out the Game Serial for you ("NPUB30625" for instance) so you never need to mess with renaming anything in the future. Disc games can be run from outside the "dev_hdd0" folder, but HDD games cannot, so the module will create a symlink to resolve this.

    Example: (RL on C: and roms on D
    C:\RocketLauncher
    D:\Roms\PS3\Virtua Fighter 5 - Final Showdown (USA).7z

    Virtua Fighter 5 - Final Showdown (USA).7z as DISC game must contain: NPUB30625\PS3_GAME\USRDIR\EBOOT.BIN
    OR
    Virtua Fighter 5 - Final Showdown (USA).7z as HDD game must contain: NPUB30625\USRDIR\EBOOT.BIN

    Hope this helps. Let me know your progress.

    Edit: I have many PS3 games and most are already zipped for you in the above format (the Game Serial folder is not necessary for the module to work, so it can be named anything [example: "This is a Game\PS3_GAME\USRDIR\EBOOT.BIN"] or the zipped file can even contain the "PS3_GAME" or "USRDIR" in its root directory). About 10% of them came as PKG files and I had to go through the process of installing, testing, zipping and moving. It can be a tedious process, but it is better than forcing you to keep the game installed at all times.

    Edit 2: I may have resolved the issue you are having in this latest update. It won't make PKG files compatible, but it will allow you to run already installed games without the use of 7zip. I am currently testing and will post it soon.
    Last edited by slashin8r ; 10-24-2019 at 09:42 PM.
     

  5. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Code:
    MEmu := "RPCS3"
    MEmuV := "v0.0.7-8981-2cc71afd Alpha"
    MURL := ["https://rpcs3.net"]
    MAuthor := ["aurel102001", "brolly", "jviegas", "wallmachine", "slashin8r"]
    MVersion := "1.0.5"
    MDate := "2019-10-24"
    MCRC := ""
    iCRC := ""
    MID := ""
    MSystem := ["Sony Playstation 3"]
    ;----------------------------------------------------------------------------
    ; Notes:
    ; You may now compress your PPU folder (found within the "cache" folder with a name matching your game's serial) to save additional space.
    ; After many games are loaded, these files add up very quickly.
    ; Follow the steps below to use this function.
    ; 
    ; 1) Use 7zip to compress the game's PPU folder as romName_computerName.7z (ex. Rom File="PS3 Test Game.rar", romName="PS3 Test Game", computerName="PC001", PPU File="PS3 Test Game_PC001.7z")
    ; 2) Move the PPU .7z file to a new folder named "cache" within your roms folder.
    ;----------------------------------------------------------------------------
    
    StartModule()
    BezelGUI()
    FadeInStart()
    
    primaryExe := new Emulator(emuPath . "\" . executable)
    primaryWindowClassName := "Qt5QWindowIcon"
    emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable))
    
    ; Finding emulator config file
    Rpcs3config := new File(emuPath . "\config.yml")
    Rpcs3config.CheckFile("Could not find RPCS3 config.yml! Run your emulator, go to Settings and save them.")
    
    ; Finding emulator games file
    Rpcs3games := new File(emuPath . "\games.yml")
    Rpcs3games.CheckFile("Could not find RPCS3 games.yml! Update this file with your list of game serials and game installation directories.")
    
    BezelStart()
    
    hideEmuObj := Object(emuPrimaryWindow,1)
    HideAppStart(hideEmuObj,hideEmu)
    
    ; Find game location
    gameFolder := romPath
    If (sevenZEnabled = "true")
    {
      gameFolder := sevenZExtractPath . "\" . romName
      If (sevenZAttachSystemName = "true")
      {
        gameFolder := sevenZExtractPath . "\" . systemName . "\" . romName
      }
    }
    
    ; Extract PPU files if they exist
    gameSerial := ""
    gamePPU := "false"
    ;If (sevenZEnabled = "true" && Fileexist(romPath . "\cache\" . romName . "_" . A_ComputerName . romExtension))
    If (sevenZEnabled = "true" && Fileexist(romPath . "\cache\" . romName . "_" . A_ComputerName . ".7z"))
    {
      ; Find the game serial
      If (Fileexist(emuPath . "\games.yml"))
      {
        Loop, read, %emuPath%\games.yml
        {
          StringReplace, gameLine, A_LoopReadLine, /, \, All
          IfInString, gameLine, %gameFolder%
          {
            StringLeft, gameSerial, gameLine, 9
            break
          }
        }
      }
      If (gameSerial != "")
      {
        sevenZExtractPPU := emuPath . "\cache"
        sevenZDeletePPU := emuPath . "\cache\" . gameSerial
    ;    RunWait, %ComSpec% /c ""%sevenZPath%" x "%romPath%\cache\%romName%_%A_ComputerName%%romExtension%" -o"%sevenZExtractPPU%"
        RunWait, %ComSpec% /c ""%sevenZPath%" x "%romPath%\cache\%romName%_%A_ComputerName%.7z" -o"%sevenZExtractPPU%"
        gamePPU := "true"
      }
      Else
      {
        ScriptError("Game serial not found in your RPCS3 games.yml file.")
      }
    }
    
    7z(romPath, romName, romExtension, sevenZExtractPath)
    
    ; Find the game location and determine the type of game (disc or hdd)
    gameType := "game"
    StringRight, stringTest, romPath, 6
    If (stringTest = "USRDIR")
    {
      StringReplace, gameFolder, romPath, \USRDIR
      StringRight, stringTest, gameFolder, 8
      If (stringTest = "PS3_GAME")
      {
        gameType := "disc"
        StringReplace, gameFolder, gameFolder, \PS3_GAME
      }
      If (romName = "EBOOT")
      {
        StringRight, gameSerial, gameFolder, 9
        
        ; Create the directory junction
        If (gameSerial != "")
        {
          RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
        }
        Else
        {
          ScriptError("Game serial not found.")
        }
      }
    }
    Else If (romName != "EBOOT")
    {
      ScriptError("Rom is not located in the USRDIR directory. Please check the folder structure of your rom.")
    }
    
    ; Run the game
    If (romName = "EBOOT")
    {
      If (gameType = "disc")
      {
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\PS3_GAME\USRDIR\EBOOT.BIN""")
      }
      Else
      {
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\USRDIR\EBOOT.BIN""")
      }
    }
    Else
    {
      primaryExe.Run(" """ . romPath . "\EBOOT.BIN""")
    }
    
    ; Waiting for main emulator window
    emuPrimaryWindow.Wait()
    emuPrimaryWindow.Active()
    emuPrimaryWindow.WaitActive()
    
    If (romName != "EBOOT")
    {
      ; Find the game serial
      If (Fileexist(emuPath . "\games.yml") && gameSerial = "")
      {
        Loop, read, %emuPath%\games.yml
        {
          StringReplace, gameLine, A_LoopReadLine, /, \, All
          IfInString, gameLine, %gameFolder%
          {
            StringLeft, gameSerial, gameLine, 9
            break
          }
        }
      }
    
      ; Create the directory junction
      If (gameSerial != "")
      {
        RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
      }
      Else
      {
        ScriptError("Game serial not found in your RPCS3 games.yml file.")
      }
    }
    
    ; Identifying game window
    WinGet gameWindowID, ID, A
    gameWindow := new Window(new WindowTitle(,,,gameWindowID))
    
    BezelDraw()
    HideAppEnd(hideEmuObj,hideEmu)
    FadeInExit()
    primaryExe.Process("WaitClose")
    7zCleanUp()
    ; Remove the directory junction and PPU files
    If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial) && gameSerial != "")
    {
      RunWait, %ComSpec% /c "rmdir "%emuPath%\dev_hdd0\%gameType%\%gameSerial%"
    }
    If (gamePPU = "true")
    {
      FileRemoveDir, %sevenZDeletePPU%, 1
    }
    BezelExit()
    FadeOutExit()
    ExitModule()
    
    CloseProcess:
      FadeOutStart()
      gameWindow.Close()
    Return
    This version now supports already installed games. Games can even be moved out of the "dev_hdd0" folder. Make sure your rom paths are correct and all will work as expected.
     

  6. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    I was going to start working on making PKG files directly compatible, but RPCS3 is unable to load them from command line. Looks like all PKG files will need to be installed manually until RPCS3 adds this function.

    Edit: I just noticed that some disc games require additional content to be installed in the "game" folder. I will add compression support for this since these files will add up quickly just like the PPU files. My overall goal is to have these files automatically compress themselves if they do not exist. This process would happen the first time the game is exited so that all variables may be captured to allow this to happen. PPU files are computer-specific, so those will still have the computerName attached to them, but the game data can be saved once for all computers (I hope). PPU files will be stored in a "cache" folder within your PS3 roms folder. Game Data files will be stored in a "data" folder within your PS3 roms folder.
    Last edited by slashin8r ; 10-25-2019 at 12:35 AM.
     

  7. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Code:
    MEmu := "RPCS3"
    MEmuV := "v0.0.7-8981-2cc71afd Alpha"
    MURL := ["https://rpcs3.net"]
    MAuthor := ["aurel102001", "brolly", "jviegas", "wallmachine", "slashin8r"]
    MVersion := "1.0.6"
    MDate := "2019-10-25"
    MCRC := ""
    iCRC := ""
    MID := ""
    MSystem := ["Sony Playstation 3"]
    ;----------------------------------------------------------------------------
    ; Notes:
    ; To save additional space, this module now automatically compresses each game's PPU folder and Game Data folder (if exists) as long as 7z is enabled.
    ; PPU file saved in: %romPath%\cache\%romName%_%A_ComputerName%.7z
    ; Game Data file saved in: %romPath%\data\%romName%_data.7z
    ; 
    ; Example:
    ; Rom File = "D:\PS3\PS3 Test Game.rar"
    ; A_ComputerName = "PC001"
    ; 
    ; PPU File = "D:\PS3\cache\PS3 Test Game_PC001.7z")
    ; Game Data File = "D:\PS3\data\PS3 Test Game_data.7z")
    ;----------------------------------------------------------------------------
    
    StartModule()
    BezelGUI()
    FadeInStart()
    
    primaryExe := new Emulator(emuPath . "\" . executable)
    primaryWindowClassName := "Qt5QWindowIcon"
    emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable))
    
    ; Finding emulator config file
    Rpcs3config := new File(emuPath . "\config.yml")
    Rpcs3config.CheckFile("Could not find RPCS3 config.yml! Run your emulator, go to Settings and save them.")
    
    ; Finding emulator games file
    Rpcs3games := new File(emuPath . "\games.yml")
    Rpcs3games.CheckFile("Could not find RPCS3 games.yml! Update this file with your list of game serials and game installation directories.")
    
    BezelStart()
    
    hideEmuObj := Object(emuPrimaryWindow,1)
    HideAppStart(hideEmuObj,hideEmu)
    
    ; Find game location
    gameFolder := romPath
    If (sevenZEnabled = "true")
    {
      gameFolder := sevenZExtractPath . "\" . romName
      If (sevenZAttachSystemName = "true")
      {
        gameFolder := sevenZExtractPath . "\" . systemName . "\" . romName
      }
    }
    
    ; Set variables
    gameType := ""
    gameSerial := ""
    gamePPU := "false"
    ;gamePPUromPath := romPath . "\cache\" . romName . "_" . A_ComputerName . romExtension
    gamePPUromPath := romPath . "\cache\" . romName . "_" . A_ComputerName . ".7z"
    gamePPUemuPath := emuPath . "\cache"
    gameDATA := "false"
    ;gameDATAromPath := romPath . "\data\" . romName . "_data" . romExtension
    gameDATAromPath := romPath . "\data\" . romName . "_data.7z"
    gameDATAemuPath := emuPath . "\dev_hdd0\game"
    
    ; Extract PPU files if they exist
    ;If (sevenZEnabled = "true" && Fileexist(gamePPUromPath))
    If (sevenZEnabled = "true" && Fileexist(gamePPUromPath))
    {
    ;  RunWait, %ComSpec% /c ""%sevenZPath%" x "%gamePPUromPath%" -aos -o"%gamePPUemuPath%"
      RunWait, %ComSpec% /c ""%sevenZPath%" x "%gamePPUromPath%" -aos -o"%gamePPUemuPath%"
      gamePPU := "true"
    }
    
    ; Extract Game Data files if they exist
    ;If (sevenZEnabled = "true" && Fileexist(gameDATAromPath))
    If (sevenZEnabled = "true" && Fileexist(gameDATAromPath))
    {
    ;  RunWait, %ComSpec% /c ""%sevenZPath%" x "%gameDATAromPath%" -aos -o"%gameDATAemuPath%"
      RunWait, %ComSpec% /c ""%sevenZPath%" x "%gameDATAromPath%" -aos -o"%gameDATAemuPath%"
      gameDATA := "true"
    }
    
    7z(romPath, romName, romExtension, sevenZExtractPath)
    
    ; Find the game location and determine the type of game (disc or hdd)
    StringRight, stringTest, romPath, 6
    If (stringTest = "USRDIR")
    {
      gameType := "game"
      StringReplace, gameFolder, romPath, \USRDIR
      StringRight, stringTest, gameFolder, 8
      If (stringTest = "PS3_GAME")
      {
        gameType := "disc"
        StringReplace, gameFolder, gameFolder, \PS3_GAME
      }
      If (sevenZEnabled != "true")
      {
        StringRight, gameSerial, gameFolder, 9
        
        ; Create the directory junction
        If (gameSerial != "" && gameType != "")
        {
          RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
        }
        Else
        {
          ScriptError("Game serial not found.")
        }
      }
    }
    Else If (sevenZEnabled = "true")
    {
      ScriptError("Rom is not located in the USRDIR directory. Please check the folder structure of your rom.")
    }
    
    ; Run the game
    If (sevenZEnabled = "true")
    {
      primaryExe.Run(" """ . romPath . "\EBOOT.BIN""")
    }
    Else
    {
      If (gameType = "disc")
      {
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\PS3_GAME\USRDIR\EBOOT.BIN""")
      }
      Else
      {
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\USRDIR\EBOOT.BIN""")
      }
    }
    
    ; Waiting for main emulator window
    emuPrimaryWindow.Wait()
    emuPrimaryWindow.Active()
    emuPrimaryWindow.WaitActive()
    
    If (sevenZEnabled = "true")
    {
      ; Find the game serial
      If (Fileexist(emuPath . "\games.yml") && gameSerial = "")
      {
        Loop, read, %emuPath%\games.yml
        {
          StringReplace, gameLine, A_LoopReadLine, /, \, All
          IfInString, gameLine, %gameFolder%
          {
            StringLeft, gameSerial, gameLine, 9
            break
          }
        }
      }
    
      ; Create the directory junction
      If (gameSerial != "" && gameType != "")
      {
        RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
      }
      Else
      {
        ScriptError("Game serial not found in your RPCS3 games.yml file.")
      }
    }
    
    ; Identifying game window
    WinGet gameWindowID, ID, A
    gameWindow := new Window(new WindowTitle(,,,gameWindowID))
    
    BezelDraw()
    HideAppEnd(hideEmuObj,hideEmu)
    FadeInExit()
    primaryExe.Process("WaitClose")
    7zCleanUp()
    ; Remove the directory junction
    If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial) && gameSerial != "" && gameType != "")
    {
      RunWait, %ComSpec% /c "rmdir "%emuPath%\dev_hdd0\%gameType%\%gameSerial%"
    }
    
    ; Remove the PPU files if they were extracted or creates PPU compressed file if needed
    If (gamePPU = "true")
    {
      FileRemoveDir, %gamePPUemuPath%\%gameSerial%, 1
    }
    Else If (sevenZEnabled = "true")
    {
      IfExist, %gamePPUemuPath%\%gameSerial%
      {
        IfNotExist, %gamePPUromPath%
        {
          RunWait, %ComSpec% /c ""%sevenZPath%" a "%gamePPUromPath%" "%gamePPUemuPath%\%gameSerial%"
          FileRemoveDir, %gamePPUemuPath%\%gameSerial%, 1
        }
      }
    }
    
    ; Remove the Game Data files if they were extracted or creates Game Data compressed file if needed
    If (gameDATA = "true")
    {
      FileRemoveDir, %gameDATAemuPath%\%gameSerial%, 1
    }
    Else If (sevenZEnabled = "true")
    {
      IfExist, %gameDATAemuPath%\%gameSerial%
      {
        IfNotExist, %gameDATAromPath%
        {
          RunWait, %ComSpec% /c ""%sevenZPath%" a "%gameDATAromPath%" "%gameDATAemuPath%\%gameSerial%"
          FileRemoveDir, %gameDATAemuPath%\%gameSerial%, 1
        }
      }
    }
    BezelExit()
    FadeOutExit()
    ExitModule()
    
    CloseProcess:
      FadeOutStart()
      gameWindow.Close()
    Return
    New update includes support for compressing the additional game data that some games are required to install.
    With 7z enabled, the module will now automatically create the compressed PPU and Game Data files if they do not exist.
    Cleaned up some of the code and added more comments.
     

  8. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Tested in as many ways as I can think of with my current setup and have run into no issues so far.

    I think that the only things missing are:
    Virtual Drive compatibility
    ISD config file compatibility
    Toggleable options (PPU on/off, DATA on/off, etc.)
    Additional error checking
    Code comments

    Let me know if you notice anything else missing or have any suggestions. Thanks.
    Last edited by slashin8r ; 10-25-2019 at 12:12 PM.
     

  9. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    When I mentioned PKG files, it was just to make it clear that these are the files which the emulator will install games, DLCs and updates to its folders automatically, there's no need to add compatibility with it, since it will never launch a game directly, it's just an installation file.
    I also noticed you need to zip folders from the dev_hdd0\game and then name it according to the database entry, so the folder NPUB30127 would become Sonic The Hedhehog 4 - Episode I (USA).zip, is this correct?
    Anyway, I don't think it would be the first option for the average user, the emulator has its own structures and I don't think it's a good idea moving or compressing anything it uses regularly.

    The most practical use would be a module that would run the game guessing exactly what you want it to run without any user intervention after the game installation.
    With that said, let's take my setup here, I installed the Virtua Fighter 5 - Final Showdown PKG through the emulator, it will create a folder under dev_hdd0\game\NPUB30625, now RocketLauncher needs to know where the game is installed, so I add this folder in the PS3 system, I add C:\Hyperspin\Emulators\Sony Playstation 3\dev_hdd0\game, but in my database, I don't want to have NPUB30625 as an entry for VF5, it will usually follow the other systems, Virtua Fighter 5 - Final Showdown (USA), so in order to make it green in RLUI, I'll create a file named Virtua Fighter 5 - Final Showdown (USA).txt or zip in C:\Hyperspin\Emulators\Sony Playstation 3\dev_hdd0\game, so it will become green, like PC Games or even Wii U games work, so then, the module would know I want to run a game installed in NPUB30625, how? I don't know, probably a database with all the code entries would be needed in order to get it working this way.

    I tested your latest module, it will only open the emulator, won't run the game.
     

  10. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    What I meant by PKG compatibility is for RL to install the game for you, run it, compress/backup (if user wants) and delete the install and/or original PKG files (if user wants).

    This module should already do exactly what you explain as the most practical use.

    The easiest way to run RPCS3 with RL is to zip your games into single files (name the zipped file anything you want) and store them all in the same folder (anywhere except "dev_hdd0\game") then set your emulator romPath within RL to reflect this change. You do not need to do anything special, like create files which the original module authors had you doing.

    The problem you are running into is a romPath issue that cannot be resolved due to it being a limitation provided by RL itself. Your emulator romPath cannot be "C:\Hyperspin\Emulators\Sony Playstation 3\dev_hdd0\game" as this is not the folder that contains the rom file being loaded. RocketLauncher romPath variable changes based on where it finds the actual rom file being loaded. In your case, the emulator romPath must be "C:\Hyperspin\Emulators\Sony Playstation 3\dev_hdd0\game\NPUB30625", but you do not want to have to put a romPath in RL for every game you ever wish to run. This is why I highly recommend that you zip your games (do not actually use compression, use the "store" option instead which will act as a folder with a file extension), store them all in a single directory so that your romPath can be a single path instead of multiple paths. The fake file thing is a workaround to bypass the issue that I am explaining. Do not use these files anymore since they are not needed.


    Edit: Sorry for all the confusion. I am basically trying to tell you to do the opposite of what everyone else says in this thread. Imagine it as a fresh start. A clean install of RPCS3 should only need the zipped roms (stored anywhere you like except "dev_hdd0\game", named anything you want), the RPCS3 module, 7z enabled for PS3 in RL, and the correct romPath in RL pointing to the folder that contains your zipped roms.

    Running the games unzipped (installed) is only possible with RL if you set a romPath for every EBOOT.BIN file (every individual game). However, as I mentioned before, if you plan to run it like this, you would be better off skipping RL and just open RPCS3 directly and it will work just fine. RPCS3 has its own FrontEnd that will show images of the games and other info.
    Last edited by slashin8r ; 10-25-2019 at 03:12 PM.
     

  11. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    I understand, but zipping them will probably make the module extract the game contents to the dev_hdd0 folder in order to make the emulator run it, otherwise it would allow me to keep the original games there, right?
    I prefer not zipping nor moving the games, I like keeping all the games the way the emulator install them, so I'm tied for now.
     

  12. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Zipping will cause RL to extract the game, but only to the folder you specify within your RL settings. Nothing needs to be extracted directly to the "dev_hdd0" folder since a symlink is created to take care of that for you.

    If you wish to run the games where the emulator installs them, then you would need to add a romPath in RL for every game (down to the "NPUB30625" folder or whatever it may be for the game you are adding).

    When using RPCS3 with RL, installing the game is only necessary to access the installed game files. If you have downloaded any PS3 disc games, you will see they are just those files within a zipped file. Many of the PSN games also come like this too. Only a small percentage of them come as PKG files that require the install since most people who upload the games have already done the install part for you.
     

  13. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    It's really OK with me adding each game folder to RLUI, copying its path from explorer, I don't need to browse every time I add it from RLUI, I only need to click the + sign and then paste the link from the folder, then OK.
    But even so, it only starts the emulator, it just sits there and no game is loaded.
    If I add C:\Hyperspin\Emulators\Sony Playstation 3\dev_hdd0\game\NPUB30625 directly in RLUI, it still won't load the game, is there anything else I should be doing?

    PS: Since there's no way to make it green in RLUI, if I create an empty txt file with the game name, it will become green but only the emulator will load, otherwise, the RLUI will only say no game was found and not even the emulator will start.

    The first RCPS3 module needed the game ID code in order to run and it worked fine, but I still think that you can manage to make it work better.
    Last edited by aorin1 ; 10-25-2019 at 04:50 PM.
     

  14. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Do you have Skip Checks set to "Rom Only"? Or if it is not set, do you have ".bin" files set as a rom extension for the RPCS3 emulator within RL?
     

  15. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    I've tried both with skip check "rom only" and adding bin to the emulator extension, but as I said, the game entry is named according to the Redump naming, Virtua Fighter 5 - Final Showdown (USA), while the game folder is NPUB30625, I added this path as I said in my previous post, so the module should make the emulator boot the game from within that folder, but it's not happening.
     

  16. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Code:
    MEmu := "RPCS3"
    MEmuV := "v0.0.7-8981-2cc71afd Alpha"
    MURL := ["https://rpcs3.net"]
    MAuthor := ["aurel102001", "brolly", "jviegas", "wallmachine", "slashin8r"]
    MVersion := "1.0.6"
    MDate := "2019-10-25"
    MCRC := ""
    iCRC := ""
    MID := ""
    MSystem := ["Sony Playstation 3"]
    ;----------------------------------------------------------------------------
    ; Notes:
    ; To save additional space, this module now automatically compresses each game's PPU folder and Game Data folder (if exists) as long as 7z is enabled.
    ; PPU file saved in: %romPath%\cache\%romName%_%A_ComputerName%.7z
    ; Game Data file saved in: %romPath%\data\%romName%_data.7z
    ; 
    ; Example:
    ; Rom File = "D:\PS3\PS3 Test Game.rar"
    ; A_ComputerName = "PC001"
    ; 
    ; PPU File = "D:\PS3\cache\PS3 Test Game_PC001.7z")
    ; Game Data File = "D:\PS3\data\PS3 Test Game_data.7z")
    ;----------------------------------------------------------------------------
    
    StartModule()
    BezelGUI()
    FadeInStart()
    
    primaryExe := new Emulator(emuPath . "\" . executable)
    primaryWindowClassName := "Qt5QWindowIcon"
    emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable))
    
    ; Finding emulator config file
    Rpcs3config := new File(emuPath . "\config.yml")
    Rpcs3config.CheckFile("Could not find RPCS3 config.yml! Run your emulator, go to Settings and save them.")
    
    ; Finding emulator games file
    Rpcs3games := new File(emuPath . "\games.yml")
    Rpcs3games.CheckFile("Could not find RPCS3 games.yml! Update this file with your list of game serials and game installation directories.")
    
    BezelStart()
    
    hideEmuObj := Object(emuPrimaryWindow,1)
    HideAppStart(hideEmuObj,hideEmu)
    
    ; Find game location
    gameFolder := romPath
    If (sevenZEnabled = "true")
    {
      gameFolder := sevenZExtractPath . "\" . romName
      If (sevenZAttachSystemName = "true")
      {
        gameFolder := sevenZExtractPath . "\" . systemName . "\" . romName
      }
    }
    
    ; Set variables
    gameType := ""
    gameSerial := ""
    gamePPU := "false"
    ;gamePPUromPath := romPath . "\cache\" . romName . "_" . A_ComputerName . romExtension
    gamePPUromPath := romPath . "\cache\" . romName . "_" . A_ComputerName . ".7z"
    gamePPUemuPath := emuPath . "\cache"
    gameDATA := "false"
    ;gameDATAromPath := romPath . "\data\" . romName . "_data" . romExtension
    gameDATAromPath := romPath . "\data\" . romName . "_data.7z"
    gameDATAemuPath := emuPath . "\dev_hdd0\game"
    
    ; Extract PPU files if they exist
    ;If (sevenZEnabled = "true" && Fileexist(gamePPUromPath))
    If (sevenZEnabled = "true" && Fileexist(gamePPUromPath))
    {
    ;  RunWait, %ComSpec% /c ""%sevenZPath%" x "%gamePPUromPath%" -aos -o"%gamePPUemuPath%"
      RunWait, %ComSpec% /c ""%sevenZPath%" x "%gamePPUromPath%" -aos -o"%gamePPUemuPath%"
      gamePPU := "true"
    }
    
    ; Extract Game Data files if they exist
    ;If (sevenZEnabled = "true" && Fileexist(gameDATAromPath))
    If (sevenZEnabled = "true" && Fileexist(gameDATAromPath))
    {
    ;  RunWait, %ComSpec% /c ""%sevenZPath%" x "%gameDATAromPath%" -aos -o"%gameDATAemuPath%"
      RunWait, %ComSpec% /c ""%sevenZPath%" x "%gameDATAromPath%" -aos -o"%gameDATAemuPath%"
      gameDATA := "true"
    }
    
    7z(romPath, romName, romExtension, sevenZExtractPath)
    
    ; Find the game location and determine the type of game (disc or hdd)
    StringRight, stringTest, romPath, 6
    If (stringTest = "USRDIR")
    {
      gameType := "game"
      StringReplace, gameFolder, romPath, \USRDIR
      StringRight, stringTest, gameFolder, 8
      If (stringTest = "PS3_GAME")
      {
        gameType := "disc"
        StringReplace, gameFolder, gameFolder, \PS3_GAME
      }
      If (sevenZEnabled != "true")
      {
        StringRight, gameSerial, gameFolder, 9
        
        ; Create the directory junction
        If (gameSerial != "" && gameType != "")
        {
          RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
        }
        Else
        {
          ScriptError("Game serial not found.")
        }
      }
    }
    Else If (sevenZEnabled = "true")
    {
      ScriptError("Rom is not located in the USRDIR directory. Please check the folder structure of your rom.")
    }
    
    ; Run the game
    If (sevenZEnabled = "true")
    {
      MsgBox, %romPath%\EBOOT.BIN
      primaryExe.Run(" """ . romPath . "\EBOOT.BIN""")
    }
    Else
    {
      If (gameType = "disc")
      {
        MsgBox, %emuPath%\dev_hdd0\%gameType%\%gameSerial%\PS3_GAME\USRDIR\EBOOT.BIN
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\PS3_GAME\USRDIR\EBOOT.BIN""")
      }
      Else
      {
        MsgBox, %emuPath%\dev_hdd0\%gameType%\%gameSerial%\USRDIR\EBOOT.BIN
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\USRDIR\EBOOT.BIN""")
      }
    }
    
    ; Waiting for main emulator window
    emuPrimaryWindow.Wait()
    emuPrimaryWindow.Active()
    emuPrimaryWindow.WaitActive()
    
    If (sevenZEnabled = "true")
    {
      ; Find the game serial
      If (Fileexist(emuPath . "\games.yml") && gameSerial = "")
      {
        Loop, read, %emuPath%\games.yml
        {
          StringReplace, gameLine, A_LoopReadLine, /, \, All
          IfInString, gameLine, %gameFolder%
          {
            StringLeft, gameSerial, gameLine, 9
            break
          }
        }
      }
    
      ; Create the directory junction
      If (gameSerial != "" && gameType != "")
      {
        RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
      }
      Else
      {
        ScriptError("Game serial not found in your RPCS3 games.yml file.")
      }
    }
    
    ; Identifying game window
    WinGet gameWindowID, ID, A
    gameWindow := new Window(new WindowTitle(,,,gameWindowID))
    
    BezelDraw()
    HideAppEnd(hideEmuObj,hideEmu)
    FadeInExit()
    primaryExe.Process("WaitClose")
    7zCleanUp()
    ; Remove the directory junction
    If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial) && gameSerial != "" && gameType != "")
    {
      RunWait, %ComSpec% /c "rmdir "%emuPath%\dev_hdd0\%gameType%\%gameSerial%"
    }
    
    ; Remove the PPU files if they were extracted or creates PPU compressed file if needed
    If (gamePPU = "true")
    {
      FileRemoveDir, %gamePPUemuPath%\%gameSerial%, 1
    }
    Else If (sevenZEnabled = "true")
    {
      IfExist, %gamePPUemuPath%\%gameSerial%
      {
        IfNotExist, %gamePPUromPath%
        {
          RunWait, %ComSpec% /c ""%sevenZPath%" a "%gamePPUromPath%" "%gamePPUemuPath%\%gameSerial%"
          FileRemoveDir, %gamePPUemuPath%\%gameSerial%, 1
        }
      }
    }
    
    ; Remove the Game Data files if they were extracted or creates Game Data compressed file if needed
    If (gameDATA = "true")
    {
      FileRemoveDir, %gameDATAemuPath%\%gameSerial%, 1
    }
    Else If (sevenZEnabled = "true")
    {
      IfExist, %gameDATAemuPath%\%gameSerial%
      {
        IfNotExist, %gameDATAromPath%
        {
          RunWait, %ComSpec% /c ""%sevenZPath%" a "%gameDATAromPath%" "%gameDATAemuPath%\%gameSerial%"
          FileRemoveDir, %gameDATAemuPath%\%gameSerial%, 1
        }
      }
    }
    BezelExit()
    FadeOutExit()
    ExitModule()
    
    CloseProcess:
      FadeOutStart()
      gameWindow.Close()
    Return
    Try this module and a message box should pop up. Let me know what the message box says.

    Edit: Do you have 7z enabled? If so, make sure it is disabled for the PS3.
     

  17. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    It reads, "Your module doesn't have a "Start Module ()" line, please download one that has one.
     

  18. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Quote Originally Posted by aorin1 View Post
    It reads, "Your module doesn't have a "Start Module ()" line, please download one that has one.
    That's odd since all I did was add in 3 MsgBox functions to figure out which one your module is trying to load, heh.

    Anyways, the module below should take care of the issues I mentioned:

    Code:
    MEmu := "RPCS3"
    MEmuV := "v0.0.7-8981-2cc71afd Alpha"
    MURL := ["https://rpcs3.net"]
    MAuthor := ["aurel102001", "brolly", "jviegas", "wallmachine", "slashin8r"]
    MVersion := "1.0.7"
    MDate := "2019-10-25"
    MCRC := ""
    iCRC := ""
    MID := ""
    MSystem := ["Sony Playstation 3"]
    ;----------------------------------------------------------------------------
    ; Notes:
    ; To save additional space, this module now automatically compresses each game's PPU folder and Game Data folder (if exists) as long as 7z is enabled.
    ; PPU file saved in: %romPath%\cache\%romName%_%A_ComputerName%.7z
    ; Game Data file saved in: %romPath%\data\%romName%_data.7z
    ; 
    ; Example:
    ; Rom File = "D:\PS3\PS3 Test Game.rar"
    ; A_ComputerName = "PC001"
    ; 
    ; PPU File = "D:\PS3\cache\PS3 Test Game_PC001.7z")
    ; Game Data File = "D:\PS3\data\PS3 Test Game_data.7z")
    ;----------------------------------------------------------------------------
    
    StartModule()
    BezelGUI()
    FadeInStart()
    
    primaryExe := new Emulator(emuPath . "\" . executable)
    primaryWindowClassName := "Qt5QWindowIcon"
    emuPrimaryWindow := new Window(new WindowTitle(,primaryWindowClassName, executable))
    
    ; Finding emulator config file
    Rpcs3config := new File(emuPath . "\config.yml")
    Rpcs3config.CheckFile("Could not find RPCS3 config.yml! Run your emulator, go to Settings and save them.")
    
    ; Finding emulator games file
    Rpcs3games := new File(emuPath . "\games.yml")
    Rpcs3games.CheckFile("Could not find RPCS3 games.yml! Update this file with your list of game serials and game installation directories.")
    
    BezelStart()
    
    hideEmuObj := Object(emuPrimaryWindow,1)
    HideAppStart(hideEmuObj,hideEmu)
    
    ; Find game location
    gameFolder := romPath
    If (sevenZEnabled = "true")
    {
      gameFolder := sevenZExtractPath . "\" . romName
      If (sevenZAttachSystemName = "true")
      {
        gameFolder := sevenZExtractPath . "\" . systemName . "\" . romName
      }
    }
    
    ; Set variables
    gameType := ""
    gameSerial := ""
    gamePPU := "false"
    ;gamePPUromPath := romPath . "\cache\" . romName . "_" . A_ComputerName . romExtension
    gamePPUromPath := romPath . "\cache\" . romName . "_" . A_ComputerName . ".7z"
    gamePPUemuPath := emuPath . "\cache"
    gameDATA := "false"
    ;gameDATAromPath := romPath . "\data\" . romName . "_data" . romExtension
    gameDATAromPath := romPath . "\data\" . romName . "_data.7z"
    gameDATAemuPath := emuPath . "\dev_hdd0\game"
    
    ; Extract PPU files if they exist
    If (sevenZEnabled = "true" && Fileexist(gamePPUromPath))
    {
      RunWait, %ComSpec% /c ""%sevenZPath%" x "%gamePPUromPath%" -aos -o"%gamePPUemuPath%"
      gamePPU := "true"
    }
    
    ; Extract Game Data files if they exist
    If (sevenZEnabled = "true" && Fileexist(gameDATAromPath))
    {
      RunWait, %ComSpec% /c ""%sevenZPath%" x "%gameDATAromPath%" -aos -o"%gameDATAemuPath%"
      gameDATA := "true"
    }
    
    7z(romPath, romName, romExtension, sevenZExtractPath)
    
    ; Find the game location and determine the type of game (disc or hdd)
    StringRight, stringTest, romPath, 6
    If (stringTest = "USRDIR")
    {
      gameType := "game"
      StringReplace, gameFolder, romPath, \USRDIR
      StringRight, stringTest, gameFolder, 8
      If (stringTest = "PS3_GAME")
      {
        gameType := "disc"
        StringReplace, gameFolder, gameFolder, \PS3_GAME
      }
      If (sevenZEnabled != "true")
      {
        StringRight, gameSerial, gameFolder, 9
        
        ; Create the directory junction
        If (gameSerial != "" && gameType != "")
        {
          RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
        }
        Else
        {
          ScriptError("Game serial not found.")
        }
      }
    }
    Else If (sevenZEnabled = "true")
    {
      ScriptError("Rom is not located in the USRDIR directory. Please check the folder structure of your rom.")
    }
    
    ; Run the game
    If (Fileexist(romPath . "\EBOOT.BIN"))
    {
      primaryExe.Run(" """ . romPath . "\EBOOT.BIN""")
    }
    Else If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\PS3_GAME\USRDIR\EBOOT.BIN"))
    {
      primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\PS3_GAME\USRDIR\EBOOT.BIN""")
    }
    Else If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\USRDIR\EBOOT.BIN"))
    {
        primaryExe.Run(" """ . emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial . "\USRDIR\EBOOT.BIN""")
    }
    Else
    {
      ScriptError("Unable to find EBOOT.BIN file.")
    }
    
    ; Waiting for main emulator window
    emuPrimaryWindow.Wait()
    emuPrimaryWindow.Active()
    emuPrimaryWindow.WaitActive()
    
    If (sevenZEnabled = "true")
    {
      ; Find the game serial
      If (Fileexist(emuPath . "\games.yml") && gameSerial = "")
      {
        Loop, read, %emuPath%\games.yml
        {
          StringReplace, gameLine, A_LoopReadLine, /, \, All
          IfInString, gameLine, %gameFolder%
          {
            StringLeft, gameSerial, gameLine, 9
            break
          }
        }
      }
    
      ; Create the directory junction
      If (gameSerial != "" && gameType != "")
      {
        RunWait, %ComSpec% /c "mklink /J "%emuPath%\dev_hdd0\%gameType%\%gameSerial%" "%gameFolder%"
      }
      Else
      {
        ScriptError("Game serial not found in your RPCS3 games.yml file.")
      }
    }
    
    ; Identifying game window
    WinGet gameWindowID, ID, A
    gameWindow := new Window(new WindowTitle(,,,gameWindowID))
    
    BezelDraw()
    HideAppEnd(hideEmuObj,hideEmu)
    FadeInExit()
    primaryExe.Process("WaitClose")
    7zCleanUp()
    ; Remove the directory junction
    If (Fileexist(emuPath . "\dev_hdd0\" . gameType . "\" . gameSerial) && gameSerial != "" && gameType != "")
    {
      RunWait, %ComSpec% /c "rmdir "%emuPath%\dev_hdd0\%gameType%\%gameSerial%"
    }
    
    ; Remove the PPU files if they were extracted or creates PPU compressed file if needed
    If (gamePPU = "true")
    {
      FileRemoveDir, %gamePPUemuPath%\%gameSerial%, 1
    }
    Else If (sevenZEnabled = "true")
    {
      IfExist, %gamePPUemuPath%\%gameSerial%
      {
        IfNotExist, %gamePPUromPath%
        {
          RunWait, %ComSpec% /c ""%sevenZPath%" a "%gamePPUromPath%" "%gamePPUemuPath%\%gameSerial%"
          FileRemoveDir, %gamePPUemuPath%\%gameSerial%, 1
        }
      }
    }
    
    ; Remove the Game Data files if they were extracted or creates Game Data compressed file if needed
    If (gameDATA = "true")
    {
      FileRemoveDir, %gameDATAemuPath%\%gameSerial%, 1
    }
    Else If (sevenZEnabled = "true")
    {
      IfExist, %gameDATAemuPath%\%gameSerial%
      {
        IfNotExist, %gameDATAromPath%
        {
          RunWait, %ComSpec% /c ""%sevenZPath%" a "%gameDATAromPath%" "%gameDATAemuPath%\%gameSerial%"
          FileRemoveDir, %gameDATAemuPath%\%gameSerial%, 1
        }
      }
    }
    BezelExit()
    FadeOutExit()
    ExitModule()
    
    CloseProcess:
      FadeOutStart()
      gameWindow.Close()
    Return
     

  19. Collapse Details
    Re: Rpcs3 
    Senior Member aorin1's Avatar
    MainSecondary
    Join Date
    Apr 2015
    Posts
    223
    Not it says it's not able to find eboot.bin.
    Remember I only added one game to test, the game folder added in RLUI is C:\Hyperspin\Emulators\Sony Playstation 3\dev_hdd0\game\NPUB30625.
    If I set skip check to "Rom only" it will send the message above, if it's disable it will just say that no game was found.
     

  20. Collapse Details
    Re: Rpcs3 
    Member
    MainSecondary
    Join Date
    Jul 2016
    Posts
    80
    Has your EBOOT.BIN file been renamed? Which file are you selecting in RL to launch the emulator?
     

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •