lr-scummvm: request for comments and testing
-
Update
I successfully completed Indiana Jones and The Fate of Atlantis now with the different endings. All is working nice and smooth.
I think the scriptmodule should be ready to submit as any game-glitch should be handled in the core code, not this scriptmodule. I will wait some days in case someone come with new feedback. -
I have not tested your script because I'm in the process of switching to play on an Android device. But if the core is the same, and it seems to be because the crashing bug you've mentioned also happens for me, I really like it. I have not finished a game yet but I tried both Discworld games and had no issues.
-
@EctoOne yes the script is pulling the source for the core from the official libretro github repository, so should be the same for Android if you are using official RA.
The crash-on-exit bug is the only issue I have seen so far so I hope a fix is found upstream. I still don't know exactly how to reproduce it. If you do, it would be really useful if you can share the steps :)
Thanks for reporting, I also really like the lr-based core of scummvm and would love to have it included in official RetroPie soon.
-
@hhromic the crash always happens when I use my hot key combo in game to open the retroarch gui and then select Quit RetroArch. It's just that simple. Quitting ScummVM first from its own Menu and then quitting RetroArch works fine.
Yet again, that's on Android without any Frontend, just RetroArch. -
@EctoOne ah, for me the crash is not always but random. It happens both, when I use the hotkey combo to go to the RGUI menu -> quit retroarch, or if I use the hotkey combo to quit directly. Like you, if I quit ScummVM from its own menu it never crashes. If it happens so "reproducible" in your Android setup, probably is easier to debug there. Hope the devs update soon.
Edit: I found an issue in their github repository reporting the same problem in WiiU. I sent a comment reporting that it also happens in RPI and Android. Hopefully we get some attention :). Issue: https://github.com/libretro/scummvm/issues/116
-
@hhromic what do you mean by crashing, just it of curiosity? Will the pi freeze/the process hang, or will it return to emulation station albeit with a segfault or another exception?
Looking forward to this!
-
@pjft it just freezes retroarch, not the system. When crashed, you can login via ssh and kill the retroarch process (
skill -KILL retroarch
) and you will get back to emulationstation. When frozen, retroarch also doesn't respond to the SIGTERM signal (skill retroarch
orskill -TERM retroarch
).
No segfaults nor exceptions reported, just freezes.The verbose logging is not very informative either. When it freezes it just stops in the "unloading game" operation:
: [INFO] [GL]: VSync => on [INFO] [EGL]: eglSwapInterval(1) [INFO] Unloading game..
And when it doesn't freeze, it gracefully finishes the shutdown:
: [INFO] [GL]: VSync => on [INFO] [EGL]: eglSwapInterval(1) [INFO] Unloading game.. [INFO] Unloading core.. [INFO] Unloading core symbols.. [INFO] Saved core options file to "/opt/retropie/configs/all/retroarch-core-options.cfg"
So it looks it crashes when trying to "unload the game". Also I found out that it happens more often if you are starting the game than after running it for a while.
Furthermore, apparently it doesn't happen when you send a SIGTERM signal to quit retroarch, which also triggers the unload game, core, etc. normally. Therefore, it seems to happen only when you quit either via Hotkey+Start exit combo or the "close content" option in the RGUI, and early in the game.
Edit: again, this only happens (sometimes) when trying to quit from RA, if you quit from the ScummVM's internal menu, it never crashes.
-
@hhromic Hi, I've just started trying lr-scumm as you suggested from another thread.
It seems very interesting, I really appreciate your effort, but i fail to start games.
I followed exactly your instructions about ADDING SCUMM GAMES but when I select one the only thing happen is the opening of lr-scumm GUI empty (no games at all). May it be a language issue? I'm trying to start italian language versions.... -
@marus thanks for testing! your feedback is appreciated.
Just to be clear, you have the following dir/files structure for your games:
/home/pi/RetroPie/roms/scummvm/Your Game Name # <- game directory /home/pi/RetroPie/roms/scummvm/Your Game Name/file1.sof # <- game files inside dir /home/pi/RetroPie/roms/scummvm/Your Game Name/file2.001 # <- game files inside dir : /home/pi/RetroPie/roms/scummvm/Your Game Name/gameid.svm # <- game id file inside dir with "gameid" (no quotes) also inside the file as text
Make sure the
gameid
is correct for the game your trying to load. Check the ScummVM compatbility list, where they list the "short game name" (game id) for each game. See the list here: https://www.scummvm.org/compatibility/The game language shouldn't be an issue. Can you let me know exactly which game are you trying to run? I can give it a try.
-
@hhromic said in lr-scummvm: request for comments and testing:
with "gameid" (no quotes) also inside the file
That was the trick! I had .svm files empty because other scumm emulators simply does not check them inside.
Now I'am really happy with it! my controller wii u pro is finally ok, configurations and sound are great, i can play Indy 3 without numeric pad for the fight, everything seems perfect at the moment. Many thanks for your efforts.
The only thing hurting to me, other than random crash when exit by select+start that I hope will be fixed soon, is the gamelist. Because of the need to place .svm file into game folder, they are not in the root of ES scumm section as it happen with other scumm emulators (sdl1 & sdl2) so you have to select folder first then inside the game to run.
Any way to avoid it and let scraped games ready to launch directly from the root ? -
@marus I'm glad it worked now for you! good news. Yes I'm also very happy on how the core was developed for RA, very comfy controls and runs very smooth. The shaders are also a treat, make sure to try out the zfast crt shader! it looks great.
Regarding the random crash, yes I'm trying to figure out how to deterministically reproduce it so we can either report it upstream or try to find the culprit. Unfortunately I have little experience with debugging RA cores so I go slow.
Regarding the folder-based selection in emulationstation, yes that also bothers me a bit :). It is actually a limitation of EmulationStation, the way the core is implemented has to use that structure on the filesystem. Recalbox has a trick specifically for scummvm games to show directly instead of the folders, I will research how they do it. However, I suspect they modified EmulationStation for this to work, in this case we can try to push that to the RetroPie ES branch.
Cheers and thanks again for tesitng! the more you test and report (specially if you manage to easily and precisely reproduce the exit crashes), the better :)
-
@hhromic said in lr-scummvm: request for comments and testing:
@marus I'm glad it worked now for you! good news. Yes I'm also very happy on how the core was developed for RA, very comfy controls and runs very smooth. The shaders are also a treat, make sure to try out the zfast crt shader! it looks great.
Where can I find more about trying zfast crt shader?
Regarding the random crash, yes I'm trying to figure out how to deterministically reproduce it so we can either report it upstream or try to find the culprit. Unfortunately I have little experience with debugging RA cores so I go slow.
Regarding the folder-based selection in emulationstation, yes that also bothers me a bit :). It is actually a limitation of EmulationStation, the way the core is implemented has to use that structure on the filesystem. Recalbox has a trick specifically for scummvm games to show directly instead of the folders, I will research how they do it. However, I suspect they modified EmulationStation for this to work, in this case we can try to push that to the RetroPie ES branch.
Ok, let me know please :-)
Cheers and thanks again for tesitng! the more you test and report (specially if you manage to easily and precisely reproduce the exit crashes), the better :)
Ok, thank you, cheers!
-
@marus in case you haven't read about shaders in general and what they do, take a look here: https://github.com/RetroPie/RetroPie-Setup/wiki/Shaders-and-Smoothing
In summary, shaders allow to "enhance" the image via simulating certain aspects of old consoles/devices. In the case of ScummVM, these games were meant for CRT "tube" monitors, so we can simulate a scanline effect with shaders. It is true that CRT monitor is not the same as CRT TV, however I think the effect still looks nice for ScummVM.
To try out, in the guide I linked above follow the steps to enable shaders support and then select the shader you want. There are many shaders, I particularly like "zfast crt" normal (not the curvature version). But you can try others, for example the "crt-pi" one. Beware that most of these shaders are intensive and won't work very well on the RPI. The zfast* and crt/lcd-pi ones are optimised.
Also another tip: do NOT use smoothing from the guide, it will make the emulation slower probably and the results aren't that good.
-
with the standalone scummvm version i had an extra
scummvm-data
folder for the game files/folders and the svm files in the defaultscummvm
folder. i don't know if that would still work with the lr core and i currently can't test it myself.
the only other solution would be to use that setup i mentioned and create symlinks in the default folder to the svm files. -
@EctoOne the scriptmodule automatically install scummvm data files in the
$biosdir/scummvm
directory (typically/home/pi/RetroPie/BIOS/scummvm
).
These files are pulled from here (official lr-scummvm repository): https://github.com/libretro/scummvm/tree/master/backends/platform/libretro/aux-data (the ZIP file to be precise).This extra data contains the scummvm UI modern theme, game extra data files and soundfont files. All of that is automatically downloaded and configured for it to work out of the box and be picked by scummvm for each relevant game.
I'm not sure if you are refering to the same data files?
-
@EctoOne said in lr-scummvm: request for comments and testing:
with the standalone scummvm version i had an extra
scummvm-data
folder for the game files/folders and the svm files in the defaultscummvm
folder. i don't know if that would still work with the lr core and i currently can't test it myself.Hi EctoOne, standard Scumm emulator creates svm files (after adding games from GUI) in the default folder so there is not problem, lr-scumm recognize that svm files but fails when launch games due to data not found.
the only other solution would be to use that setup i mentioned and create symlinks in the default folder to the svm files.
May you explain please, how can I create a symlink? Many thanks
-
@hhromic
Nope, sorry that was not what I meant. I meant that I had my gamefiles in a separate folder namedscummvm-data
instead of the normalscummvm
folder. I mean with ScummVM it doesn't really matter because you have to add them manually with the GUI anyways.
So I only had *.svm files in my default rom folder and that worked. But apparently it doesn't work with the lr core, which makes sense.@marus
I actually never haved used them myself at least not directly from the console.
This page should help: https://www.cyberciti.biz/faq/creating-soft-link-or-symbolic-link/
I suggest again to use a separate folder for the gamefiles, not thescummvm
folder.Then something like this should work (Hopefully):
ln -s /home/pi/RetroPie/roms/scummvm-data/GAMEFOLDER/GAME.svm /home/pi/RetroPie/roms/scummvm/GAME.svm
I have used that method before for other systems but I'm not sure if this would work with ScummVM. Also you can create symlinks only on linux partitions, if you have your games on an usb stick it probably won't work right away and requires some more work.You should test it with one game first and if it works, maybe this will make things easier: https://retropie.org.uk/forum/topic/10849/create-a-custom-es-system-able-to-launch-games-for-many-systems/82
$ ./add-game-to-custom-system.sh -d ~/RetroPie/roms/scummvm ~/RetroPie/roms/scummvm-data/*.svm
That should find all *.svm files and link them in the
scummvm
folder.
NOTE: I usedscummvm-data
in both examples as folder where you put your games. Change it if you want. -
@EctoOne Thank you! I will read and try then let you know, I'm sure it is an annoyng issue for everybody using lr-scumm, if it works this will be hands down the best emulator to play scumm games on Retropie.
-
@EctoOne @marus , guys I got a bit confused with what are you trying to do with that.
@EctoOne , I understand now, you mean the actual game files in a separate folder than the "scummvm" and the symlink the svm files so EmulationStation doesn't see the actual folders of each game?
After checking how recalbox does it, I think I got an idea on how to make it for EmulationStation to display just the game and not the folder, and still make it work as intended. However I need a bit of time to figure out a proper solution. When I have it done I will update the patch and you can test it.
Thanks for all the feedback/testing, very helpful!
-
Update
Good news! Making EmulationStation open the game by its folder directly was easier than I thought :) I implemented this new feature now in the proposed scriptmodule. I updated the instructions in the first post accordingly. To summarise for existing testers:
- Your game directories must have
.svm
at the end of the name. For example:Indiana Jones and the Fate of Atlantis.svm
. Please note that this looks like an extension but is actually just part of the directory name. This is what tricks EmulationStation to consider the directory itself as the "game" and you can then launch it directly without opening it first. - You must first update the lr-scummvm scriptmodule (recommended is to uninstall it and re-patch the scriptmodule, see instructions). Recompiling/reinstalling lr-scummvm is not necessary. Then you need to re-configure the lr-scummvm installation. You can do this using the following commands:
cd $HOME/RetroPie-Setup sudo ./retropie_packages.sh lr-scummvm configure
After you re-configure lr-scummvm and rename your game directories to have
.svm
at the end of the name, you should be able to launch the games from EmulationStation without entering the directories first, and also able to scrape them like any console rom. Let me know how it goes! - Your game directories must have
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.