aldostools / webMAN-MOD

Extended services for PS3 console (web server, ftp server, netiso, ntfs, ps3mapi, etc.)
https://aldostools.github.io/webMAN-MOD/
GNU General Public License v3.0
1.28k stars 176 forks source link

Addition Retroarch 1.9.0 System Support #607

Closed southoz closed 2 years ago

southoz commented 2 years ago

Hi Aldo

On review of the available cores in Retroarch

Systems available but not supported by webMAN-MOD in Retroarch 1.9.0

Missing bluemsx File Extensions

Cores to folder mapping not available in Retroarch 1.9.0 still in webMAN-MOD (Source WIKI there are a few more in the code)

List of available cores in 1.9.0

The issue with the ROMLAUNCHER directories is it maps the virtual mount to /dev_bdvd/PS3_GAME/USRDIR/cores to /dev_hdd/game/RETROARCH/USRDIR/cores so it isolates the items in the Retroarch default folder /dev_hdd/game/RETROARCH/USRDIR/. As an example /dev_bdvd/PS3_GAME/USRDIR does not map to /dev_hdd/game/RETROARCH/USRDIR so to fix the issue move all the files from the default /dev_hdd/RETROARCH/USRDIR into /dev_hdd/game/RETROARCH/USRDIR/cores and update both the ROMLAUNCHER and Retroarch retroarch.cfg files directory mapping.

ROMLAUNCHER-retroarch.cfg.txt RETROARCH-retroarch.cfg.txt

aldostools commented 2 years ago

Thank you for the detailed insight of this issue.

Currently I favor the unofficial RetroArch CE released by @CrystalCT over the official RetroArch 1.9.0 Also there were previous releases with non-working cores that were added to the ROMLAUNCHER (PKGLAUNCH).

In regards to the cores available in Retroarch 1.9.0 but not supported by webMAN-MOD, I will try to add these cores and new new ones added to RetroArch CE recently.

About the missing bluemsx File Extensions, I'm aware that several file extensions are missing (e.g. VICE has several file extensions). I have been thinking to move the internal list of ROMS_EXTENSIONS to an external file, so the user can update the list if a file extension is missing.

In regards to the Cores to folder mapping not available in Retroarch 1.9.0 still in webMAN-MOD, I probably will leave them there in PKGLAUNCH since they do not affect the memory usage. I could remove from the plugin the ones not supported by RetroArch CE.

In regards to the cores mapping, in a recent release I implemented a new retroarch.cfg for RetroArch CE. I think the issue that you mention was fixed with this change, but I could check it again.

I'll try to implement these changes when I get some free time.

crystalct commented 2 years ago

Blue MSX core file extension: image In any case you can to modify that extentions if you edit bluemsx_libretro.info (that is inside info folder)

👍

aldostools commented 2 years ago

Here is a new build of webMAN MOD with the following changes: https://github.com/aldostools/webMAN-MOD/releases

southoz commented 2 years ago

Thanks @aldostools, 100% using the CE build over the official I will continue to test in a bit more depth as the ROMLAUNCHER retroarch.cfg directories all changed late yesterday from /dev_bdvd/PS3_GAME/USRDIR/cores to /dev_hdd/game/RETROARCH/USRDIR/ and I don't have an explanation. If you do a new release please rollback the retroarch.cfg until I can get to the bottom of why that change occurred as it orphaned the assets and system folders. There are a few more file extensions I will test over the next few days that may add some additional functionality.

Thanks @crystalct the extensions are correct in your CE release I am reviewing the webMAN-MOD extensions and directories in games_html.h against the Retroarch doc libraries. Thanks for your efforts and the 1.9.0 still stands up 12 months later with only the NEOGEO CD core impacting functionality.

Overall most of the consoles are working outside of the 5200 as the Atari800 emulator needs the 5200 bios location hard set in the .atari800.cfg file within the Atari800 Emulator Options (Not within Retroarch Core Options). The bios files I needed so far were 5200, PCE-CD, Sega CD and BlueMSX for Coleco and SG-1000.

Handhelds are looking good needing the Lynx BIOS

I will try and test the Micro's (that don't need keyboard), Cannonball, Nxengine over the next few days.

aldostools commented 2 years ago

@southoz Thank you for your feedback. I have rolledback retroarch.cfg

southoz commented 2 years ago

@aldotools - Thanks for rolling it back, do you know where the source code for the ROM Package Launcher is hosted?

aldostools commented 2 years ago

https://github.com/aldostools/webMAN-MOD/blob/master/_Projects_/wm_url_launcher/main.c

