Great Linux and PC Games on Odroid

Full review of different ways to enjoy PC games on ARM devices (Ordoid or Raspberry Pi)

–The article is written by Tobias Schaaf, Odroid Magazine–
–issue July 2017 (original source)–

How to play Linux games on Odroid or Raspberry Pi and any other ARM devices with ExaGea Desktop emulator

Some time ago, I wrote an article about ExaGear and how to set up different x86 applications on your ARM system like Skype or TeamViewer. This time, I want to talk about the new ExaGear Desktop 2.0 and how you can use it to play some nice Windows and Linux games on your ODROID-XU3/ XU4 at a decent speed.

For those who still don’t know about ExaGear, it’s a software package that allows you to run x86 programs on your ARM hardware. It’s a lot faster than using QEMU or emulation in general and therefore has some interesting use cases. The new version 2.0 is aimed towards gaming and is a lot faster than earlier versions.

ExaGear has a new optimized version of Wine (based on Wine 2.0), which improves performance a lot, but doesn’t support OpenGL, at least not on ODROIDs, but more on that later. The overall performance has also increased. So even without OpenGL support working, I thought it would be really interesting to try getting some games to work and see how they perform. Since CPU power is important for this scenario, I used my ODROID-XU3 for best performance and tried adjusting everything that I could in order to get the games running.

Setting up the environment

For this experience, I used my ODROID GameStation Turbo image for the XU3/XU4, which is based on Debian Jessie, and installed a Debian Jessie Guest environment for ExaGear.

It should also work with Ubuntu, but I’ll concentrate on Debian Jessie and will give some hints in case you use Ubuntu instead. I also assume that you already set up the ExaGear environment, and therefore will start right away telling you how to set up your games. For a step-by-step guide to installing ExaGear, please refer to the this guide. I used a lot of CD images, rather than connecting a CD drive to the ODROID, and for this purpose, cdemu, which is a virtual CD drive for mounting CD images, came in very handy. The cdemu package is preinstalled on my ODROID GameStation Turbo image.

Please note that all the steps below should be done within the ExaGear environment, especially the installation of new software like programs and drivers. Installing packages also often requires administrator-level permissions, so it should be safe to assume you run these commands as root inside the ExaGear environment.

Game Sources

Normally I don’t do much advertisement, but I can highly recommend www.gog.com as a source for games. They provide a lot of older and indie games that may not require 3D acceleration, both for Windows and Linux.

The software is optimized for easy installation and has been patched to run on modern operating systems, which is useful for running old Windows 95 or even DOS games using Windows 7.

Their Linux software even comes with a graphical installer that allows you to easily install and setup your software. All of the software is DRM free, so a “NoCD” patches are not required, and they are easy to install on your system.

Linux games

There is nothing much that needs to be prepared under Linux, and games that are supposed to run in x86 Linux should be straightforward to install. Just remember that you don’t have any 3D support, so any game that requires OpenGL won’t work. Even games that are written for OpenGL ES won’t work, but hopefully, this will change some time in the future.

