lr-scummvm: request for comments and testing
-
Happy to contribute! It is possible to have a read of your old scriptmodule? Just to study and incorporate anything I might have missed, specially compiler flags.
There are some minor issues like RA freezing when exiting on certain conditions (only on exiting, when running is fine), but I'm investigating.
About doing a PR, sure can do, however I thought of testing from my own branch so I can iron-out things faster than sending more PRs to the main repo.
I will allow some time of feedback before sending the PR, the module is simple enough anyway, the majority of issues probably will be with the core itself. -
Update
After some ironing of the scriptmodule, I've been happily playing ScummVM games flawlessly on my stock, non overclocked RPI 3B+ for some time now. Playing ScummVM with a gamepad (PS3 in my case) through RA is much more comfortable than I could have expected. Saves states from within the ScummVM menu work fine too.There is an evolving RetroArch-specific compatibility list being maintained here (not by me!): https://docs.google.com/spreadsheets/d/1a87BnQJc7_fTD5zF55JXcm79d5_l_d1ghDxtiubTnDE, which is very promising about many games.
I'm currently in the process of finishing Indiana Jones and The Fate of Atlantis as a test-case. Afterwards I think I will submit the scriptmodule for inclusion to experimental in RetroPie.
There is a minor issue when trying to exit RA using the Hotkey + Start combination, that freezes RA. It happens rarely and in some games only. If you close the core from within the ScummVM menu it never freezes. This is def a core issue and I will try to track how to reproduce to send upstream. The scriptmodule shouldn't need any changes regardless.
Edit: I've been playing using the zfast crt shader too, great look for ScummVM :)
-
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.
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.