webMAN-MOD icon indicating copy to clipboard operation
webMAN-MOD copied to clipboard

ROMS dir mapped from ROMS.ini doesn't really work anywhere

Open tomeq82 opened this issue 5 months ago • 12 comments

Hi,

I'm using latest webman MOD, on 4.92.2 on CECHA00 console.

Also, I use ps3netserv, with .ini file pointing to the ROMS dir - on the Ubuntu server. ps3netserv works flawlessly for PS2 and PS3 isos, everything is perfect.

ROMS.ini is in the /mnt/storage/ROMs/PS3, that has all neccesary dirs. ROMS.ini contains just one line: /mnt/storage/ROMs//

this is where I have already established ROMS structure directory, eg. plaftorm roms are all in lowercase directories respective to the systems.

webman is configured to scan the ROMS dir.

Problem: the only place where I see the actual mapped directory structure is the webman browser screen, Files section. It properly shows all directories and conents. Nothing else seem to see it - eg. RetroArch CE doesn't even see net0 mount. When tried to mount ROMS dir as dev_bd from webman menu, only "space invader" icon appears as the "Playstation 3" folder and.... nothing else. Should something happen?

No tool and manager can't see contents of that mounted directory, neither nothing happens in webman menu, after refresh, restart... whatever you call it :)

Bug or feature? Am I missing something obvious?

tomeq82 avatar Jul 08 '25 13:07 tomeq82

The file name of ROMS.INI must have all letters in uppercase.

After rename it. Can you see the games listed in 0/net0/ROMS on the PS3 Browser? Alternatively you can check the content from the PC browse using http://<ps3-ip-address>/net0/ROMS

Note: webMAN MOD scans the folder /ROMS (not roms, Roms or ROMs)

aldostools avatar Jul 08 '25 13:07 aldostools

yes, ROMS.INI file is in all uppercase.

Pointing to /0/net0/ROMS from within webmanMOD interface lists all the contents of the local filesystem mapped (which is /mnt/storage/ROMs/) as well as clicking Files and browsing to the /net0 dir then ROMS.

EDIT - it is ok, browser works too.

The only thing that is in different case is the local filesystem directory - it is ROMs not ROMS. Shouldn't mapping in the ROMS.INI override this eg. presenting ROMS (not local filesystem name ROMs) to the webman properly?

tomeq82 avatar Jul 08 '25 13:07 tomeq82

Moreover, I have created just for testing - symbolic link on my filesystem named ROMS pointing to ROMs, changed .INI file to ROMS. Same story. Nothing really happens. Simple File Manager doesn't show anything, as an example when mounted as dev_bdvd.

tomeq82 avatar Jul 08 '25 14:07 tomeq82

The issue with ROMS.INI seems to related to the creation of the vISO (Virtual ISO) which scans the content of /ROMS and generate a virtual ISO file system that point to the files in the directory. The path translation is only implemented in the main process that handles the ISOs. The VIsoFile class does have the path translation from the INI. Therefore the redirected files from ROMS.INI are ignored.

Instead of using ROMS.INI you could start a new instance of ps3netsrv that use /mnt/storage as root for the shared content. For this, you have to use a different TCP port (e.g. 38009), rename ROMs to ROMS and configure the new ps3netsrv address/port in /setup.ps3 as /net1.

aldostools avatar Jul 08 '25 14:07 aldostools

I did what you suggested - moved out ROMS to a new ps3netserv instance, so it has only ROMS inside the server root. Log says "Opened /ROMS" and basically, that's it. Nothing happens. Waited long - maybe due to size of my ROMS collection ;) Also, mounting this ROMS as bdvd on net1 and trying to use for example - Simple File Manager, totally hangs hard the console when trying to access this device. Green LED blinks, console heats up af. Only hard reset helps. RetroArch CE is loading slowly, can display contents of the bdvd but stops on "Preparing for contents scan".

Still, browser is able to browse the net1 and net0 normally.

tomeq82 avatar Jul 09 '25 07:07 tomeq82

When a folder is mounted through ps3netsrv, it is converted in memory to a virtual ISO with only the file structure. The content of the file is accessed directly from the disk.

If your collection of ROMS is large, it may take a very long time to build the vISO. It also could exceed the size limit for a Bluray ISO.

I recommend you that try mounting directly one of the sub-folders (e.g. SNES or NES) as /dev_bdvd and access it from RetroArch.

In regards to the support to Virtual Linked Directories (the paths in the .INI file), last night I tried to add support to it, but it resulted to require more work than I expected. The current data structure only expects the files from a single folder. I didn't continue after 3 hours trying to make it work.

aldostools avatar Jul 09 '25 10:07 aldostools

I've invested additional hours trying to add Virtual Linked Directories support to vISO without success,

The best solution that I could find is using directory symbolic links from ROMS folder. However this only works for Windows. The build for Linux treats the directory symbolic link as a file, resulting in file read errors.

In Windows the command to create the directory symbolic links is: mklink /D link_name dir_path from the ROMS folder.

In Linux the equivalent command ln -s dir_path link_name but ps3netsrv treats the link as a file.

aldostools avatar Jul 11 '25 00:07 aldostools

Thanks :) Strange, but here linux and ps3netserv treats symbolic links as dirs, at least on my setup... This is what I did on the first place. Ofcourse, size of my ROMS dir is... huge. That is probably I need to make it more atomic. Or maybe there is some elegant "out of the box" solution that doesn't involve pre-generating vISOs. I'm no coder, though.

tomeq82 avatar Jul 11 '25 20:07 tomeq82

Unfortunately vISO is required to be involved to access non-ISO files. Cobra payload only can handle ISOs. That's why ps3netsrv need to conver the folder games to in-memory ISOs (vISO).

An alternative solution could be the creation DATA ISO files (stored in DVDISO or BDISO folders) containing the ROMS for the specific system that you want to emulate. With this solution you only need to mount the ISO and launch RetroArch to load the ROMs from /dev_bdvd. Even RetroArch could be included and launched directly from the mounted disc if you create a PS3ISO.

For me the directory symbolic links didn't work. However I was testing them using WSL with Ubuntu. If you manage to get the directory symbolic links, that would be a possible workaround apart of moving the files directly to ROMS folder, instead of rely on ROMS.INI.

I could try mounting only the subfolder inside ROMS, but it needs more research about the implications of this change.

aldostools avatar Jul 11 '25 21:07 aldostools

I could try mounting only the subfolder inside ROMS, but it needs more research about the implications of this change.

It seems this change was easier than I expected. Could you test if it works better (and mount faster) with this build 1.47.48n https://aldostools.org/ps3/webMAN_MOD_latest.pkg

e.g. Now if you mount a remote games in /ROMS/SNES, it mounts only that folder as /dev_bdvd instead of the whole directory /ROMS containing other folders like NES, MAME, PSXISO, SEGA, etc.

aldostools avatar Jul 11 '25 22:07 aldostools

Ha, thanks! I will back to this when I got back from vacations early August. Definitely will test it. Just keep this case open.

tomeq82 avatar Jul 12 '25 19:07 tomeq82

Have a great vacations my friend!!

aldostools avatar Jul 12 '25 19:07 aldostools