southoz commented 2 years ago

Testing

Coleco, MSX1, MSX2, SG-1000 and MASTER are showing in XMB but fail to launch and black screen the retroarch log shows they are matching against SNES 2010

COLECO-1-retroarch.log COLECO-2-retroarch.log MSX-retroarch.log MSX2-retroarch.log MASTER-retroarch.log

Supergrafx, PCE-CD crash to XMB without a logfile and are possibly matching against SNES 2010

Cannonball is looking good noting it was an existing core.

All the cores can be loaded by starting a core, eg Cannonball then closing content while in Retroarch and loading a rom /image from load content. Testing of all cores from within Retroarch

Sega CD has regressed and also crashes back to XMB but still loads after closing content and then loading a SegaCD rom.

I am struggling to find a link but it might be something to do with the order in LANG_ROMS.TXT as it is impacting lines 77 to 83?

*Note I had to change the cache directory to /dev_hdd/game/RETROARCH/USRDIR/cores/download as SGX and SG-1000 cores could not unzip the files while using /dev_hdd0/tmp/wm_tmp

aldostools commented 2 years ago

I think the issue is because you are not using RetroArch CE.

I have updated PKGLAUNCH to skip RetroArch CE if it is not installed. I hope this fix solves the issue. webMAN_MOD_latest.zip

southoz commented 2 years ago

Hi @aldostools I am using the Retroarch and Launcher release linked from https://github.com/aldostools/webMAN-MOD/wiki/ROMS-Support which is https://github.com/crystalct/RetroArch_PSX_CE/releases/download/v0.3-beta/RetroArch_Psx-Place_Community_Edition_beta03-20210104.pkg and (https://store.brewology.com/get/homebrew.php?id=310&fid=2183 is there another version I should be using?

I am familiar with the Linux command line method of Launching a Retroarch Core and ROM specifying the Retroarch.cfg and assumed that the webMAN-MOD was following a similar process of passing the ROM and Core values to the Package Launcher that was linked to its copy of Retroarch.cfg

It is quite possible that the Launcher had problems with those cores which is why they were excluded

Observations are

Default Install Directory Mapping

ROM Launcher binary maps the following to the Retroarch CE Folders:

/dev_bdvd/PS3_GAME/USRDIR/cores to /dev_hdd/game/RETROARCH/USRDIR/cores with r/w access.

while the ROM Launcher Retroarch base folder is mapped to the PKGLAUNCH folder

/dev_bdvd/PS3_GAME/USRDIR/ to /dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR

The default ROM Launcher Package folders in the Retroarch.cfg and mapping are

assets_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/assets" <- /dev_hdd/game/RETROARCH/USRDIR/cores/assets cache_directory = "/dev_hdd0/tmp/wmtmp" cheat_database_path = "/dev_bdvd/PS3_GAME/USRDIR/cores/cheats" <- /dev_hdd/game/RETROARCH/USRDIR/cores/cheats content_database_path = "/dev_bdvd/PS3_GAME/USRDIR/cores/database/rdb" <- /dev_hdd/game/RETROARCH/USRDIR/cores/database/rdb content_favorites_path = "/dev_bdvd/PS3_GAME/USRDIR/content_favorites.lpl" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR content_history_dir = "/dev_bdvd/PS3_GAME/USRDIR" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR content_history_path = "/dev_bdvd/PS3_GAME/USRDIR/content_history.lpl" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR content_image_history_path = "/dev_bdvd/PS3_GAME/USRDIR/content_image_history.lpl" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR content_music_history_path = "/dev_bdvd/PS3_GAME/USRDIR/content_music_history.lpl" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR content_video_history_path = "/dev_bdvd/PS3_GAME/USRDIR/content_video_history.lpl" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR core_assets_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/downloads" <- /dev_hdd/game/RETROARCH/USRDIR/cores/downloads cursor_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/database/cursors" <- /dev_hdd/game/RETROARCH/USRDIR/cores/cursors joypad_autoconfig_dir = "/dev_bdvd/PS3_GAME/USRDIR/cores/autoconfig" <- /dev_hdd/game/RETROARCH/USRDIR/cores/autoconfig libretro_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores" <- /dev_hdd/game/RETROARCH/USRDIR/cores libretro_info_path = "/dev_bdvd/PS3_GAME/USRDIR/cores/info" <- /dev_hdd/game/RETROARCH/USRDIR/cores/info log_dir = "/dev_bdvd/PS3_GAME/USRDIR/cores/logs" <- /dev_hdd/game/RETROARCH/USRDIR/cores/log overlay_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/overlays" <- /dev_hdd/game/RETROARCH/USRDIR/cores/overlay playlist_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/playlists" <- /dev_hdd/game/RETROARCH/USRDIR/cores/playlists savefile_directory = "/dev_bdvd/PS3_GAME/USRDIR/savefiles" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR/savefiles savestate_directory = "/dev_bdvd/PS3_GAME/USRDIR/savestates" <-/dev_hdd/game/PKGLAUNCH/PS3_GAME/USRDIR/savestates system_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/system" <- /dev_hdd/game/RETROARCH/USRDIR/cores/system video_layout_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores/layouts" <- /dev_hdd/game/RETROARCH/USRDIR/cores/layouts video_shader_dir = "/dev_bdvd/PS3_GAME/USRDIR/cores/shaders_cg" <- /dev_hdd/game/RETROARCH/USRDIR/cores/shaders

