How to play video games on unnamed chinese single-board computer

← Home

It also runs on the more familiar amd64 machines

  1. Minimal requirements
  2. TTY Only
    1. NetHack
    2. Cataclysm DDA / BN
  3. Runs on old machines
    1. FreeDOOM / DOOM / DOOM ][
    2. Quake 1
    3. Half-Life
    4. OpenTTD (Transport Tycoon Deluxe)
  4. Require modern machine
    1. S.T.A.L.K.E.R. Call of Pripyat
    2. Taisei Project
    3. Minecraft Luanti (formerly Minetest) + VoxeLibre
    4. DOOM 3

Minimal requirements

In order for your machine to be able to play video games, it is assumed that it meets at least the following criteria:

All examples were tested on OrangePi 5 Pro (720p60) and my main amd64 workstation. OPi runs Ubuntu 24.04 you can grab here.

Note: MangoHud does not capture GPU load on OrangePi 5 Pro (always "GPU: 0%"). That's why there is no information about this in the screenshots


TTY Only

NetHack

About

NetHack is a single player dungeon exploration game that runs on a wide variety of computer systems, with a variety of graphical and text interfaces all using the same game engine. Unlike many other Dungeons & Dragons-inspired games, the emphasis in NetHack is on discovering the detail of the dungeon and not simply killing everything in sight - in fact, killing everything in sight is a good way to die quickly. Each game presents a different landscape - the random number generator provides an essentially unlimited number of variations of the dungeon and its denizens to be discovered by the player in one of a number of characters: you can pick your race, your role, and your gender.

Screenshots

nethack nethack

How to build and run

Luckily, you can just download it from the repository:

apt install nethack-console
nethack

Cataclysm DDA / BN

About

Cataclysm: Bright Nights is a roguelike with sci-fi elements set in a post-apocalyptic world.

Screenshots

cataclysm cataclysm cataclysm

How to build and run

# gettext needed for localization
apt install git make gcc g++ libncurses5-dev libncursesw5-dev build-essential libsqlite3-dev zlib1g-dev gettext
git clone https://github.com/cataclysmbnteam/Cataclysm-BN.git
cd Cataclysm-BN/
# change "ru_RU" to language you want or remove this option completely
make -j`nproc` RELEASE=1 LTO=1 LANGUAGES="ru_RU" TILES=0 SOUND=0 ASTYLE=0 RUNTESTS=0 LINTJSON=0 SDL=0
./cataclysm-bn

Runs on old machines

FreeDOOM / DOOM / DOOM ][

About

Crispy Doom is a source port that aims to provide a faithful Doom gaming experience while also featuring some user-requested improvements and enhancements. It is forked off of Chocolate Doom to take advantage of its free and open-source code base, portability, accuracy and compatibility with Vanilla Doom.
absolutely proprietary WARNING: WAD-files (except FreeDOOM) are not free open-source software. To play this game you need the proprietary assets from the original copy.

Screenshots

doom

FreeDOOM

doom

The Ultimate Doom

doom

Doom II: Hell on Earth

How to build and run

Luckily, you can just download it from the repository:

apt install crispy-doom
# FreeDOOM
crispy-doom
# The Ultimate Doom
crispy-doom -iwad UDOOM.WAD
# Doom II: Hell on Earth
crispy-doom -iwad DOOM2.WAD

Quake 1

absolutely proprietary WARNING: This game is not free open-source software. To play this game you need the proprietary assets from the original copy.

Screenshots

quake1 quake1

How to build

First install engine from repo:

apt install darkplaces
mkdir -p ~/.darkplaces/id1/

Then copy *.PAK files from original game distribution:

GAME_DIR="/path/to/quake1/"
cp "$GAME_DIR/Id3/*.PAK" ~/.darkplaces/id1/
darkplaces

Half-Life

About

Half-Life is a game that blends action and adventure with award-winning technology to create a realistic world. It was named Game of the Year by over 50 publications and has a multiplayer mode that lets you play online.
Xash3D FWGS is a game engine, aimed to provide compatibility with Half-Life Engine and extend it, as well as to give game developers well known workflow.
Xash3D FWGS is a heavily modified fork of an original Xash3D Engine by Unkle Mike.
absolutely proprietary WARNING: This game is not free open-source software. To play this game you need the proprietary assets from the original copy.

Screenshots

hl hl hl

How to build

First you need to copy valve/ directory from original game distribution to your $XASH_DIR directory.

apt install git build-essential python libsdl2-dev libfreetype6-dev libopus-dev libbz2-dev libvorbis-dev libopusfile-dev libogg-dev
git clone --recurse-submodules https://github.com/FWGS/xash3d-fwgs
cd xash3d-fwgs/
# Change prefix if needed
XASH_DIR="~/xash3d"
./waf configure -8 --prefix="$XASH_DIR"
./waf build
cd ..
git clone --recurse-submodules https://github.com/FWGS/hlsdk-portable
cd hlsdk-portable/
mkdir build
cd build
# Consult README for ON/OFF options
cmake .. -DGOLDSOURCE_SUPPORT=OFF -D64BIT=ON -DCROWBAR_IDLE_ANIM=ON -DCROWBAR_FIX_RAPID_CROWBAR=ON -DUSE_VGUI=ON
make -j`nproc`
cp ./cl_dll/client_arm64.so "$XASH_DIR/valve/cl_dlls/"
# Check *.so name for your architecture
cp ./dlls/hl_arm64.so "$XASH_DIR/valve/dlls/"
cd "$XASH_DIR"
./xash3d

OpenTTD (Transport Tycoon Deluxe)

About

OpenTTD is an open source simulation game based upon the popular Microprose game "Transport Tycoon Deluxe", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.

Screenshots

openttd openttd

How to build

Just install it from repo:

apt install openttd
openttd

Require modern machine

S.T.A.L.K.E.R. Call of Pripyat

About

S.T.A.L.K.E.R.: Call of Pripyat is a first-person shooter survival horror video game developed by GSC Game World for Microsoft Windows.
OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.
absolutely proprietary WARNING: This game is not free open-source software. To play this game you need the proprietary assets from the original copy.

Screenshots

scop

Intro videos always lags even on modern GPUs

scop scop scop

It stutters on shooting

scop scop

NPCs eat up performance

scop

How to build and run

First we need to build an engine:

apt install git cmake make libopenal-dev libcrypto++-dev libogg-dev libtheora-dev libvorbis-dev libsdl2-dev liblzo2-dev libjpeg-dev libncurses5-dev gcc g++ dpkg-dev libmimalloc-dev
git clone https://github.com/OpenXRay/xray-16.git --recurse-submodules
mkdir xray-16/bin/
cd xray-16/bin/
CFLAGS="-march=native" CXXFLAGS="-march=native" cmake .. -DCMAKE_BUILD_TYPE=Release
make -j`nproc`

Now we need resources from the original game distribution to build native version. I hope you have a licensed version from Steam.

STEAM_DIR=~/.local/share/Steam/steamapps/common/Stalker\ Call\ of\ Pripyat
XRAY_DIR=~/.local/share/GSC\ Game\ World/S.T.A.L.K.E.R.\ -\ Call\ of\ Pripyat
mkdir -p "$XRAY_DIR"
ln -s "$STEAM_DIR/levels" "$XRAY_DIR/levels"
ln -s "$STEAM_DIR/localization" "$XRAY_DIR/localization"
ln -s "$STEAM_DIR/mp" "$XRAY_DIR/mp"
ln -s "$STEAM_DIR/patches" "$XRAY_DIR/patches"
ln -s "$STEAM_DIR/resources" "$XRAY_DIR/resources"
ln -s ./`uname -p`/Release/ "$XRAY_DIR/bin"
cp -r ../res/gamedata/ "$XRAY_DIR/gamedata"
cp ../res/fsgame.ltx "$XRAY_DIR/fsgame.ltx"

Game is ready to run. Remove MESA_GL_VERSION_OVERRIDE and MESA_GLSL_VERSION_OVERRIDE if your GPU supports OpenGL 4.1.

cd "$XRAY_DIR"
MESA_GL_VERSION_OVERRIDE=4.1 MESA_GLSL_VERSION_OVERRIDE=410 LD_LIBRARY_PATH="./bin:$LD_LIBRARY_PATH" ./bin/xr_3da -fsltx ./fsgame.ltx

Conclusion

At minimum settings, the game produces an unstable 40 frames per second. Each NPC eats up a few more frames. Reducing resolution will help. The game is playable, but it will not be the most pleasant experience.

Taisei Project

About

Taisei Project is an open source fan-game set in the world of Tōhō Project. It is a top-down vertical-scrolling curtain fire shooting game (STG), also known as a "bullet hell" or "danmaku." STGs are fast-paced games focused around pattern recognition and mastery through practice.

Screenshots

taisei taisei taisei taisei

How to build and run

In addition to the build-time dependenices, you will also need this spirv-cross and shaderc (and meson to build taisei itself). The build system can automatically download it during the build but the disto versions are better on OPi. Other dependencies will be downloaded by meson.

apt install git gcc g++ spirv-cross libshaderc-dev meson python3-zstandard libsdl2-dev libcglm-dev libpng-dev libwebp-dev libzip-dev libzstd-dev libfreetype-dev libopusfile-dev zlib1g-dev
git clone --recurse-submodules https://github.com/taisei-project/taisei
cd taisei/
# or just "meson setup build/" if your GPU supports OpenGL 3.3
meson setup build/ -Dr_gles30=enabled -Dr_default=gles30 -Dshader_transpiler=enabled
meson compile -C build/
meson install -C build/
taisei --render gles30

You can turn off "Anti-aliasing", "Particle effect" and "Postprocessing effects" as they are very heavy. Also try changing "Frame Skip" if FPS is unstable

Conclusion

Works great on minimal settings.

Minecraft Luanti (formerly Minetest) + VoxeLibre

About

Luanti (formerly Minetest) is an open source voxel game-creation platform with easy modding and game creation.
VoxeLibre is a survival sandbox game for Luanti. Survive, gather, hunt, mine for ores, build, explore, and do much more. Inspired by Minecraft, pushing beyond.

Screenshots

luanti luanti luanti

How to build

apt install git g++ make libc6-dev cmake libpng-dev libjpeg-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev gettext libsdl2-dev
git clone https://github.com/luanti-org/luanti
cd luanti
cmake . -DRUN_IN_PLACE=TRUE -DCMAKE_BUILD_TYPE=Release
make -j`nproc`
./bin/luanti

Conclusion

Quite playable, but may be a bit of a pain during combat or parkour.

DOOM 3

About

Doom 3 is a 2004 first-person shooter game developed by id Software and published by Activision.
dhewm3 is a source port of the original Doom3 (not Doom3 BFG, for that you may want to try RBDoom3BFG). It’s known to work on Windows, Linux, macOS, FreeBSD, OpenBSD and AROS, but it should work on (or be easily portable to) any system that supports OpenGL 1.4 with ARB shaders, SDL and OpenAL. Compared to the original version of Doom3, dhewm3 has many bugfixes, supports EAX-like sound effects on all operating systems and hardware (via OpenAL Softs EFX support), has much better support for widescreen resolutions and has 64bit support.
absolutely proprietary WARNING: This game is not free open-source software. To play this game you need the proprietary assets from the original copy.

Screenshots

doom3 doom3

Scenes without shadows look pretty bad

doom3 doom3 doom3 doom3

The number of NPCs has almost no effect on the performance...

doom3

...but their effects

How to build

apt install git cmake build-essential libsdl2-dev libopenal-dev libcurl4-openssl-dev
git clone https://github.com/dhewm/dhewm3
cd dhewm3/
mkdir build
cd build/
cmake ../neo/ -DCMAKE_BUILD_TYPE=Release
make -j`nproc`
./dhewm3 +set fs_basepath /path/to/doom3/dist

Conclusion

At minimum graphics settings the game almost always outputs 720p60. In some heavy moments FPS may decrease, but it has almost no effect on the experience.


Last update: