I've been playing around this for a couple weeks and wanted to share. I wanted so badly to store the games on my NAS on a single file each, in order to save some space and not having hundreds of file around there.
So, I though about having a zip (or 7z, or whatever) using a fixed structure, the same that RPCS3 uses internally on its HDD so I could just unpack the file right over the RPCS3 folder just before launching the game. This way I can have in a single file the game with every patch/dlc that I want, ready to just unpack and go.
This way, every archive has this basic structure:
\disc
\game
\home\00000001\exdata\ (for the RAPs)
Those are optional if the game don't need it. For example, PSN games doesn't have a "disc", or disc games don't have nothing on game if they are not patched or RAPs if it doesn't have DLCs.
Then, I wrote a batch file to launch this from Launchbox. Something like this:
@echo off
if %1.==. GOTO standalone
7z l %1 -ba | findstr /r "EBOOT.BIN" > ebootPath.txt
set /p EBOOT=<ebootPath.txt
for /f "tokens=5" %%i in ('echo %EBOOT%') do set EBOOT=%%i
if not exist ..\dev_hdd0\%EBOOT% (
7zG x %1 -o..\dev_hdd0 -aos
)
if exist ..\dev_hdd0\%EBOOT% (
..\rpcs3.exe ..\dev_hdd0\%EBOOT%
)
GOTO:eof
:standalone
..\rpcs3.exe
It is stored and launched from a subfolder called "_launcher" under the RPCS3 directory so I can keep the paths relative.
It finds the EBOOT path in the archive to find if the game is installed and it launches it afterwards. I use 7zG for the extraction so I can have a nice progress bar while unpacking.
Following the same idea I just made another script to delete the files from disc to "uninstall" the games when I don't need them. It's on launchbox like another "emulator" so I can either launch them or uninstall them easily from the UI.
7z l -ba %1 -i!*\* -x!*\*\* -x!home > filesToDelete.txt
for /f "tokens=6" %%i in (filesToDelete.txt) do rmdir /s ..\dev_hdd0\%%i
And that's really it. If any of you know how to improve around this. Maybe with AutoHotKey, or making a plugin... please, let me know.
One thing I would like to do if reflect on the metadata if a game it's indeed installed or not. That would be cool.
Hope this help anyone. Take care.