retrobat-setup
retrobat-setup copied to clipboard
feature parity w Batocera Linux (and documenting experience w unified SHARE)
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:
- What works really well:
- original retro chiptune feel of ole skool Batocera! (love the video splash art!!)
- familiar ES layout and controls
- gamelist.xml - all favorites and image locations preserved going back and forth between Batocera Linux and RetroBat
- RetroArch finds save files in same locations as Batocera Linux (including an obscure edge case using sub-directories to group multi-disc roms!)
- BIOS files are found in same places (~95%)
- portable (I have a triple-boot 1TB NVMe: Batocera Linux, Windows 10 w RetroBat, and macOS Ventura w NTFS-3g)
- parity (with Batocera Linux) observations
- RetroBat prioritizes system bezel over default Bezel Project bezel (when game specific one is absent) - I'm not sure what Batocera Linux is doing but it manages use a system level default bezel when Bezel Project bezels (in my case, for vectrex overlays) are installed. In RetroBat, you get the generic Bezel Project bezel all the time.
- squashfs mount support - though initial research only resulted in squashfuse - seems like resuming work on the Windows port has its share of challenges. (I do like how RetroBat keeps the
.uncompressed
folder compressed at the OS level - this is a nice touch) - option to swap space and Return (space opens menu, Return selects in Batocera Linux)
- sort out
system/scripts
(this line and this line attempt to load RetroBat scripts on launch & shutdown and need to temporarily be commented out) - RetroBat vs Batocera Linux ES splash - I don't know enough about ES configuration, but when RetroBat is overlaid with Batocera Linux, the RetroBat ES splash screen shows up when booting into Batocera Linux (this is more a cosmetic thing, I just ignore it)
- means to keep
system/batocera.conf
andemulation\.emulationstation\.emulationstation\es_settings.cfg
in sync - ~~keep .cue files for system
jaguar
so Jaguar CDs that load in Batocera Linux, load in RetroBat (I'm aware there is ajaguarcd
directory which is great for someone who wishes to organize further but should be optional - bothjaguar
andjaguarcd
should accept .cue files~~ - ~~add .m3u support for
amigacdtv
andpc98
- I updatedes_systems.cfg
and what works in Batocera Linux works just fine in RetroBat~~ - .xbox360 XBLA support (I realize you have a .m3u convention but just for those coming from Batocera Linux, the .xbox360 basically serves the same function) (related: #122)
- remove MESS group in RetroBat (MESS is officially depreciated)
- support for ps2 folder memory cards - I tried to update the INI file (and change the memcard in settings) but I think something in emulatorLauncher generates a new PCSX2 INI file and overwrites changes. In Batocera Linux, you can go into Applications -> PXSX2 config, choose a memory folder card and it persists.
- 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)
-
- feature ports (biased here ;)
- emulator differences
- Windows GSPLUS apple2gs bios name is
APPLE2GS.rom
vsROM1
in Batocera Linux
- Windows GSPLUS apple2gs bios name is
- possible enhancements on both sides of the fence (both Batocera Linux and RetroBat)
- ignore macOS
._*
metadata (colored tags) in ES - dreamcast saves per game VMU file(s) in
dreamscast/saves
- I actually don't recall what the default is in Batocera Linux - I just know I had to go into RetroArch in RetroBat and enable the option and save todreamcast.opt
so it would read my Dreamcast saves files from Batocera Linux
- ignore macOS
- can't get to work in RetroBat
-
windows
doesn't bind gamepad (tested w DualSense and homebrew Castlevania Chronicles II: Simon's Quest) -
psp
doesn't bind gamepad (tested w DualSense) - this might be a PPSSPP issue as it doensn't work outside of RetroBat? -
c64
- system boots but just hangs onLOADING
(tested: homebrew Fix it Felix) [UPDATE: Super Mario Bros port works] -
cdi
- Something is reportingFatal Error: Required Files are missing, the machine cannot be run
- if you go into RetroArch, the required files say "present"- fails to boot despite bios\cdimono1.zip present (verified in RetroArch settings, other 2 bios files listed in RetroBat wiki should be labeled "optional" (Batocera Linux wiki only lists one dependency)
-
pc98
- translated Japanese roughly says it can't secure enough memory (ie. out of memory)
-
- works but missing advanced functionality
-
coco
- load hiscores using MAME plugin in RetroBat - it looks like the RetroBat MAME command line generated is missing a reference tosaves\mame\plugins
(need to confirm Batocera Linux looks for plugins in saves)
-
- RetroArch core issues (doesn't seem RetroBat or Batocera Linux related and reproducible in both)
-
~~
oe2m
- can't fire (test: Freedom Fighter)~~ (turns out in "survival" mode, this is intentional!) -
gameandwatch
- Donkey Kong Jr. timing off w massive slowdown (DK II works just fine) (this might actually work ok in Batocera Linux, it seems core related as it failed on Windows 11 on a ROG Ally)
-
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!