stop ScummVM from generating .svm files?
-
@windg yeah thanks, i've been thinking the same -- keep the main scummvm for the regular games and install lr-scummvm for the kids games
if noone has a solution that doesn't involve installing both emulators, i'll give this a shot
-
Why don't you use the "kids" mode for EmulationStation and mark explicitely the games you want to be shown from
scummvm
and other systems ? Or create a game collection for those games only ? -
@mitu because i don't want the kids games cluttering my ScummVM gamelist. If i create a game collection, the games will still appear in the corresponding system list
as for the "kids" mode, i don't want to hide the adult games away either. I simply want an easy way to toggle between kids (not all of which are scummvm games, btw) and "regular" games, without creating any duplicate entries
-
@rvirmoors The
.svm
files are created (and updated every runtime) by the+Start ScummVM.sh
startup script that is used to launch the games. This file is placed automatically in thescummvm
rom folder when the package is installed. What I would try is:Make a duplicate rom folder called, for example
scumm-kids
. Copy+Start ScummVM.sh
to this duplicate rom folder. Renaming the file isn't strictly necessary, but could help to keep all your ducks in a row. For example+Start Scumm-Kids.sh
In this duplicate copy, change the line:
pushd "/home/pi/RetroPie/roms/scummvm" >/dev/null
...to reference this
scumm-kids
rom folder instead:pushd "/home/pi/RetroPie/roms/scumm-kids" >/dev/null
Then do the same for this line here:
echo "$desc" > "/home/pi/RetroPie/roms/scummvm/$id.svm"
...becomes:
echo "$desc" > "/home/pi/RetroPie/roms/scumm-kids/$id.svm"
Finally, make sure your custom system uses this duplicate rom folder and that it uses the
+Start Scumm-Kids.sh
in itsemulators.cfg
launch command:scumm-kids = "bash /home/pi/RetroPie/roms/scumm-kids/+Start\ Scumm-Kids.sh %BASENAME%" default = "scumm-kids"
-
@sleve_mcdichael thanks, i tried this, but it doesn't work. Thing is, since there's still just a single instance of ScummVM (which both
.sh
scripts call, and which has all the games) it will create svm's for all the games, not just the ones in the folder it was launched fromand i can't remove games from the emulator's list, because then they'll be gone when i look for them from the other side
-
@rvirmoors right, I see now, it looks like that the SVM files aren't just built from the games in the current folder but from whatever is configured in your
scummvm.ini
, which is in/opt/retropie/configs/scummvm
.In order to keep two separate "libraries," you'll need to maintain two separate copies of this file. You can specify an alternate config with the
-c
or--config=
command-line option.In addition to the previous steps, also try this. In
+Start Scumm-Kids.sh
, add--config="/opt/retropie/configs/scummvm/scumm-kids.ini"
to both of the/opt/retropie/emulators/scummvm/bin/scummvm
commands:#!/bin/bash game="$1" pushd "/home/pi/RetroPie/roms/scumm-kids" >/dev/null /opt/retropie/emulators/scummvm/bin/scummvm --config="/opt/retropie/configs/scummvm/scumm-kids.ini" --fullscreen --joystick=0 --extrapath="/opt/retropie/emulators/scummvm/extra" "$game" while read id desc; do echo "$desc" > "/home/pi/RetroPie/roms/scumm-kids/$id.svm" done < <(/opt/retropie/emulators/scummvm/bin/scummvm --config="/opt/retropie/configs/scummvm/scumm-kids.ini" --list-targets | tail -n +3) popd >/dev/null
If desired, you could also use
--savepath="[PATH]"
(probably only on the first one) if you need to keep the savegames separated also. -
@sleve_mcdichael that did it, thank you!
for some reason, the kids
.sh
also generates a-----------.svm
file ... but i guess i can live with thatnow to find a way to populate
gamelist.xml
from thescummvm.ini
files... -
@rvirmoors said in stop ScummVM from generating .svm files?:
for some reason, the kids
.sh
also generates a-----------.svm
file ... but i guess i can live with thatWhen you run it with
--list-targets
(line 7 in the startup script), it outputs a table like this:Target Description -------------------- ------------------------------------------------------ atlantis Indiana Jones and the Fate of Atlantis (CD/DOS/English) maniac-v2 Maniac Mansion (V2/DOS/English) monkey The Secret of Monkey Island (Unofficial SE Talkie v1.02/DOS/English) monkey2 Monkey Island 2: LeChuck's Revenge (Unofficial SE Talkie v0.2/DOS/English) queen-fallback Flight of the Amazon Queen (Talkie/DOS/English) samnmax Sam & Max Hit the Road (CD/English) sky Beneath a Steel Sky (v0.0368 cd) tentacle Day of the Tentacle (CD/English)
When you then pipe that output into
tail -n +3
, it should cut off the first two lines and show starting from line 3 onwards. This provides the list of short-names and folders ("target" and "description") which are used to create the SVM files.It looks like yours is for some reason either not suppressing that second line, or else you have an additional third line with more dashes.
If you run the command manually, does your output look like mine? (I mean, you'll have different games listed, but the layout should be similar.)
/opt/retropie/emulators/scummvm/bin/scummvm --config="/opt/retropie/configs/scummvm/scumm-kids.ini" --list-targets
...if you then pipe that to
tail -n +3
, what happens?/opt/retropie/emulators/scummvm/bin/scummvm --config="/opt/retropie/configs/scummvm/scumm-kids.ini" --list-targets | tail -n +3
...and lastly, does your startup script say
| tail -n +3
at the end (line 7, inside the parentheses)?done < <(/opt/retropie/emulators/scummvm/bin/scummvm --config="/opt/retropie/configs/scummvm/scumm-kids.ini" --list-targets | tail -n +3)
(Also, if you do it without the
--config="<path>"
, manually, does your "regular" list look any different than the alternate "kids" list? In layout, I mean.)...
now to find a way to populate gamelist.xml from the scummvm.ini files...
You can try scraping them. That's what the
<platform>
tag is for ines_systems.cfg
, where you configured the custom system. If you leave this as<platform>scummvm</platform>
and don't change it toscumm-kids
, then it should scrape as regular ScummVM using the built-in ES scraper.If you use the external Skyscraper, there's a little more required to make it scrape custom systems but it is still possible. See below.
Alternatively, ES will write gamelist entries for a game whenever anything of its info changed. So you can, from within ES, select a game and choose "edit metadata" and add a description, or clean up its name or anything like that. Or, one real easy way to change a game's data is to play it once, which will update its last-played and playcount values, and write them to the gamelist (creating the entry if it was previously absent.)
...
For Skyscraper, first you'll need to update your RP-Setup script and then install the latest build-from-source version of Skyscraper (the update that allows custom systems like this is very recent and has not been propagated to the pre-compiled binary version yet), then:
Edit your
~/.skyscraper/platforms.json
file. Find the section for"scummvm"
and duplicate it changing the"name"
field to read"scumm-kids"
instead. (I'm not sure if this next part is truly necessary, but it shouldn't hurt anyway: take the originalscummvm
name and re-add it below as one of the many "aliases".){ "name": "scumm-kids", "scrapers": [ "screenscraper", "thegamesdb" ], "formats": [ "*.scummvm", "*.svm" ], "aliases": [ "amiga", "amiga cd32", "cd32", "dos", "pc", "pc (microsoft windows)", "pc dos", "pc win3.xx", "windows", "windows apps" "scummvm", ] },
Additionally, if you use screenscraper as your scraping source with Skyscraper app, then also edit your
~/.skyscraper/screenscraper.json
file and, again, duplicate thescummvm
entry forscumm-kids
; it's a lot simpler in this file:{"name":"scumm-kids","id":123},
...and I think, if everything works like I think it should, that should let you scrape
scumm-kids
in Skyscraper, using the screenscraper source, as if it were the regularscummvm
system. -
@sleve_mcdichael said in stop ScummVM from generating .svm files?:
@rvirmoors said in stop ScummVM from generating .svm files?:
now to find a way to populate gamelist.xml from the scummvm.ini files...
You can try scraping them. (...)
Rather, this scrapes for the
*.svm
files, which should be the same list. Was there a reason you want to use thescummvm.ini
contents, specifically? -
@sleve_mcdichael said in stop ScummVM from generating .svm files?:
If you run the command manually, does your output look like mine?
nope, there's an additional line:
Using configuration file: /opt/...
using
tail -n +4
solves that then. Sorry for bothering you with this, seems like something I could've figured out...You can try scraping them. That's what the <platform> tag is for in es_systems.cfg, where you configured the custom system.
looks like I'd removed that line (in my attempts to isolate from the main scummvm), but I'm adding it back in now.
(even though not all games there are scummvm...)i've used skyscraper before, thanks for the tips!
Was there a reason you want to use the scummvm.ini contents, specifically?
oh, no, it just looked like there's more info in there, but not much of it is useful for scraping anyway
thanks for everything, i think i can handle it from here :)
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.