Software > Applications and Porting

[GAMES] ET Legacy

(1/4) > >>

tle:
The v2.77 was released on 21st March 2021. As of Dec 2022, v2.80.2 is now the latest!

I was abit curious about how compatible this game is with ppc64le. It turns out it is very trivial to make the game compile with system libs on Fedora 33 or newer


Once the Pull Request (https://github.com/etlegacy/etlegacy/pull/2347) is merged, you could compile the game easily with following options:


--- Code: ---git clone https://github.com/etlegacy/etlegacy.git && cd etlegacy
cp <origRTCW>/etmain/pak[0-2].pk3 ./etmain/
./easybuild.sh generate -64 -systemlib # for Fedora 37, I deliberately want to use system libs, remove it if you want to use bundled libs
cd build
make
make install # installed to ~/etlegacy

--- End code ---

NOTE: For Fedora 37, the minizip header is installed in `/usr/include/minizip`, therefore you need to patch following file:


--- Code: ---diff --git a/src/qcommon/files.c b/src/qcommon/files.c
index b1a86197e..fbf25d521 100644
--- a/src/qcommon/files.c
+++ b/src/qcommon/files.c
@@ -42,10 +42,8 @@
 
 #ifdef BUNDLED_MINIZIP
 #    include "unzip.h"
-#elif defined(__APPLE__)
-#    include <minizip/unzip.h>
 #else
-#    include <unzip.h>
+#    include <minizip/unzip.h>
 #endif

--- End code ---

The bundled omni-bot x86_64 is not compatible and thus needs to be compiled from scratch. Here is how:


--- Code: ---# I assume you use Fedora 37, you can adjust code to your distro
git clone -b stable https://github.com/jswigart/omni-bot.git /tmp/omni-bot
cd /tmp/omni-bot
git submodule init
git submodule update --recursive
sudo dnf install boost-build boost-b2 boost-*

--- End code ---

and apply following patches:


--- Code: ---diff --git a/0.83/Omnibot/Jamfile b/0.83/Omnibot/Jamfile
index fbdc849e..be43c568 100644
--- a/0.83/Omnibot/Jamfile
+++ b/0.83/Omnibot/Jamfile
@@ -52,7 +52,7 @@ rule tag ( name : type ? : property-set )
        {
                if [ $(property-set).get <address-model> ] = 64
                {
-                       return $(name).x86_64.so ;
+                       return $(name).ppc64le.so ;
                }
                else
                {
diff --git a/0.83/Omnibot/linux/buildbot.sh b/0.83/Omnibot/linux/buildbot.sh
old mode 100644
new mode 100755
index 646bc393..5a993522
--- a/0.83/Omnibot/linux/buildbot.sh
+++ b/0.83/Omnibot/linux/buildbot.sh
@@ -1,9 +1,9 @@
 #!/bin/sh
 
-export BOOST=/boost/boost_1_44_0
-export BOOST_BUILD_PATH=$BOOST/tools/build/v2
-export BOOST_LIB=$BOOST/stage/lib
-export BOOST_SUFFIX=-gcc41-mt-1_44
+export BOOST=/boost/boost_1_78_0
+export BOOST_BUILD_PATH=$BOOST/tools/build
+export BOOST_LIB=/usr/lib64
+export BOOST_SUFFIX=""
 
-cd /media/sf_omnibot_svn_root/Omnibot
-$BOOST/bjam -q release
+cd /tmp/omni-bot/0.83/Omnibot
+b2 architecture=power toolset=gcc address-model=64 -q release

--- End code ---

then run:


--- Code: ---cd 0.83/Omnibot/linux/
./buildbot.sh
cp ../build/ET/gcc-12/release/address-model-64/architecture-power/omnibot_et.ppc64le.so ~/etlegacy/legacy/omni-bot/
rm ~/etlegacy/legacy/omni-bot/omni-bot.so
rm ~/etlegacy/legacy/omni-bot/omni-bot.x86_64.so
ln -sf ~/etlegacy/legacy/omni-bot/omnibot_et.ppc64le.so ~/etlegacy/legacy/omni-bot/omni-bot.so

--- End code ---

The game plays perfectly. The only downside is lacking support for any game hosted with x86_64 server.

Video gameplay: https://youtu.be/pCP6a9TsqLc

Borley:
Tagging to remind myself to build this.

Are there enough players to hold matches without connecting to x86_64 servers?

tle:
AFAIK none. How about we organise an ET Legacy weekend betwen POWER-users?

tle:
Sadly the PR is not accepted because the project does not want to support PPC (at least at this stage). Oh well

Borley:
The ET:L devs closed out your pull with the pretty harsh stance that PPC == Apple

This is not a technical issue preventing support, but a perception issue about the Power ecosystem.

Navigation

[0] Message Index

[#] Next page

Go to full version