*Note as libretro_directory = "/dev_bdvd/PS3_GAME/USRDIR/cores" and rgui_config_directory is not set in the configuration core configuration options are saved into /dev_hdd/game/RETROARCH/USRDIR/cores

The key issue is the folder /dev_hdd/game/RETROARCH/USRDIR/cores only contains the Retroarch CE cores and all the other Retroarch components are located in /dev_hdd/game/RETROARCH/USRDIR

To fix the issue, assuming the binary cannot be updated as there is a need to support the mapping /dev_bdvd/PS3_GAME/USRDIR/ in a separate Retroarch.cfg file, there are a couple of options users can work through:

Leave it as is keeping the environments separate, internally update the assets etc.

Share the environment by moving the files and folders except /cores and retroarch.cfg from /dev_hdd/game/RETROARCH/USRDIR/ to /dev_hdd/game/RETROARCH/USRDIR/cores and make the following changes:

Thanks for the update I will test it today.

aldostools commented 2 years ago

The link to mediafire is the same RetroArch CE with the cores already updated to the latest public version. The pkg in CrystalCT's github is an older version from January 2021.

Just for better background I will explain you how the ROMS are mounted: 1- For RetroArch CE, the retroarch.cfg is updated with a custom version that reads the resources from hdd0 and the cores from /dev_bdvd 2- When the game is mounted through webMAN MOD, the folder cores in PKGLAUNCH is mapped to /dev_hdd0/RETROARCH/USRDIR/cores and the rest of the resources are loaded from the retroarch.cfg 3- The folder /dev_hdd0/game/PKGLAUNCH/PS3_GAME is mounted as /dev_bdvd and /app_home/PS3_GAME 4- The ROM path is saved in /dev_hdd0/game/PKGLAUNCH/USRDIR/launch.txt 5- PKGLAUNCH is executed from app_home or from the bluray disc icon 6- PKGLAUNCH reads the ROM path from launch.txt, selects the core and launches it. 7- The core reads /dev_bdvd/PS3_GAME/USRDIR/retroarch.cfg and starts the ROM.

I will wait for your feedback.

southoz commented 2 years ago

Thanks, I will uninstall everything and start again with the current Retroarch CE version. Apologies for getting down in the weeds I am trying to get it right for an instruction video on using webMAN-MOD as a front end with >2TB NTFS support. I get a number of people asking about how they can best use their PS3 gathering dust and the "check it out on youtube" response is not cutting it as most videos just skip over the details.

southoz commented 2 years ago

That made a big difference, thanks for clarifying, all the new cores from this ticket are working.

Sega-CD had stopped working with the updated core both through an internal launch and webMAN-MOD launch and I have tried CHD, BIN/CUE and ISO. I will keep trying to isolate the issue

@crystalct The CHD and ISO error out with can not read image tried in both /ROMS/SEGACD and the Retroarch cores folder. CUE goes black screen and loading the BIN goes black screen unresponsive.

crystalct commented 2 years ago

I confirm... there is a new bug introduced somewere and SEGA CD games cauase a segmentation fault. I will take a look.....

crystalct commented 2 years ago

Fortunately it was very easy to solve the problem. By recompiling from the latest version of the core everything was fixed. In few minutes, core updated will be available.... image

southoz commented 2 years ago

Thanks, I will give a test as soon as it is available.

southoz commented 2 years ago

@crystalct looks good here, running ISO, CHD and BIN/CUE from webMAN-MOD

Thanks, @aldostools for setting me straight on the Retroarch CE version, really getting on top of things.