lr-scummvm: request for comments and testing
-
@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
-
@hhromic said in lr-scummvm: request for comments and testing:
@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!
Happy to read it, anyway it should be the same that Retropie standard Scumm emulator do.
I have Scumm games in subfolders but standard Scumm emulator, once added a game, put .svm file into roms/scummvm so the gamelist does not show subfolders.
For the same games lr-scumm need the .svm files into game folders so now my gamelist got two entries for every game: one for standard scumm and one for lr-scumm, but the one for lr-scumm is a folder with the game inside.
I'll wait for your patch, in the meanwhile i could try ectoone solution to give a little contribute.
Cheers ;) -
@marus I just made a new version of the scriptmodule, see my post above. With this approach, both the standalone and libretro emulators can live alongside. The only modification to your game directories is to add
.svm
to the directory name. The standalone ScummVM should be still happy with this (ignores the internal svm file), and the libretro core is happy (uses the internal svm file). EmulationStation hides the.svm
"extension" of the directory name anyway, so looks lik a "game".
Try the newest iteration and let me know. -
@hhromic said in lr-scummvm: request for comments and testing:
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!Great! I've just replied to prior post :-D
Are you sure that changing folder name does not affect how the game work?
In addiction, there are some games, like Full Throttle, that have 2 subfolders, I actually have .svm file for this game into roms/scummvm/ft/resources: not sure your workaround work if I rename resurces in full throttle.svm, i'll try it. - Your game directories must have
-
@marus yes I tested it :)
Regarding the subfolders, do not rename internal subfolders!
You just need to rename the main/top folder containing all game files. In your case, just rename the main/topft
folder toft.svm
. Everything else inside (including subfolders) should remain intact.
Also, you don't need to create internal svm files for each subfolder, only in the main/top folder of the game. -
@hhromic I'm going to try, just a clarification: after renaming game folder have I to create .svm file (whit short name inside) inside the folder itself?
-
@marus yes, exactly, like you did before. In summary you should have a directory structure like in this example with two games:
roms/scummvm/ ┣ Indiana Jones and The Fate of Atlantis.svm/ ┃ ┣ atlantis.svm <- "atlantis" inside ┃ ┣ MONSTER.SOU ┃ ┣ ATLANTIS.000 ┃ ┕ ATLANTIS.001 ┕ Day of the Tentacle.svm/ ┣ tentacle.svm <- "tentacle" inside ┣ MONSTER.SOU ┣ TENTACLE.000 ┕ TENTACLE.001
Remember that if the game has more subdirectories, just leave them there untouched, the only thing that matters is the main directory having ".svm" at the end of the name and the game ".svm" file inside with the game id.
Let me know how how it goes for you. Thanks for testing! -
@BuZz I have a curious question. How strong is the requirement for modules to compile using
-O2
? The Makefile of the core defaults to-O3
and the resulting binary seems to be working fine. If we allow this optimisation I can get rid of the small patch this scriptmodule is applying to force-O2
. What do you think? -
@hhromic can leave it as O3. O2 is just our defaults
-
@BuZz great, I will test more with the default O3 from the core. In general the scriptmodule seems to be evolving good and getting good reception and ideas, should be ready to submit soon :)
-
@hhromic I tried to follow your instruction about repatching script but something is gone wrong, now i have to reinstall lr-scumm. Maybe you should write step by step how to uninstall and patch the script, at least for no experts 😉
No more time for testing these days, Once reinstalled i’ll give you some feedback, thanks again for your work! -
@marus oh, sorry to hear. Anyway is not such bad news as I now am no longer forcing O2 optimisation for the binary building, but the default O3 from upstream. This should create, in some cases, a better optimised/faster binary.
To uninstall, update the patch, and restart from a clean state (rebuild the binary), execute the following commands step-by-step:
cd $HOME/RetroPie-Setup # go to the RetroPie Setup directory sudo ./retropie_packages.sh lr-scummvm remove # remove lr-scummvm core rm -rf scriptmodules/libretrocores/{lr-scummvm.sh,lr-scummvm} # remove scriptmodule and old scriptmodule data patch -p1 < <(wget https://github.com/hhromic/RetroPie-Setup/compare/master...add-lr-scummvm.diff -qO-) # re-patch with new version of the script sudo ./retropie_packages.sh lr-scummvm clean # clean any old build directory sudo ./retropie_packages.sh lr-scummvm # re-build lr-scummvm, configure and re-install
Then make sure your games are in the new format:
.svm
at the end of each folder name and a unique.svm
file with the corresponding gameid inside each game folder.Finally, restart EmulationStation and you should see your games under the scummvm system as single entries and not folders. If you click on any, it should immediately launch the game. You can also scrape the system too to get art and metadata for the games.
Take your time to test and let me know of your feedback when you can :), much appreciated!
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.