I installed two games from my GoG library as native Linux applications: Gemini Rue (http://bit.ly/2qQrH3q) and Blackwell Deception (http://bit.y/2rw0ofs). Although both games are similar, they act a little bit differently.

GoG Linux installer of Gemini Rue with an easy to use graphical interface

Gemini Rue runs perfectly fine after some configuration, while Blackwell actually requires OpenGL in some cases in order to work but let’s look into this more deeply.

Gemini Rue

Since this game is available as a native Linux game, it runs out of the box nearly perfectly in ExGear. After installing the game through the graphical installer by downloading the game and running the .sh file with the command “bash ” from the terminal, the game starts in the fullscreen mode switching to 640×480 for me, with the picture somewhat distorted.

There is a known issue on the XU3/ XU4 that if you change the resolution from within an application to a resolution that is different than the desktop resolution, your picture ends up misplaced and the part that should be all the way to the right is actually all the way to the left, and the left part is in the middle and the middle part on the right. Luckily for us, this can easily be solved either by changing the screen resolution to 640×480 before starting the game (which I don’t really like) or by just changing the configuration file of the game.

GoG installs all games in the same folder on our system, which makes it quite easy to find at /home/odroid/ GOG Games/Gemini Rue/game/acsetup.cfg. This actually seems to be the same for all games of Wadjet Eye Games (http://bit.ly/2qo37mB), which as a company seems to focus on indie adventure games, which are actually quite nice. It also makes these games rather easy to configure for us.

In this config file, we don’t need to change much. We set the window mode (windowed) from 0 to 1 and I also set the gfxfilter from StdScale2 to StdScale4. With those settings, I got a nice big window and could play the game without any issue. The game ran pretty well for me and I couldn’t find any problems with it.

playing the indie adventure game Gemini Rue on the ODROID-xu3/ xu4 natively under Linux

After the configuration, you only need to double-click the icon on the desktop and the game will launch just fine. If you want, you can even play the game in fullscreen mode. For this, your TV or monitor needs to support 1280×800 resolution (in StdScale4), and you need to switch to that resolution manually before you start the game as well as making sure that you set “windowed” to 0 in the configuration file.

Blackwell Deception

The entire process of installing and configuring Blackwell Deception is pretty much the same, but this game makes use of OpenGL in some cases, and since ODROIDs do not support OpenGL, the game is rendered in MESA Software OpenGL, which is very slow.

Playing Blackwell Deception game on Odroid, Raspberry Pi and other ARMs

In scenes where OpenGL is used a lot, this makes the game drag, but very often when you are inside rooms, the game speed is totally fine. This gives a very mixed experience of ranging between being fully playable in full speed to experiencing scenes where the game plays in slow motion until you exit the scenery.

Reducing the scaling can improve this, and some other games of the Blackwell series are actually working fine by just using 3x scaling, for example, which generally depends on the game. As I mentioned, 3D is not supported, so as long as your games don’t use hardware acceleration (for 3D or special effects), you should be fine.

Windows games

Being able to play Windows games on Linux, especially on an ARM board, is a very interesting thing to do, but requires a little bit of preparation first to get things to work properly.

I’m using an application called “PlayOnLinux” for this, since it allows us to install and configure games individually as well as manage different Wine versions simultaneously. You can also use desktop icons rather than using command line tools to get everything to work. It’s a very powerful tool which I also use on my Linux laptop to get many Windows games to work under Linux.

Wine

There is a lot of misunderstanding going around what “Wine” is. It stands for Wine Is Not an Emulator.

Many people think you only need Wine to run Windows games and programs on any system, but that is totally wrong and often something that is misunderstood by many people. Wine does NOT emulate a Windows PC. It is a rebuild of the Windows API, which means that if a Windows program has a function that says “open a new window”, this function is being translated to Linux, and Linux is told to open a window. This is done for everything a Windows program is doing, like opening a file, drawing a picture, rendering 3D graphics playing sounds, and so on. Since it directly starts a Windows program and just translates the code, the code must actually be able to run on the system itself.

Consequently, the main issue with compatibility is that Windows 32-bit x86 code only runs on a 32-bit x86 processor, and you cannot run an x86 binary on an ARM system. This doesn’t work under Linux either. You cannot just install x86 Skype directly on ARM and expect it to work, since the binary was not made for ARM.

This situation also applies to Wine. If you install Wine on an armhf image, you would need an armhf Windows binary to make use of Wine directly. Since there are no such things as an armhf windows binary, just having Wine on ARM is not enough. That’s why we use ExaGear, which emulates an x86 environment on ARM, and with that, we can now run x86 binaries using x86 Wine.

Installing PlayOnLinux inside ExaGear

The installation is slightly different depending on what OS you use, either Debian or Ubuntu, so here are the steps you need to setup your system:

Debian

# activate all OS repos sed -i “s/main/main contrib nonfree/” /etc/apt/sources.list
# update system apt-get update && apt-get upgrade && apt-get dist-upgrade
# install MS Core Fonts apt-get install ttf-mscorefontsinstaller
# install PlayOnLinux (this will take a long time) apt-get install playonlinux netcat gettext wine

Ubuntu

# activate all OS repos sed -i “s/main/main multiverse restricted/” /etc/apt/sources. list
# update system apt-get update && apt-get upgrade && apt-get dist-upgrade
# install MS Core Fonts wget http://ftp.de.debian.org/ debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb dpkg -i ttf-mscorefonts-installer_3.6_all.deb
# install PlayOnLinux (this will take a long time)

The Wine version actually being installed comes from ExaGear itself, which is optimized for ARM and offers very good performance. If you use a Raspberry Pi instead, you can even use an experimental OpenGL driver and have hardware acceleration. Unfortunately, as mentioned before, that does not work on ODROIDs, and in fact actually, causes some issues that we need to address later. We can still benefit from the much higher CPU power of the XU3/ XU4 compared to the Raspberry Pi, and with that can get some things to work as well on our ODROIDs.

PlayOnLinux

PlayOnLinux is a frontend to manage your “wine bottles”, which are separate instances of Wine environments which you can configure individually and even run on different Wine versions. PlayOnLinux helps you with installing the software and drivers needed to run them, as well as configure this installation individually, such as screen resolutions, wine version, and the Windows API version.

PlayOnLinux on the ODROID for managing Windows games
PlayOnLinux interface

From here, you can install applications easily either by using pre-built scripts or by clicking through some simple menus. I can only suggest using PlayOnLinux rather than directly using Wine. You still have the option to directly using Wine as is anyway, but PlayOnLinux offers additional options for you.

There is some basic stuff that you should know about PlayOnLinux and how to manage your virtual drives.

PlayOnLinux installations

To install a new game or program, you just press the big install button at the top of the menu. A new window will open, and you can select what you want to install. You can install some programs or games from pre-written scripts that guide you through the entire install process very easily, or you can choose to install a non-listed program and select the options manually depending on your needs.

Installing a game from the pre-made scripts
Installing a game through the setup manager

If you install the game from a premade script, you often only need to adjust minor things like the Wine version you want to run this on, because these scripts were made with a particular version of Wine which might be very outdated by now. Therefore, you only have to select a different version of Wine and be done after that (see configuration later). If you install a non-listed program, you have to make a couple of choices about how and what you want to install.

The first question is whether you want to install a program in a new virtual drive (wine bottle) or in a preexisting one. I prefer having individual drives for each game, unless they are tiny games like Bejeweled or something similar, which I normally put in the same virtual drive, at least on my laptop. This makes things easier if you have to configure them differently, and doesn’t mess up other already-working games because you are trying to fix a non-working game.

After you create a new drive or selected an existing one, you are asked if you want to change some options before you start installing your application. With the “Use another version of Wine” option, you can select a different version of Wine that you want to use to run your application. By default, this is always the System version that comes with your OS.

Select the wine configuration and version
Do other configurations before installing a new game

On ExaGear, this is version 2.0 with the ARM optimizations, which should be a very good default. On my laptop, I often change this, since even on Ubuntu 16.04, the default is still version 1.6 of Wine, while currently version 2.7 is already available in PlayOnLinux at the time of this article.

The “Configure Wine” option allows you to set up options for Wine, like the API version such as Windows 95 or Windows XP, or if you want to use a virtual desktop instead of running it directly on the Linux desktop. This is probably a very good thing to do, since many games run at a low resolution, and switching resolution on the fly does not work properly in all cases. To select this option, switch to the Graphics tab and enable the “Emulate a virtual desktop” checkbox. Good options to start with are 800×600 or 1024×768, since these are very common resolutions for older games. 1024×768 is actually nice if you run a 1080p resolution, while 800×600 looks really good in 720p.

Through the “Install some libraries” option, you pre-install libraries that you know are required to run your games properly, like “.Net framework”, “DirectX”, or just “dsound”, which are very commonly needed. To start, I suggest just setting up the virtual desktop and being done with it, since everything else can be done later if necessary.

After you’re done setting up your environment, the system will ask where it should install from. By default, it will scan for a CD that has an AutoStart on it and ask if it should start this. If it can’t find a similar file, it will ask you to select a setup/install file manually. This is where cdemu comes in handy, since it allows you to mount your images from CDs and DVDs from which you can install your games, but also installing GoG setup files should work fine.

The installation of software is straightforward, same as it would be on a Windows machine. After the installation, PlayOnLinux will automatically scan the new virtual drive for all .exe files that it may use to create a shortcut for you on the desktop. You select the start program of the game and give it a name. PlayOnLinux will repeat the process of you selecting additional .exe files for shortcuts until you say you have enough.

After that, you have a shortcut for your games and programs directly on the desktop as well as in PlayOnLinux itself. Since PlayOnLinux is a Python-based frontend, ExaGear does not recognize that it needs to start the links in an x86 environment if you double-click the icons on the desktop. This can easily be fixed by adding “exagear — ” at the beginning of the command line of the icon on your desktop. Just right click it, select properties and type “exagear — “ (without quotes) in front of the Command: line of the desktop shortcut. That’s all that needs to be done to start the games directly from the desktop.

Configurations

After your installation, it will probably be necessary to occasionally configure your games and programs if something is missing, or you just want to try new settings. To do so, select the game or program you want to configure in your PlayOnLinux main window and click on the Configure button on top of the window. A new window will open on the left side, where you can see all of your Virtual Drives and the shortcuts you created in them. You can switch between them by just pressing on either the game or the name of the virtual drive to configure this particular drive. Please note that Configuration changes are always done for the ENTIRE virtual drive, not only for a single program/game in it, which is why I said it’s better to have one virtual drive per game/program.

On the “General” tab, you can create new shortcuts in case you missed one or change your Wine version that you want to use with this virtual drive. On the “Wine” tab you can start certain tools for your Wine environment. “Configure Wine” allows you to set up your Windows API version, or virtual desktop settings. “Registry Editor” allows editing of the Windows registry, and “Command Prompt” opens a cmd shell inside your virtual drive from which you can type your Windows/DOS commands. These are probably the only buttons you need, and you might not even need them at all.

Change the Wine version and make a new shortcut
Configure the Wine environment inside PlayOnLinux

The “Install Components” tab is quite interesting. It allows you to decide what drivers you want to install in your Wine environment. Some might know this from “winetricks”, but this is like a graphical tool for winetricks where you can select what kind of drivers you want to install. If you want to install DirectX, DirectPlay, or even Xvid codecs, they are often just one click away inside the “Install Components” tab.

However, it seems that not all of the components are working 100%. For example, MS Core Fonts and some video codecs install scripts don’t seem to work properly, but it’s hard to find the ones that are not working, since most are.

Install components and drivers needed for your applications
Install all necessary components and drivers

The last tab that’s probably important is the “Miscellaneous” tab from which you can choose to run an .exe file inside the virtual drive environment. This can be useful if you want to install patches for certain games.

Installing additional Wine versions

This is another very important feature and you can reach it on the main screen of PlayOnLinux by clicking on “Tools -> Manage Wine versions”. Here you can install and remove different versions of Wine, since not every program may work with the system version of Wine that comes with ExaGear. Some games that you install via pre-made scripts inside PlayOnLinux will also install their own Wine version, which you might not want to use, so you can just remove them here after you’ve switched to the version that you want to use. Since you now know the basics, you are ready to play Windows games on PlayOnLinux inside ExaGear, running on your ODROIDXU3/XU4 ARM board.

Windows games on Linux

Not every game you want to run under Linux in Wine will work. Even on my laptop, I often struggle to get some games to work. So If you try a game and it fails to run, don’t give up, especially on ODROIDs, where we are very limited due to the missing OpenGL drivers. We have to be a little patient and find the games that do not require hardware acceleration to run properly. To make it easier for you to start, I made a list of games that I got to work, as well as any issues I encountered and how I solved them.

Keep in mind that there are often different versions of games out there. I don’t always use the CD version to get things to work, or you may have to use a “NoCD” patch. If you feel uncomfortable with these solutions, there are other ways as well, but I often choose the easiest solution

Age of Empires

Age of Empires is actually rather easy to get to work.

Age of Empires on Odroid or Raspberry Pi to be launched with ExaGear

If you look around, you will probably quickly find ready-to-use .zip files that you only need to extract and have a fully installed version of Age Of Empires with the expansion pack. What I did is was create a new virtual drive by clicking on “Configure” and then “New” in the lower left corner, created a new drive, gave it the name “AoE1”, and selected “System” as the Wine version.

After that was done, I just extracted the .zip file to $HOME/.PlayOnLinux/ wineprefix/AoE1/drive_c/, then clicked the on the new drive in the configuration screen and selected “Make a new shortcut from the virtual drive”. I chose EMPIRESX.EXE, which is the start binary for the extension pack of Age of Empires 1, and also includes the original missions. I set the name for the desktop shortcut to “Age of Empires” rather than “EMPIRESX”, and altered the desktop icon to start in an ExaGear environment by adding “exagear — “ in front of the command.

Adding ExaGear to the shortcut to start the game right from the desktop

After that, I configured Wine to use a virtual desktop of 1024×768 since it’s the highest resolution the original Age of Empires supports. Under “Install components”, I installed dsound, because, without it, you won’t have any sounds at all. If you don’t want to use .zip files that you extract manually, there’s an installer for Age of Empires I – Gold and the original Age of Empires for PlayOnLinux, which should allow you to install your original CDs. Unfortunately, I wasn’t able to get the music to work on this game (see the “Known issues” section below).

The game comes in three resolutions: 640×480, 800×600 and 1024×768. While 1024×768 is a nice high-resolution, it is rather tiny on a 1080p.

Running Age of Empires in all its glory here in 800x600 on a 720p desktop resolution

TV, which is visually stressful. If you don’t run the game in fullscreen on a 1024×768 desktop, I’d suggest running the game in 800×600 in on a 720p desktop. The picture will fill the most of the screen and is easier on eyes and looks really gorgeous.

Caesar III

Caesar III pretty much works the same as Age of Empires, except that it runs even better. After you install dsound, which seems to be needed for every virtual drive, all of the features are available: sound, music, and video. The game also offers different resolutions, with 1024×768 being the highest, but I think it’s best played in 800×600 on a 720p desktop, since there’s a lot of text to read. I really like the game, and I know there’s an opensource remake, but being able to play the original in all of its glory and with videos, music and everything is just the right experience.

Caesar III run beautifully on Odorid xu3 and Odorid xu4 or any Raspberry Pi

The game can also be found as ready-to-use zip files that you only need to extract, but as previously mentioned, PlayOnLinux offers installers for the CD version as well as the GoG version. Just make sure that you select “System” as the correct Wine version after installation.

Dune 2000

This one was a little bit surprising for me, since this game not only has some very nice effects, lots of explosions and bullet effects and such, but it also offers full motion videos (FMV) which tell the background story.

Dune 2000 runs great on Odorid or Raspberry Pi or any other ARM with ExaGear

Once again, get the zip, or install from CD, although this time I really recommend using the .zip file. I actually had a hard time getting the CD to work, especially with all the music and videos, so you would need a NoCD patch with this. The zip file worked right out of the box, and everything was already included. Nothing extra should be needed except for the dsound component. Originally the game was designed to only run in 640×480, which is rather tiny for ODROIDs. Luckily, there is a high-resolution patcher, which allows for many different resolutions for the game to run on, except that the videos which will still be 640×480. You can download the high-resolution patch from http:// bit.ly/2rVGqIy.

Dune 2000 in high-resolution on the xu3/xu4

Use the option to run an .exe file in the “Miscellaneous” tab of the configuration menu and select the high-resolution patcher. 800×600 or 1024×768 should work fine, and I played the game in 1024×768 since the game does not have much text to read anyway. It’s fun to play, although it feels slightly too slow.

Anno 1602

Anno 1602 really made me fear the words “endless game”, after I played it as a teenager with some friends in multiplayer mode. After endless hours we completely eradicated all enemy parties, all pirates and had all of the islands to ourselves, but, as expected, the endless game did not end!

Anno 1602 on Odorid or Raspberry Pi or any other ARM with ExaGear

This game is a little bit more tricky to get to work. I used my CD from the original German version (not even the Kings Edition). I made an image from my CD and mounted it on the ODROID using cdemu with the following command:

$ cdemu load 0 ANNO1602.cue

I then used the predefined script inside PlayOnLinux to install the game automatically. I changed the Wine version to system and installed dsound as usual. I also set the virtual desktop to 1024×768 and started the game. It seemed to work fine, since I saw the introduction and heard the sound, but the introduction froze at some point, and I needed to use the escape key to skip it. Reading through the information about this game under Wine, I found that the SMACKER32.DLL is not working correctly and needs to be replaced to fix the video issue. I copied the SMACKER32. DLL from Caesar III, and ever since the movies worked fine. When I tried to start the game, I was told I need the CD to play it.

Dune 2000 in high-resolution on the xu3/xu4

This was troublesome, since the guides I found regarding that topic did not work. Although the introduction video was played from the CD, the game itself wouldn’t start. I ended up using a “NoCD” patch, which still required the use of the CD for music and video, but this allowed me to play the game. Even without the CD mounted, the game will still work, just without music and videos

Civilization 3

Civilization 3 is available from GoG at http://bit.ly/2r2Gzts. Installing the GoG game is actually quite easy. Just create a new virtual drive, dsound, virtual desktop, select the setup.exe from GoG, let it install, and you’re done.

Civilization 3 on Odorid or Raspberry Pi or any other ARM with ExaGear

It was a little bit tricky to find the correct binary to start the game, since “Civ3Launcher. exe” was actually not working, but “Civ3Conquests.exe” worked fine for me. The game is fixed to 1024×768 resolution, so it might not work if you run your desktop at 720p. Apparently, the GoG version is the best you can get. Reading through the topic on WineHQ, it can be rather complicated to get this game to work if you have the CD version of it, and involves NoCD patches, copying files, renaming files, making sure files can not be deleted, and so on. It seems to have some minor issues with the sound, which is a known issue for this game, but disabling and re-enabling the sound effects and music should fix this issue, even if just temporarily.

Civilization 3 on Odroid xu3 and xu4 as well as on Raspberry Pi with nice graphics and nice animation

The game runs really well, and you can really see the improvements over the predecessors as well as what made the successors like Civilization 4 so great. You should really try this game!

Call to Power 2

Speaking of predecessors; Call to Power 2 is a “Civilization like” game, and I want to look into it because of some interesting issues and features.

Call to Power 2 on Odroid xu3 and xu4 as well as on Raspberry Pi with nice graphics and nice animation

I have the CD image of this game, and mounting it in cdemu installation is straightforward, although you don’t have the luxury of a pre-made script from PlayOnLinux, but it’s really not needed. Strangely enough, this game does not require dsound installed, but if you install it anyway, it doesn’t harm anything. However, this game requires Microsoft Core Fonts to be installed, and this is where it gets a little tricky. Apparently, the installer of PlayOnLinux for the corefonts is broken, so we need to do it the “old fashioned way”, which means we need to install them via winetricks. To do so, open the configuration menu for the virtual drive, switch to the “Miscellaneous” tab and select “Open a shell”. This will launch a terminal window from within the virtual drive.

The rest is actually quite easy. Just type “winetricks corefonts”, press Enter, wait for the process to finish, then you can close the window. This allows you to start the game. Without the corefonts installed, the game will crash right after the loading screen. All videos are broken at the moment, and I couldn’t find a way to get them to work, but it seems no one has done that yet.

Call to power 2 in 1920x1080 full-screen mode on the ODROID-xu3

Despite the videos, the game works, even if it’s a little less attractive this way. What makes this game interesting is that you can select nearly any resolution you want and yes, that means you can play this game on 1080p full-screen mode on the ODROID-XU3/XU4.

If that’s the way you want to play it, that’s up to you, and running the game in full-screen mode gives you a little bit more extra performance, which is why you can actually use 1920×1080. I haven’t played this game a lot, so I don’t know how it will perform in later stages with bigger armies and huge maps. The fighting animations were quite nice, and it might be interesting to see how far we can push the XU3/XU4 with this game.

One last game

Yes, there is one more game that I want to talk about a little bit more in detail, and I hope that you’re going to like it. The game only runs in 640×480, so using 720p display resolution is probably a good idea unless you want a tiny window on your screen. You need to run the game in window mode or set your display resolution to 640×480 for full-screen-mode. The game is installed from CD or an image mounted via cdemu. You will need the CD/Image whenever you play, but it doesn’t require a NoCD patch.

The game requires dsound as usual, but also needs some extra configuration. Go to the configuration screen of the virtual drive and click on “Display”, then change the Direct Draw Renderer from default to GDI. After that, one more step is needed, since the direct draw rendering library of the game needs to be replaced.

Diablo 1 one of the most iconic games of all times running on the ODROID-xu3/xu4 and RPi

After you install the game, you need to download a fix from http://bit. ly/2r49kIv. Extract the ddraw.dll and wine3d.dll into the game folder, overwriting the ddraw.dll already inside the folder. This will allow you to play the game with music, video, and gameplay working, except for the menu. The menu will be missing some elements, but you should be able to get everything done anyway, like creating a new character, loading a game and so on. You may wonder what this game is, and Figures 22 and 23 will give you an answer to that!

If you never played Diablo before, now is your chance to replay some gaming history right on your ODROID. Find out why this game defined the hack-and-slash RPG genre.

Debugging and tips

On the main window of PlayOnLinux, you can start a game in debug mode by clicking on the Debug text on the left side, next to your game/program list. Or you can select “Tools -> PlayOnLinux debugger” from the menu, which will give some information about why a game did not start or is having issues. This doesn’t mean you will always be able to fix these issues, nor to identify them, but it’s a good place to start investigating.

The message “err:dsound:DSOuND_notifythread Can‘t initialize notification” indicates that you forgot to install dsound

Besides that, there is WineHQ, which is a forum about Windows games on Linux using Wine. If you want to find out why a certain game is not working under Wine, or what drivers you need to install, you should google “WineHQ ” (ex. “winehq diablo”), and you will get more detailed information about the game and how to configure it under Wine.

Known Issues, limitations and last thoughts

Apparently MIDI does not work inside the Exagear environment. It works outside of it, but inside Exagear, no process can access the MIDI device. Maybe that is something that can be fixed in the next release of ExaGear.

As I mentioned at the start of the article, OpenGL doesn’t work, and some games may require it but don’t use it heavily, so you may need to switch your Wine version to something different than “System”, since this version won’t even allow MESA Software GL to be used. Keep in mind that other Wine versions may be a lot slower.

Some games may not work even if they don’t use OpenGL but exhibit other issues. For example, the game Airline Tycoon Evolution runs perfectly fine but has one issue. The fonts do not work in 24 or 32-bit color and you need to switch to 16-bit, but that’s not supported, at least not on the ODROIDXU3/XU4. Although the game would normally work fine, you can’t play it because all of the text is invisible. 16-bit Windows games (Windows 95) might also not work, and they typically crash for me when I try to install them, so you might be further limited in your game choices.

I got a couple of other games to work such as Total Annihilation, but that game has a few issues with the sound. Sometimes it is necessary to turn sounds or music off in order to play some games. Generally, GoG games are the easiest to get to work. They are already DRM-Free and don’t require a NoCD patch, and are pre-optimized to run on modern Windows systems.

There aren’t many games that do not require 3D support. You have probably already seen a pattern in that adventure and strategy games are the most likely to work, and maybe some older RPG games from the Windows 98 era from around 1996-2001 as well.

Trying out games and failing can be a little frustrating, and ExaGear is not very fast with its I/O operations, which means that the access on disk is rather slow, so it takes a while to install, setup, and test your games. Be patient and you will find some really nice Windows games that will work on your ODROID. Hopefully, someday we can use 3D acceleration as well and will have even more games to play.


If you liked the way ExaGear Desktop has been used in this article, push the button below to learn even more!

Learn more about ExaGear Desktop

Also on Eltechs

OwnCloud on Raspberry Pi

Setup OwnCloud on Raspberry Pi

A detailed tutorial on how to install OwnCloud on Raspberry Pi and make your own cloud server any purpose.

Virtual machine for Rasberry Pi - ExaGear Desktop

Raspberry Pi Virtual machine

Choose the best virtual machine for your Raspberry Pi or any other ARM device comparing ExaGear and its alternatives

Install  VPN on Raspberry Pi

Install VPN on Raspberry Pi

Set up VPN on Raspberry Pi and encrypt your connection to protect your privacy. Step-by-step instruction on running PIA VPN Service on Raspberry Pi.

Run Plex Media Server on Raspberry Pi

Run Plex Media Server on Raspberry Pi

Install PC version of PlexServer on your Raspberry Pi using ExaGear Desktop and get access to your media.

Gaming Beyond RetroPie

Gaming Beyond RetroPie

How to run some iconic PC games like Arcanum, Disciples II and Fallout on Raspberry Pi with Exagear Desktop.

How to turn Raspberry Pi into gaming emulator device

Raspberry Pi Gaming emulator

A detailed guide on how to make your Raspberry Pi a powerful gaming emulator and run any iconic and nostalgic PC games on Raspbian (or any other ARM).

ExaGear is registered trademark of Eltechs, Inc. Raspberry Pi is a trademark of the Raspberry Pi Foundation. Other trademarks and product names are the property of their respective owners.