There’s a lot of chatter happening on reddit with regards to Diablo Immortal for iOS and no release date in sight. Today I’m going to alleviate the pain of waiting for it with a simple and quick tutorial on how to get and play Diablo 1 on your favorite iOS Device. The guide is extremely easy and simple to follow and doesn’t require a developer account. Let’s get to it and find out How To Play Diablo 1 on your iPad.
In this article we’ll cover how to play Diablo 1 on your iPad in fullscreen. We’ll start by going over a list of requirements (in terms of peripherals) and network connection and then move on towards getting the game running. In the end we’ll look at self-hosted local solutions in order to not have to use a network connection.
Hardware and peripheral requirements for Diablo 1 on the iPad
|Keyboard||YES in order to name your character|
|Mouse/Touchpad||NO but it makes your life easier|
|Network Connection||YES, unless you self host the game|
|Diablo The Game||NO if you want to try out the self hosted version|
First thing first I highly recommend is having at least a keyboard accessory for your iPad. If you own a Magic Keyboard for your iPad Air 4 or Pro you’re golden. Any kind of Bluetooth keyboard will do with the caveat being that you’ll get bored of touching and tapping the screen constantly with your hands.
A mouse or touchpad could be an amazing addition for you. Another way is to use a Mac that has Universal Control enabled. This way you can control the iPad from the Mac. This is the setup that I’m using and wrote about in the article titled “5 games to play with Universal Control“.
Now, unless you go the self-hosted route and have the game running locally – you’ll need access to an internet connection in order to access the game.
The last bit is the full game itself if you want to access all of the content. Otherwise, you can play the shareware version. If you want to get access to the full version I recommend getting it from GOG (this is not an affiliate link).
How to play Diablo on the iPad – easy method
In order to play Diablo on your iPad you’ll need to access Diablo Web, a WebAssembly port of the original game inside of an emulated environment. Diablo Web gives you access to the shareware version of the game but also allows you to upload the main .mpq file in order to play the full version.
Note: you can only get the DIABDAT.MPQ by purchasing the full game.
You can access this github page in order to load the game in your browser. Once loaded tap or click on the “Play Shareware Version“.
And technically you can now play the shareware (or full) version of the game straight in your web browser. However, as you can see, a ton of screen space is taken by the browser and there’s no button to make the game full screen. Let’s fix that, shall we?
In Safari click the share icon next to the address bar, scroll down and select Add To Home Screen. This will add the web page to your iPad’s home screen (or desktop).
This step serves two purposes.
- It adds a convenient icon to access the game without having to open the web browser and type/look for the address
- It launches the website as if it were an app, in fullscreen and with no address bar taking up any space.
There is no step 3.
Why do I find this funny? It’s a throwback to an old Apple iMac commercial that I invite you to watch.
How to play Diablo on the iPad – custom app wrapper
[no internet connection required to play]
[apple developer account needed to build the final app, or a HTTP Server running locally on your iPad]
Having access to Diablo on the iPad is fine and dandy while you’re trying to play the shareware version or while having access to an internet connection. However, what options do you have to play the game while offline?
We can build the game ourselves and spit it out as a build that we can then run from a local iPad webserver.
Head on over to your Mac or PC and open up a terminal to download the source files.
We’re not going to use the main Diablo Web branch as I haven’t managed to get the game to completely build with the main repository.
Instead we’ll use this branch which should work. For testing I used a separate branch but the maintainer emailed me to unlink it for privacy reasons.
Open up a terminal and do:
git clone https://github.com/d07RiV/diabloweb cd diabloweb
Remove the package-lock.json file form the terminal and them test out the version to see if it runs
rm -rf node_modules package-lock.json && npm install && npm start
If everything goes well, node should kick in, start a server and open up the game in your default web browser.
To prepare for deployment all we need to do is:
npm run-script build
When everything is done you should be able to find a new folder called build inside the diabloweb folder.
The content of that build folder can then be uploaded to a web server or packaged with a browser wrapper and turned into an app. The only caveat in this situation is that I am not aware of any publicly available browser wrappers that also serve files as an HTTP server and don’t just display it.
The solution that I am using is a custom solution that I wrote for a client so my XCode/Unity project cannot be shared for this purpose. There are a handful of HTTP servers + built-in browser example code on the internet and quite a few web servers directly on the App Store.
If you’re going the HTTP Server and Browser bundle route, you will need an Apple Developer account in order to build the final app.
If you end up being lucky with a good HTTP Server software from the App Store, then things should be pretty easy and smooth.
Where To Next?
Assuming you liked this article, the setup and you’re thinking of getting an Apple Silicon Mac then my guide on “How to play iOS Games on a Mac” might be relevant for you. If you have an iPad and want to find some premium quality retro games I have you covered with another article called “Can You Play Retro Games On The iPad“.
If you like this kind of articles you can either follow us on twitter to stay updated or subscribe to our mailing list, below! We promise to not spam you and you can unsubscribe at any time.