clockworkpi

Running ScummVM games on RetroArch

I have successfully managed to add a valid ScummVM core to RetroArch on the GameShell, seeing that just dowloading it from the RetroArch Cores menu didn’t work.

Inspired by sbielmann’s advice of trying to compile the 4do-libretro core to see if it works (on this post) and having succeeded at that, I tried the same with scummvm-libretro and it worked!

I’m sharing here the compiled core if you want to try and also the steps to compile it yourself, if it doesn’t work for you.

Pre-compiled scummvm-libretro.so file

Here is the compiled file you have to put on you GameShell’s core folder: scummvm-libretro.so. It should work, but please do tell me if it works, would love the feedback.

Compile it yourself

Here are the steps if you want to try it too (I assume you know how to connect to the GameShell through SSH)

1. Download the ScummVM libretro core

You can get it from https://github.com/libretro/scummvm with this command:

wget https://github.com/libretro/scummvm/archive/master.zip

2. Unzip the file

unzip master.zip

3. Open the folder

cd scummvm-master/backends/platform/libretro/build

4. Compile!

make

And now wait. It took some hours, I don’t know how much because I left it running.

5. Copy it to your cores folder

Mine is ~/.config/retroarch/cores, the RetroArch default I think.

cp scummvm-libretro.so ~/.config/retroarch/cores/

That’s it! I hope this helps you.
Keep in mind that many games aren’t supposed to be run at a small resolution like the GameShell. The first Monkey Island is perfect and that’s what I want to play :slight_smile:

Loading ScummVM and games

Just put the uncompressed files for the games on a folder, for example ~/games/scummvm/bass/ is the folder where I put the files for Beneath a Steel Sky, downloaded from the ScummVM official page.

To load the ScummVM core you should open RetroArch, go to Load Core and select scummvm-libretro.so. Then on the RetroArch main menu select Start Core, that should take you to the ScummVM screen where you can add games as you do on any other ScummVM platform.

The font is super small for the screen but it’s doable. Select Add Game, navigate to the folder where you put the game and press the Start button, then OK.

RetroArch performance

The sound is a bit choppy and the speed is not 100% what it should be but there’s an option that seems to fix it, although I have no idea how it works.

On the RetroArch menu, with the core Loaded and Started, go to the Quick Menu, then Options. There’s an option called Speed Hack which is disabled. Enable it and quit RetroArch and go back again. Now it should work great, full speed, good sound!

At least it works on mine, tell me your experiences!

4 Likes

got monkey.zip, and scummvm. Do I need a bios?

I’ve tried your compiled core, but it just bombs out and returns to the main menu. Of course, that could be because of the format of the games I’ve tried with it. I’m trying to compile the core for myself now, but as you say it’s going to take hours!

While I wait for my own version to build, I downloaded the Freeware Floppy version of Beneath a Steel Sky from https://www.scummvm.org/games/, and tried pointing RetroArch to it as both a zip file and extracted folder, and it just didn’t take to it. :frowning:

@bitdweller Are you able to provide a bit more info about how you ran Monkey Island? Which folder did you put it into, which menu options did you select within RetroArch? Did you load the core first or the game? Any more info would be greatly appreciated.

I put the games on a “regular” folder, uncompressed: inside ~/games/scummvm/monkey/ I have all the files from the regular game, nothing special. Beneath a Steel Sky works great, downloaded from the official ScummVM website.

You need to open RetroArch, then Load Core, select scummvm-libretro.so and then on the main menu of RetroArch, select Start Core. This should show the ScummVM interface and here you can add the games.

Maybe I can add a little more info later. It worked with the settings I already had set in RetroArch, although the sound was choppy. I started hanging some things and got better performance. I don’t have the GameShell now but will come back when I can.

I have added a little more info on the main post on how to run and optimize games.

You may speed up things by using the jobs option when invoking make, for example:

make -j 4

would mean to work with 4 jobs in parallel. That suits GS with it’s 4 cores. However it eats up a lot of memory. In some cases make will run out of memory and stop. If so 3, or even 2 jobs only, will be better suited.

ScummVM for libretro is pre-configured to compile virtually every engine, that is why it takes long. Turning off the unneeded ones will also speed up the compilation, and reduce the size of the libretro core.

I usually also work with make put into the background, or using screen to have a virtual, detachable terminal session. I did start ScummVM compilation in a screen, told GS to shutdown once the compilation is done, then ended my ssh session on the PC, finally turned off wifi on GS to reduce battery usage. Put my GS on the table and left home. So when I return from work I will see how long it took with 4 jobs and ScummVM will be ready.

That’s a good tip, I know nothing about compiling :slight_smile:

Hm. Can’t get it to work. If I use the regular core that RetroArch downloads, I can’t select anything on the ScummVM start screen. If I use the core @bitdweller provided, it doesn’t start it all. Did I miss something?

@bitdweller
Compiling took 1 hour with 4 jobs. For easier configuration and direct start of games instead of having to use that tiny menu, have a look at:

However I must admit that launching games directly does not yet work, guess I am doing it wrong. Editing the scummvm.ini file manually is however easy and better for my eyes :slight_smile:

@nouty
Can you load games one ScummVM start screen is shown ? Have you uploaded some to your GS ?

Yes, I have uploaded BASS, but I can’t figure out, how to add games on the main ScummVM screen. Thought it may be the core and loaded the core provided here onto my GameShell - now it doesn’t load at all.

All my games are at my games folder… I even managed (with your guide, I think) to get AMIGA games loaded and now I fail with this one. :smiley:

@nouty first ensure that your ScummVM is starting. Whether you downloaded the core in RetroArch, or followed @bitdweller his guide, the core is probably located in /home/cpi/.config/retroarch/cores. That is the default location for downloads, and also the place where @bitdweller explained to put it. The name should be scummvm_libretro.so, @bitdweller wrote scummvm-libretro.so, however the downloadable core and the compiled one will both be scummvm_libretro.so.

Either you launch it manually by loading the core in RetroArch or you create a menu entry in GS launcher like this:

echo "retroarch -L /home/cpi/.config/retroarch/cores/scummvm_libretro.so" > /home/cpi/apps/launcher/Menu/GameShell/ScummVM.sh

As usual, start RetroArch and quit it again to reload the menu contents in launcher. Now start ScummVM by selecting the new menu entry.

You should now see this: ScummVM Main Screen, however so tiny, I was barely able to read the button labels. You have to use the D-Pad to move the mouse pointer, a tiny cross hair, to move it to the Add Game… button, and click on it. I think on my GS it was A or B. Then as @bitdweller wrote, navigate to your games directory. BASS, where ever it is located, probably in /home/cpi/games/scummvm/. I think there is an Ok button to confirm that, again, I am unable to read it. Finally click on Start button, and probably once more Ok, the game should start.

I really struggled to navigate the main scummvm home screen, I couldn’t see the names of the folders so wasn’t able to point it to the folder where I put the games. Knowing where it starts would help because then I could just put my games in a sub-folder of that. Also is it me or does up and down on the D-pad simultaneously move the cursor and the selected folder? That seemed to make things harder as well. It certainly is a shame we can’t get it to load a game directly from a .sh script.

@ManlyStump, well you can use a simple .sh script, see my post from yesterday. Well at least it is documented to work that way, however I was not yet able to get it running :slight_smile: Will take some more time to check out how to make it work.

Yes, the fact you said you couldn’t get it to run is why I made that comment :wink:

EDIT: On the bright side, I’ve now got it to load Monkey Island 1!

I bear good news! I managed to run games from the command line, so we can make pretty buttons on the launcher :slight_smile:

According to the Libretro documentation, you can make a file *.scummv on the game folder with just one word inside: the game id. This makes it possible to use RetroArch Load core feature to launch the game, which makes it possible to load any ScummVM game like we do the other games :slight_smile:

Follow the documentation details here: https://docs.libretro.com/library/scummvm/#running-a-game

Now you can make a BASS.sh with this:
retroarch -L ~/.config/retroarch/cores/scummvm_libretro.so ~/games/scummvm/sky/sky.scummvm (on mobile, sorry if there any error)

1 Like

Does monkey island work fine for you?

I’m at work currently, had a fiddle around earlier at lunch. I got it to load up, I tried every button to try and get it to skip the intro titles to no avail and then quit out of it! I’m sure I’ll try it again this evening, hopefully in combination with your advice about launching from script!

@bitdweller thank you ! I placed the scummvm files at the wrong place. Indiana Jones 3 and Fate of Atlantis, Monkey 1 and 2 all working fine here.

What am I doing wrong? Please, need help.
My example Day of the Tentacle:

  • Game is in /home/cpi/games/SCUMMVM/Day of the Tentacle/
  • .scummvm is in /home/cpi/games/SCUMMVM/Day of the Tentacle/Day of the Tentacle.scummvm (text inside is “tentacle”)
  • .sh is in /home/cpi/launcher/Menu/GameShell/22_SCUMMVM/Tentacle.sh (inside “retroarch -L /home/cpi/apps/emulators/scummvm_libretro.so /home/cpi/games/SCUMMVM/Day of the Tentacle/Day of the Tentacle.scummvm”)
  • scummvm_libretro.so is in /home/cpi/apps/emulators

Question is why shortcut leads me not to game but to scummvm launcher? Is it how it works? Or I made a mistake?
Thanks in advance!