ScummVM on iOS without Jailbreak

TGIF! And therefore I’m going to write about gaming in our blog today. No image processing this time, sorry… ūüėČ

I have played my first computer games in the early 90s. It started with Super Mario Bros. on the NES, then at a friend’s with his C64 and then my dad brought home our first PC. Finally, Lemmings and Indy 3 were my first mouse controlled games. As an avid NES kid, I was fascinated over the better VGA graphics and the fact that Indiana Jones is¬†not a Native American. I did not understand anything since our version of the game was completely in English, but I think playing those games was a good foundation for my English lessons at school.

Although I’m still buying contemporary video games, they typically end up dusted and stay shrink wrapped forever. The same for Steam games, except the dust and the packaging. Every now and then I’m still playing games, but not modern games. Yep, right: I love and play my old retro games.¬†I guess the¬† Lucasfilm/LucasArts classics¬†will always be¬†my favorite games – from Maniac Mansion to¬†Grim Fandango, I played them numerous times until the credits get rolled and although adventure games are not the most versatile games, they will never boring for me.

When getting my¬†first iPod Touch, I immediately jailbreaked it to run¬†a single app “illegal” app: ScummVM, an open source gem that finally brings all the LucasArts, Sierra, Revolution and XYZ adventure classics to any computer-like platform that ever existed, or so…

Since iOS 9 and the latest Xcode major update, we finally can do what Android users can do from time immemorial: Installing homebrewn open source software! The lovely folks at¬†the ScummVM forums have now added support for the newest iOS and updated the build script so that it builds for the iPhone or iPad without any hassle. Because it is still a very technical task to install ScummVM on your iOS device, I’ve put together the following step-by-step guide¬†to show you how to bring back¬†Guybrush & Co on your mobile Apple gadget without jailbreaking it.

The voodoo recipe

For playing Monkey Island on your iOS device you need the following ingredients:

  • One or more iOS devices
  • A computer running Mac OS X El Capitan with administrator privileges
  • Xcode
  • A free Apple Developer account
  • Patience
  • Original game files

Getting Xcode

Before you can start playing games with ScummVM, you first need to install Xcode on your Mac. Xcode is the development tool for Mac OS X and is available for free. To get its latest version, just search for it in the Mac App Store.

By installing Xcode you will also get Git installed on your computer that is required to download the ScummVM source code from the Github repository.

That was an easy one. Let’s see what’s coming up next…

Getting a free Apple Developer account

We need a Apple Developer account to install software on our iOS device. Therefore, go to the Apple Developer Member Center to sign up for a new Apple Developer account. Since you are already an Apple customer, you probably also have an Apple ID: Just enter your Apple ID and sign in, then your account gets activated.

Preparing the Xcode project and getting the code

The next step is by courtesy of ScummVM team member bSr43. As mentioned in the dev forums, bSr43 coded the following shell script to download the source code, its dependencies and create the Xcode project automagically. Big up for the script!

Copy the code snippet above, fire up your editor of choice (TextWrangler or TextEdit for example) to create a new file and paste the code into it. Then save the file as¬†prepare_workspace.sh¬†into your folder of choice. This folder will be your project folder where all ScummVM source code gets downloaded to. Therefore, I’m creating a new folder in my home folder with finder called scummvm.¬†After you have saved the script in the newly created folder, open¬†Terminal.

After you have started Terminal, navigate to the folder you have saved the script into (if you need help read the following article). Then copy the following line into the Terminal window and hit return:

The first command chmod marks the shell script as executable, the second command after the semicolon runs our shell script.

After hitting enter, you will need to wait for a few minutes. The script will download all sources, dependencies and create the Xcode project and configuration for you. As soon as the script has finished its work, Xcode gets opened with your very own ScummVM source code.

Compiling and deploying ScummVM to your iOS device

Now we need to adjust a few more settings to get ready. First, I’m clicking the scummvm project in the left tree (1) to open the project settings. Next¬†the Bundle Identifier (2)¬†and the¬†Provisioning Profile (3) need to be configured.

Setting the ScummVM project settings in Xcode
Setting the ScummVM project settings in Xcode

The bundle identifier needs to be an individual ID. I’m choosing at.pmlabs.scummvm¬†for my personal iOS deployment build. After setting the bundle identifier, I’m clicking the¬†Fix Issue¬†button to use¬†my developer account for signing. The following dialog gets opened by Xcode then:

Adding our Apple Developer ID to sign the app for deployment
Adding our Apple Developer ID to sign the app for deployment

Click the Add button and enter the Apple ID we¬†have used before when logging into the Developer Center. The Apple ID gets added then to Xcode’s Accounts tab in the settings. Select your new account and click View Details…¬†to display your¬†Signing Identities.

Opening the Signing Identities window
Opening the Signing Identities window

This screens provides you to setup a development provisioning profile for iOS. To create the certificate, just click the Create button next to iOS Development:

Creating the development certificate
Creating the development certificate

Once Xcode has completed fetching the certificate, click Done.

Now we are back for fixing our issue as we promised Xcode before. Just select the Development Team that should be used for provisioning and click Choose. The issue fades away and we can start building, deploying and running ScummVM on our iPhone or iPad.

Therefore we need to plug our iDevice into the Mac, selecting the device and press Cmd+R to start building.

Plug your device in and select it before start building
Plug your device in and select it before start building

Time for a short coffee break!

Because the build process takes a few moments, your iPhone or iPad will probably lock the screen in the meanwhile. Xcode will then prompt you to unlock your phone or tablet to start installing the app. And there it is:

ScummVM on an iPhone without Jailbreak!
ScummVM on an iPhone without Jailbreak!

Hm, but Xcode just displayed a security error?! Yep, there is one more thing: Open your mobile device’s Settings, tap¬†General¬†and then¬†Profiles & Device Management. Tap¬†the Apple ID we previously used for deployment. You will see a short list with ScummVM in it and above an entry that says Trust¬†[Apple ID]. Tap it and a popup opens that asks you again if you really really sure. Just tap¬†Trust¬†once again to keep Apple happy.

Voil√°! Just try to open the app again you will be welcomed by the ScummVM launch¬†screen! ūüôā

It works! :)
It works! ūüôā

Copying ScummVM compatible games onto your iOS device

Copying games onto your tablet or smartphone is done via iTunes. Therefore, simply open iTunes and select your iDevice. Immediately afterwards we are selecting the Apps entry and scroll down to the bottom to another section called File Sharing. In this section you can upload or download files directly into an installed app. Select ScummVM and then click Add to select files or drag & drop them from Finder. I do not make more screenshots here as the whole dialog in iTunes is somehow messed up because I have installed too much apps on my iPhone.

Well hidden on the very bottom of the Apps section you will find the File Sharing feature of iTunes
Well hidden on the very bottom of the Apps section you will find the File Sharing feature of iTunes

If you need to know which files you need to copy for the favorite games of your childhood, just follow this guide here: http://wiki.scummvm.org/index.php/Datafiles

Recap

I started to replay The Curse of Monkey Island on my iPad and I’m quite happy with it. ūüôā So no need for half-assed remakes anymore! You can play adventure games from the golden era again with the iPad as the perfect platform for Point & Click.

I hope this tutorial was not too technical, since it was also new to me as a software developer, who has not shipped software for an Apple device for ten years.

I wish you hours of fun with ScummVM on your iDevice and a nice weekend! ūüôā

Cheers,

Phil