How-to compile games on e2k: различия между версиями
Строка 168: | Строка 168: | ||
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. | cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. | ||
make -j8 | make -j8 | ||
==OGRE== | ==OGRE== |
Версия от 22:34, 7 декабря 2020
MangoHud
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.
- GitHub
apt-get install mako mako3
git clone --recursive https://github.com/flightlessmango/MangoHud.git cd MangoHud
переключение на стабильную версию 0.6.1 (29 Nov 2020) - 079f67a7295a47eb2ca98a79f95ecf22dd17a5e1 (опционально)
cd MangoHud && git checkout 079f67a7295a47eb2ca98a79f95ecf22dd17a5e1
выключаем NV-CONTROL X extension (libxnvctrl, контроль за параметрами драйвера NVIDIA X) и NVIDIA Management Library (NVML)
./build.sh build -Dwith_xnvctrl=disabled -Dwith_nvml=disabled
установка в ОС (опционально)
./build.sh install
создание deb пакета при помощи checkinstall (опционально)
checkinstall --type=debian --install=no --pkgname=mangohud --pkgversion=0.6.1 --nodoc --strip --stripso --gzman ./build.sh install
запуск OpenGL:
MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load,font_size=32 mangohud ./game_bin
MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load,gpu_load_change,`gpu_load_color=0000FF,00FFFF,FF00FF`,`gpu_load_value=50,90`,cpu_load_change,`cpu_load_color=0000FF,00FFFF,FF00FF`,`cpu_load_value=50,90`,font_size=32 mangohud ./game_bin
RBDOOM-3-BFG
Doom 3 BFG Edition with soft shadows, cleaned up source, Linux and 64 bit Support.
- GitHub
git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git cd RBDOOM-3-BFG && mkdir build && cd build
OpenGL (без Intel Intrinsics):
cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF ../neo
или
/neo/cmake-linux-release-nosimd.sh
OpenGL (с Intel Intrinsics):
cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DFFMPEG=OFF -DBINKDEC=ON ../neo
или
/neo/cmake-linux-release.sh
Vulkan (без Intel Intrinsics):
cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF ../neo
или
/neo/cmake-linux-nvidia-jetson-vulkan-release.sh
Vulkan (с Intel Intrinsics):
cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF ../neo
или
/neo/cmake-linux-vulkan-release.sh
Компилирование
make -j8
DOOM-BFA
DOOM: BFA (Big Freaking Anniversary) Edition (former Classic RBDoom 3 BFG) is a source port based on RBDOOM-3-BFG and enchance the experience of Ultimate DOOM, DOOM 2 and DOOM 3.
- GitHub
git clone --recursive https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG.git cd Classic-RBDOOM-3-BFG && mkdir build && cd build
без Intel Intrinsics
cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF ../neo
или
/neo/cmake-linux-release-nosimd.sh
с Intel Intrinsics
cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON ../neo
или
/neo/cmake-linux-release.sh
Компилирование
make -j8
SuperTuxKart
SuperTuxKart is a 3D open-source arcade racer with a variety characters, tracks, and modes to play.
загружаем игровые данные (без них будет ошибка на этапе конфигурирования через CMake)
svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets
git clone --recursive https://github.com/supertuxkart/stk-code.git
переключение на стабильную версию 1.2 (28 Aug 2020) - 6e17f2ed6bc5134e6d9070c3321ff245739aa23a (опционально)
cd stk-code && git checkout 6e17f2ed6bc5134e6d9070c3321ff245739aa23a
cd stk-code && mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j8
Serious Engine
A port to the OpenPandora (and working fine on plain Linux) of the open source version of a game engine developed by Croteam for the classic Serious Sam games.
- GitHub
git clone --recursive https://github.com/ptitSeb/Serious-Engine.git cd Serious-Engine
Serious Sam The Second Encounter:
mkdir build_ssam && cd build_ssam cmake -DCMAKE_BUILD_TYPE=Release ../Sources/ make -j8
Serious Sam The First Encounter:
mkdir build_ssam-tfe && cd build_ssam-tfe cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ../Sources/ make -j8
OpenVR SDK
OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.
git clone --recursive https://github.com/ValveSoftware/openvr.git cd openvr && mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=ON .. make -j8
Bullet Physics SDK
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
git clone --recursive https://github.com/bulletphysics/bullet3.git cd bullet3 && mkdir build && cd build
включаем двойную точность (по умолчанию идёт без неё) и многопоточность с использованием OpenMP (по умолчанию она включается с использованием mutex)
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON ..
если не установлена библиотека OpenVR SDK, то нужно дополнительно указать опции, которые выключат некоторые зависимые от неё компоненты
-DBUILD_BULLET2_DEMOS=OFF -DBUILD_UNIT_TESTS=OFF
make -j8
Unshield
Tool and library to extract CAB files from InstallShield installers
- GitHub
git clone --recursive https://github.com/twogood/unshield.git
переключение на стабильную версию 1.4.3 (30 Oct 2018) - c5d3560def781abceb36a07080437a291170ada4 (опционально)
cd unshield && git checkout c5d3560def781abceb36a07080437a291170ada4
cd unshield && mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. make -j8
OpenSceneGraph
The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.
git clone --recursive https://github.com/openscenegraph/OpenSceneGraph.git
переключение на стабильную версию 3.6.5 (31 Jan 2020) - a827840baf0786d72e11ac16d5338a4ee25779db (опционально)
cd OpenSceneGraph && git checkout a827840baf0786d72e11ac16d5338a4ee25779db
cd OpenSceneGraph && mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. make -j8
OGRE
a scene-oriented, flexible 3D engine (нужна для библиотеки MyGUI)
- https://github.com/OGRECave/ogre
1) git clone --recursive https://github.com/OGRECave/ogre.git 2) cd ogre && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DOGRE_ENABLE_PRECOMPILED_HEADERS=FALSE -DOGRE_BUILD_PLUGIN_ASSIMP=FALSE -DOGRE_BUILD_COMPONENT_PYTHON=FALSE -DOGRE_BUILD_COMPONENT_JAVA=FALSE -DOGRE_BUILD_COMPONENT_CSHARP=FALSE .. пре-компилирование и плагин ASSIMP дают ошибку при компиляции, поэтому выключаем их пока не исправят (доп.компоненты тоже) 4) make -j8
MyGUI
a cross-platform library for creating graphical user interfaces (GUIs) for games and 3D applications (нужна для OpenMW)
- https://github.com/MyGUI/mygui
1) git clone --recursive https://github.com/MyGUI/mygui.git 2) cd mygui && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=7 .. по умолчанию MyGUI требует установленный в ОС движок OGRE (MYGUI_RENDERSYSTEM=3), но можно собрать и без него, поэтому переключаемся на использование OpenGL (MYGUI_RENDERSYSTEM=4) или OpenGL 3.x (MYGUI_RENDERSYSTEM=7) или cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=1 -DMYGUI_BUILD_DEMOS=OFF -DMYGUI_BUILD_PLUGINS=OFF -DMYGUI_BUILD_TOOLS=OFF .. можно собрать без всего дополнительного (движок OGRE, демо, плагины и инструменты), доп.опции взяты из мануала разработчиков OpenMW по сборке OpenMW 4) make -j8
Sphinx
is a tool that makes it easy to create documentation for Python projects (or other documents consisting of multiple reStructuredText sources) нужна для OpenMW с доп.опцией -BUILD_DOCS=ON
- https://github.com/sphinx-doc/sphinx
1) pip install -U sphinx
OpenMW
открытая реализация игры TES 3 Morrowind (Tribunal и Bloodmoon)
- https://github.com/OpenMW/openmw
требуемые библиотеки (нужно предварительно собрать по инструкции выше): - Unshield - OpenSceneGraph 3.4 - OpenGL rendering toolkit - MyGUI 3.2.2 - GUI toolkit - Bullet 2.86 - the physics engine
1) git clone --recursive https://github.com/OpenMW/openmw.git 2) cd openmw && mkdir build && cd build 3) cmake -DCMAKE_BUILD_TYPE=Release .. или -DBUILD_DOCS=ON -DMYGUI_STATIC=ON -DBOOST_STATIC=ON -DSDL2_STATIC=ON -DOSG_STATIC=ON -DQT_STATIC=ON можно собрать с доп.опциями создания документации и статической линковки всего в один бинарник 4) make -j8
Xash3D FWGS Engine
fork Xash3D Engine, открытая реализация движка игры Half-Life 1
- https://github.com/FWGS/xash3d-fwgs
1) git clone --recursive https://github.com/FWGS/xash3d-fwgs.git 1) cd xash3d-fwgs && ./waf configure -T release автоматически определяет, что на е2к нужно собирать 64 битную версию движка, но можно указать вручную через -8/--64bits (опци нужна только для x86) на е2к автоматически соберёт с OpenGL 1.1 (максимальный реализованный в самом движке) 2) ./waf build автоматически определяет количество ядер для компиляции, но можно указать вручную через -j/--jobs 3) ./waf install --strip --destdir=./xash-fwgs_e2k получим файлы - /usr/local/lib/xash3d/libmenu.so - /usr/local/lib/xash3d/libref_gl.so - /usr/local/lib/xash3d/libref_soft.so - /usr/local/lib/xash3d/libxash.so - /usr/local/lib/xash3d/xash3d
Half-Life SDK for Xash3D
- https://github.com/FWGS/hlsdk-xash3d
1) git clone --recursive https://github.com/FWGS/hlsdk-xash3d.git 2) cd hlsdk-xash3d && ./waf configure -T release 3) ./waf build 4) ./waf install --strip --destdir=./hlsdk-xash3d_e2k получим файлы - /valve/cl_dlls/client_e2k.so - /valve/dlls/hl_e2k.so
полученная папка valve с библиотеками (client_e2k.so и hl_e2k.so) копируется прямо поверх папки valve в оригинальной игре (сохраняя иерархию). valve - это единственная необходимая папка из Half-Life 1. ранее полученные файлы xash3d (libmenu.so, libref_gl.so, libref_soft.so, libxash.so, xash3d) копируются также в корень папки с оригинальной игрой. запускать с LD_LIBRARY_PATH=.
Благодарность за текст Рамилю Саттарову =)
ScummVM
Современный движок для игр-квестов восьмидесятых и девяностых годов на движках SCUMM и подобных (Loom, Legend of Kyrandia 1, 2, 3 и т.п.)
Проверена собираемость и работоспособность версии 2.2.0 на ОС Эльбрус 6.0-rc3.
wget https://downloads.scummvm.org/frs/scummvm/2.2.0/scummvm-2.2.0.tar.gz tar xf scummvm-2.2.0.tar.gz cd scummvm-2.2.0 ./configure --enable-release --prefix=/usr make -j16 make install
ZMusic
Библиотека поддержки воспроизведения музыки для GZDoom современных версий.
Проверена собираемость и работоспособность снапшота git@9e950c1 на ОС Эльбрус 6.0-rc3.
git clone https://github.com/coelckers/ZMusic cd ZMusic mkdir build; cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .. make -j16 make install
GZDoom
Современный движок для 3D-шутеров на движках id Tech 1 и подобных (Doom, Doom II, Heretic, Hexen, Strife) с дополнительными возможностями для моддинга. Основан на ZDoom.
Проверена собираемость и работоспособность версии git@013078a на ОС Эльбрус 6.0-rc3.
Перед сборкой необходимо собрать и установить ZMusic.
git clone https://github.com/coelckers/gzdoom cd gzdoom sed -i 's/goto \*ops/goto *(void*)ops/' src/common/scripting/vm/vmexec.cpp mkdir build; cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .. make -j16 make install
Taisei Project
Кроссплатформенная FOSS-игра, аналогичная играм серии Touhou Project (по этому же сеттингу).
Проверена собираемость и работоспособность снапшота git@6a44aa4 на ОС Эльбрус 6.0-rc3.
git clone https://github.com/taisei-project/taisei cd taisei git submodule init git submodule update mkdir build; cd build meson --prefix=/usr .. ninja ninja install
DOSBox-X
Эмулятор машин на процессорах i8086-i386, аналогичный DOSBox, но более расширенный и с поддержкой эмуляции PC-98.
Проверена собираемость и работоспособность версии 0.83.7 на ОС Эльбрус 6.0-rc3.
Нужен следующий патч:
diff --git a/stb_vorbis.h b/stb_vorbis.h.0 index 35422b2..7c70034 100644 --- a/src/libs/decoders/stb_vorbis.h +++ b/src/libs/decoders/stb_vorbis.h @@ -5202,19 +5202,19 @@ stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, int *err #define PLAYBACK_LEFT 2 #define PLAYBACK_RIGHT 4 -#define L (PLAYBACK_LEFT | PLAYBACK_MONO) -#define C (PLAYBACK_LEFT | PLAYBACK_RIGHT | PLAYBACK_MONO) -#define R (PLAYBACK_RIGHT | PLAYBACK_MONO) +#define CH_L (PLAYBACK_LEFT | PLAYBACK_MONO) +#define CH_C (PLAYBACK_LEFT | PLAYBACK_RIGHT | PLAYBACK_MONO) +#define CH_R (PLAYBACK_RIGHT | PLAYBACK_MONO) static int8 channel_position[7][6] = { { 0 }, - { C }, - { L, R }, - { L, C, R }, - { L, R, L, R }, - { L, C, R, L, R }, - { L, C, R, L, R, C }, + { CH_C }, + { CH_L, CH_R }, + { CH_L, CH_C, CH_R }, + { CH_L, CH_R, CH_L, CH_R }, + { CH_L, CH_C, CH_R, CH_L, CH_R }, + { CH_L, CH_C, CH_R, CH_L, CH_R, CH_C }, };
У версии 0.83.7 и выше надо отключать динамический эмулятор процессора параметром --disable-dynamic-core.
wget https://github.com/joncampbell123/dosbox-x/archive/dosbox-x-v0.83.7.tar.gz tar xf dosbox-x-v0.83.7.tar.gz cd dosbox-x-dosbox-x-v0.83.7 patch -p1 < ../vorbis.patch # Это патч, про который говорилось выше ./autogen.sh ./configure --prefix=/usr --enable-d3d9 --enable-d3d-shaders --enable-sdl --enable-sdl2 --disable-dynamic-core make -j16 make install