RetroBat-Official / retrobat-setup

Configure and build the RetroBat Setup
https://www.retrobat.org
Other
138 stars 19 forks source link

feature parity w Batocera Linux (and documenting experience w unified SHARE) #147

Open udance4ever opened 3 months ago

udance4ever commented 3 months ago

ok - this is going to be a beefy post as my preference is not to post a bunch of issues resulting in divergent and fragmented conversation. I sincerely hope this is useful to you, the team and the greater community at the end of the day.

A bit of a background: I've been using Batocera Linux for probably about a year and a half to give old Intel-based Apple hardware new life (had the most success with a 2015MBP) and got quite familiar with configgen and making pull requests. As part of evaluating handheld PCs, I dove back into Windows and was super pleased RetroBat was able to use my existing Batocera Linux SHARE with minimal fuss once I moved to NTFS. RetroBat is part of my inspiration to get an Apple Silicon Mac so I've been looking at the feasibility of porting RetroBat to macOS (#135) and outlining what kind of potential pitfalls I may run into using the same SHARE on macOS, Linux, and Windows.

So here are my findings synthesizing all my notes:

Ok - that was a mouthful! I have no expectations on timelines and what does or does not get done. This documents my experience with RetroBat the last two weeks and may or may not serve as input into future development. I'm sure many of these bullets deserve their own issue thread but as I mentioned above, given the sheer breadth of this "field report", I thought it was important to communicate the bigger picture and go from here.

Props up again for such an amazing job with RetroBat!

Tartifless commented 3 months ago

Wr implemented mess autoboot (using the hashfile) 1 year ago if i remember well... (But maybe i did not do all systems).

Tartifless commented 3 months ago

We have support for ps2 folder memory cards, i am sure we added the options... Or was it the "per-game" save...

Tartifless commented 3 months ago

So, what i have done:

What already exists:

What does not work:

udance4ever commented 3 months ago

ok I hope it doesn't get too unwieldy to thread conversations here but let's give it a try:

thank you for adding the new extensions! saw your commit to add .squashfs to 3ds as well.

.xbox360 XBLA support

commented directly on your commit

We have support for ps2 folder memory cards, i am sure we added the options... Or was it the "per-game" save...

folder memory cards have a special directory structure so each game save is in a separate folder which makes it much easier to revision under git (yeah, I'm paranoid about losing my saves Lol) and you don't run into constraints w size of memcard.

please let me know if I missed the option - I didn't see one when I looked through ps2 and when I tried to manually configure the folder mem card (both through INI and going directly into PCSX2), the setting doesn't persist after booting ps2 from RetroBat.

The key difference here is Batocera Linux preserves user changes in the INI file where as it looks like RetroBat rewrites the entire file.

Wr implemented mess autoboot (using the hashfile) 1 year ago if i remember well... (But maybe i did not do all systems).

part of the new coco autoboot implementation in Batocera Linux is paying attention to the "usage" field in the hash files (just for coco short-term to ensure it's solid). The reason is some autoboot commands can get pretty tricky due to memory management tricks - here is one that is coming down the pipe in coco_flop.xml for ssleuth.zip:

    <info name="usage" value="LOADM&quot;SLUTHIGH&quot;:EXEC:LOADM&quot;SLUTHLOW&quot;:EXEC &amp;H073F" />

PSP works fine with dualsense by me (i have even tested both of these) cdi works fine

good to hear you have both working. I have a thread for PSP in the RetroBat forums so I will follow up there.

as for CDI, what rom did you test with?

C64 works fine

Turns out the Homebrew game included with Batocera Linux hangs in macOS and Windows but the Super Mario Bros port works fine. Have you verified Fix It Felix works on your end?

Tartifless commented 3 months ago

Hello, Yes we use the "usage" tag of the hash file for quite some time, but I noticed i did not enable it yet for coco but for other machines.

Tartifless commented 3 months ago

For pcsx2 we had added an option to create a memcard per game (based on the rom name). I added yesterday also the possibility to use folder. And no, we do not rewrite the whole file, we added options for memcards in the past, so as usual when an option is added in the features, it needs to be set in retrobat.

We are usually more advanced in terms of features as batocera, since we have done a full review of all options for standalone emulators a few months ago.

udance4ever commented 3 months ago

we added options for memcards in the past, so as usual when an option is added in the features, it needs to be set in retrobat.

ah that makes complete sense now.

ok let me know when you have a release to test with a folder memcard & happy to verify it.

we are in a transitional state though, I notice new games will write to the folder successfully and existing entries sometimes reads (and sometimes not)

at the end of the day, a fresh new folder memcard is sure to work cleanly once you have the option.

pc98 - translated Japanese roughly says it can't secure enough memory (ie. out of memory)

Im booted into RetroBat and moved pc98 to not working - the core runs into an "out of memory" issue that doesn't happen in Batocera Linux or macOS. It may very well be an easy fix and just letting you know pc98 doesn't work by default in RetroBat.

cdi works fine

Something is reporting Fatal Error: Required Files are missing, the machine cannot be run - if you go into RetroArch, the required files say "present" for the same_cdi core.

the error is a bit odd as it sure sounds like a MAME error to me and I double checked my settings and I’ve selected the RetroArch Same CDI core (not MAME)

I suspect it’s working on your end because you have MAME emulating CDI.

Monkee-code commented 2 weeks ago

I was wondering about that aspect too:

* parity (with Batocera Linux) observations

  * RetroBat standalone emulators saves under `saves`

    * `ppsspp\memstick\PSP` -> `../../../saves/psp/PSP`
    * `vita3k\ux0\user` -> `../../../saves/psvita/ux0/user`
    * `ryujinx\portable\bis\{user\{save,saveMeta},system\user}` -> `../../../../../saves/Ryujinx/{saves,saveMeta,system_saves}`
    * `cemu\mlc01\{sys,usr]` -> `../../../saves/wiiu/{sys,usr}`
    * `xenia-canary\content` -> `../../saves/xbox360`
    * dolphin-emu (Batocera Linux) symlinks into dolphin (RetroBat) (this one is tricky to set up due to absence of `Card A` in Windows Dolphin but I got it to work cross-platform!)
    * `citra-canary\sdmc` -> `../../saves/3ds/Citra/sdmc` (Batocera Linux requires symlink from citra-emu -> Citra)
    * `rpcs3\dev_hdd0\home` -> `../../../saves/ps3/home` (not official, intent is to keep saves under one roof)

What is the logic behind this choice? It makes porting to and from standalone emulators more complicated but I imagine that it brings some advantages?

Tartifless commented 2 weeks ago

Initially we had it in emulator folders, but this ticket requested us to move it in saves, in order to be consistent with batocera.

And as keeping it in emulators is not the best option (eg people might delete emulator folders without taking care), we thought it would be a good idea

Monkee-code commented 2 weeks ago

I see. This breaks the compatibility with standalone emulators though (especially problematic with installed DLCs and TUs) so it's a win for the compatibility with Retrobat but a loss for the overall compatibility, no? Could this be a toggle option maybe?

Tartifless commented 2 weeks ago

It does not brake compatibility with standalone, can you give specific example ?

Monkee-code commented 2 weeks ago

The best example for me was Citra. When moving from standalone to RetroBat, at first none of the Title Updates and DLC showed up (so most games were broken) because Citra (the RB one) was looking into \saves and everything was inside the emulator. So I moved my files there but then most games kept being broken because the files I just moved were considered as "installed software" so they were no longer connected to the games themselves. I had to reinstall everything from scratch to fix it. I honestly don't know why this went so bad though.

Tartifless commented 2 weeks ago

You might just have forgotten to move some folders. But anyway we'll not offer any option to use emulator folder for now, as keeping all in saves folder is more secure.