Browse over 10,000 Electronics Projects

Different ways to enjoy PC games on ARM devices (Ordoid or Raspberry Pi)

Different ways to enjoy PC games on ARM devices (Ordoid or Raspberry Pi)
Use your ← → (arrow) keys to browse

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.


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:


# 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


# 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 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.

Use your ← → (arrow) keys to browse