# Let's Play Diablo (devilution port)

**URL:** <https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205>\
**Category:** Games\
**Created:** [January 24, 2020, 1:09pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205 "2020-01-24T13:09:57Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![danie1](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/danie1/32/3776_2.png) [@danie1](https://forum.clockworkpi.com/u/danie1)\
**Post date:** [January 24, 2020, 1:09pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/1 "2020-01-24T13:09:57Z")

</div>

Hi all!  
Many of you might know Diablo 1 back from the days.  
A bit-identical source code version is available from github: diasurgical/devilution  
A newer versions for modern OS is available here: diasurgical/devilutionX

I added platform support for the clockwork pi GameShell and I kindly ask you to run a beta test before I submit a pull request:

What you need is:

- A copy of diablo 1 (get your CD from your parents loft or buy a copy from the download platforms) and copy the diabdat.mpq to ‘/home/cpi/.local/share/diasurgical/devilution/’
- Copy [https://raw.githubusercontent.com/danie1kr/devilutionX/gameshell/Packaging/cpi-gamesh/](https://raw.githubusercontent.com/danie1kr/devilutionX/gameshell/Packaging/cpi-gamesh/) **init**.py to your GameShell under a new folder in /home/cpi/apps/Menu.
- Restart the UI which will make the devilutionX available where you have put it to (in case the UI is stuck at “loading”, simply delete the **init**.py from the sd card).
- Open devilutionX and hit “X” to download the source and compile it. It should take about five minutes. When everything is in place, hit “A” to play.

You can have a look at the key mapping here: [https://github.com/danie1kr/devilutionX/tree/gameshell/Packaging/cpi-gamesh](https://github.com/danie1kr/devilutionX/tree/gameshell/Packaging/cpi-gamesh)

Please tell me if anything is missing and if the key mapping is useful.  
In the mean time, I will tidy up some things and inform you when the pull request has been accepted so we can switch to the diasurgical team.

Happy slaying  
daniel

---

<div class="post-metadata">

**Author:** ![Petrakis](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/petrakis/32/256_2.png) [@Petrakis](https://forum.clockworkpi.com/u/Petrakis)\
**Post date:** [January 24, 2020, 4:11pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/2 "2020-01-24T16:11:31Z")

</div>

Nice, I was lazy to try it and went for the PS1 version of Diablo

I might need to dig up the CD of Diablo I have laying somewhere.

---

<div class="post-metadata">

**Author:** ![adcockm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/adcockm/32/1664_2.png) [@adcockm](https://forum.clockworkpi.com/u/adcockm)\
**Post date:** [January 24, 2020, 11:11pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/3 "2020-01-24T23:11:25Z")

</div>

I really like your installer script! But it currently seems to have a bug…

- I grabbed ` __init__.py` with wget and put it in /home/cpi/apps/Menu/21\_Indie Games/46\_Diablo. It ran fine and looked good as it synced with git and built the sources.
- I restarted the launcher
- Instead of seeing something different in the Diablo directory I mentioned above, instead a new directory is at /home/cpi/apps/Menu/21\_Indie and it contains a different ` __init__.py` and ` __init__.pyc`

I think the space in the “21\_Indie Games” directory is tripping up your script. ☹

![image](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/6/6d4c316986cd8d2aee6a4099a7ae977a30115c5f.png)

---

<div class="post-metadata">

**Author:** ![adcockm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/adcockm/32/1664_2.png) [@adcockm](https://forum.clockworkpi.com/u/adcockm)\
**Post date:** [January 24, 2020, 11:15pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/4 "2020-01-24T23:15:44Z")

</div>

I deleted the ` __init__.py` and ` __init__.pyc` files that were in my 26\_Diablo directory and moved the ones that were in the “21\_Indie” directory there. Seems like that is working (I haven’t copied the game data file over yet, so that’s fine.)

![image](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/5/5ac688a850df34f642f766c418262aeb074496da.png)

It didn’t show the icon though. ☹ I guess it’s still tied to the bogus 21\_Indie directory (which I now deleted).  
 ![image](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/4/43aa58d4b1467ecaf406e46780b298f359ca7590.png)

---

<div class="post-metadata">

**Author:** ![adcockm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/adcockm/32/1664_2.png) [@adcockm](https://forum.clockworkpi.com/u/adcockm)\
**Post date:** [January 24, 2020, 11:32pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/5 "2020-01-24T23:32:13Z")

</div>

Aha! I found the errant icon! It was installed to:  
`/home/cpi/launcher/skin/default/Menu/GameShell/Indie.png`

I just moved it to `/home/cpi/launcher/skin/default/Menu/GameShell/21_Indie Games/Diablo.png`, reloaded the launcher, and now it shows up properly.

![image](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/f/f783ea29cfb82bad21f1f05ac2d5ae702c74e763.png)

So yeah, I’m guessing that space in the name is causing problems in your python script.

Also, I had to create the bold part of the path here, to copy the file in:  
`/home/cpi/.local/share/ **diasurgical/devilution** `

Might be a good idea to have it look for the game data file under `/home/cpi/games/devilution`since

And the file I used from CD was all uppercase, and it only works if it’s lowercase.

Sorry to be nitpicky, but hopefully this will prevent confusion for some other folks.

YAY!  
 ![capture](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/8/8fa81f8d74567bce704523698a2e2697c14ed4ce.png)  
 ![capture-2](https://canada1.discourse-cdn.com/flex029/uploads/clockworkpi/original/2X/1/14d69b41ccc69ef575d116cc5628717993592304.png)

---

<div class="post-metadata">

**Author:** ![mooja3](https://avatars.discourse-cdn.com/v4/letter/m/a6a055/32.png) [@mooja3](https://forum.clockworkpi.com/u/mooja3)\
**Post date:** [January 26, 2020, 1:05am UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/6 "2020-01-26T01:05:12Z")

</div>

First, thanks for your help on this, your post really helped me. But i really wanna know what the visualizer app you’re using is!

---

<div class="post-metadata">

**Author:** ![adcockm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/adcockm/32/1664_2.png) [@adcockm](https://forum.clockworkpi.com/u/adcockm)\
**Post date:** [January 26, 2020, 2:02am UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/7 "2020-01-26T02:02:42Z")

</div>

I took the screenshots with two different things.

The ones inside a window are partial screenshots (using Windows 10’s “Snip”) I took using VNC. I installed the VNC server on my Gameshell, similar to these instructions:

> **[How to Setup X11VNC Server on Ubuntu & LinuxMint – TecAdmin](https://tecadmin.net/setup-x11vnc-server-on-ubuntu-linuxmint/)**
>
> How to Setup X11VNC Server on Ubuntu & LinuxMint. Configure remote desktop software on (x11vnc) on Ubuntu, Debian and LinuxMint operating systems

Since I don’t want it running all the time, I just put this in a script (all on one line, for the second line starting with sudo) and run it when I want to start the server:

> #!/bin/bash  
> sudo x11vnc -auth guess -display :0 -forever -loop -noxdamage -repeat -rfbauth /home/cpi/.vnc/passwd -rfbport 5900 -shared -noshm

Then on Windows I have UltraVNC (Viewer) installed, and I connect to my Gameshell that way.

For the screenshots at the end, I took them on the Gameshell as described here:

> [@Making screenshot of Gameshell](https://forum.clockworkpi.com/t/making-screenshot-of-gameshell/2647/2):
>
> You could try X11 forwarding to your PC and screen capture from there. [[X11 Forwarding or else how to display GameShell's screen on your pc's desktop](https://forum.clockworkpi.com/t/x11-forwarding-or-else-how-to-display-gameshells-screen-on-your-pcs-desktop/2380)]

I made a script that is a little fancier though. With mine I can just run it and it will create the next numbered capture file, and than I can go back and rename it later if I want:

> #!/bin/bash  
> name=capture.png  
> path=$(dirname “$name”)  
> filename=$(basename “$name”)  
> extension=“${filename##_.}"  
> filename="${filename%._}”  
> if [[-e $path/$filename.$extension]] ; then  
> i=2  
> while [[-e $path/$filename-$i.$extension]] ; do  
> let i++  
> done  
> filename=$filename-$i  
> fi  
> target=$path/$filename.$extension  
> export DISPLAY=:0; xwd -root | convert xwd:- $target

I might have had to do a `sudo apt-get install xwd` before I could use it in the script though. I don’t remember if it was already installed or not.

---

<div class="post-metadata">

**Author:** ![danie1](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/danie1/32/3776_2.png) [@danie1](https://forum.clockworkpi.com/u/danie1)\
**Post date:** [January 26, 2020, 6:34pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/8 "2020-01-26T18:34:26Z")

</div>

hi @adcockm,  
thanks for the fast reply. I am really sorry for the trouble.  
I updated the script with some escaping for the paths. You can find the newest script here: [https://raw.githubusercontent.com/danie1kr/devilutionX/gameshell/Packaging/cpi-gamesh/](https://raw.githubusercontent.com/danie1kr/devilutionX/gameshell/Packaging/cpi-gamesh/) **init**.py. Please copy it directly as updating will not work properly.  
Best Regards  
daniel

---

<div class="post-metadata">

**Author:** ![danie1](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/danie1/32/3776_2.png) [@danie1](https://forum.clockworkpi.com/u/danie1)\
**Post date:** [January 29, 2020, 10:39pm UTC](https://forum.clockworkpi.com/t/lets-play-diablo-devilution-port/5205/9 "2020-01-29T22:39:59Z")

</div>

Good news, the pull request has been merged into the main repository.  
Grab a new \_\_init.py\_\_ from [here](https://raw.githubusercontent.com/diasurgical/devilutionX/master/Packaging/cpi-gamesh/ __init__.py), replacing the old one. Then remove the directory from /home/games/devilutionX and restart the UI. Cloning again and updating is necessary for this step. Your save games are savely stored in another location and remain untouched.
