RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    stop ScummVM from generating .svm files?

    Scheduled Pinned Locked Moved Help and Support
    scummvmsvmroms
    12 Posts 4 Posters 930 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rvirmoors
      last edited by rvirmoors

      i've created a custom system to separate the "kids" scumm games (Freddy Fish etc) from the main ones. This works fine, but since I'm using the same emulator, the script automatically regenerates the .svm files (which i moved into my roms/kids folder) back in roms/scummvm.

      can i make scummvm just use the existing .svm files from the custom folder? and not generate duplicates, which defeats the purpose...

      windgW S 2 Replies Last reply Reply Quote 0
      • windgW
        windg @rvirmoors
        last edited by

        @rvirmoors You can try lr-scummvm that don't create automaticaly the .svm files for the kids games.

        Don't forget :

        1. To not add the kids games to the standalone scummvm
        2. To create the .svm file for the lr-scummvm : https://retropie.org.uk/docs/ScummVM/ (after that the game will appear in ES )
        3. To set from the runcommand menu, the lr-scummvm emulator for the ROM (second option).

        You can install lr-scummvm from experimental packages.

        My English isn't at a good level.

        R 1 Reply Last reply Reply Quote 0
        • R
          rvirmoors @windg
          last edited by

          @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

          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator
            last edited by

            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 ?

            R 1 Reply Last reply Reply Quote 0
            • R
              rvirmoors @mitu
              last edited by

              @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

              1 Reply Last reply Reply Quote 0
              • S
                sleve_mcdichael @rvirmoors
                last edited by

                @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 the scummvm 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 its emulators.cfg launch command:

                scumm-kids = "bash /home/pi/RetroPie/roms/scumm-kids/+Start\ Scumm-Kids.sh %BASENAME%"
                default = "scumm-kids"
                
                R 1 Reply Last reply Reply Quote 0
                • R
                  rvirmoors @sleve_mcdichael
                  last edited by

                  @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 from

                  and 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

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    sleve_mcdichael @rvirmoors
                    last edited by

                    @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.

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      rvirmoors @sleve_mcdichael
                      last edited by

                      @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 that

                      now to find a way to populate gamelist.xml from the scummvm.ini files...

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        sleve_mcdichael @rvirmoors
                        last edited by

                        @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 that

                        When 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 in es_systems.cfg, where you configured the custom system. If you leave this as <platform>scummvm</platform> and don't change it to scumm-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 original scummvm 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 the scummvm entry for scumm-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 regular scummvm system.

                        S R 2 Replies Last reply Reply Quote 0
                        • S
                          sleve_mcdichael @sleve_mcdichael
                          last edited by sleve_mcdichael

                          @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 the scummvm.ini contents, specifically?

                          1 Reply Last reply Reply Quote 0
                          • R
                            rvirmoors @sleve_mcdichael
                            last edited by rvirmoors

                            @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 :)

                            1 Reply Last reply Reply Quote 1
                            • First post
                              Last post

                            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.