Raptor Computing Systems Community Forums (BETA)

Software => Applications and Porting => Topic started by: tle on March 02, 2021, 06:26:55 am

Title: [GAMES] ET Legacy
Post by: tle on March 02, 2021, 06:26:55 am
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: [Select]
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

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

Code: [Select]
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

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

Code: [Select]
# 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-*

and apply following patches:

Code: [Select]
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

then run:

Code: [Select]
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

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

Video gameplay: https://youtu.be/pCP6a9TsqLc
Title: Re: [GAMES] ET Legacy v2.77
Post by: Borley on March 08, 2021, 08:36:23 pm
Tagging to remind myself to build this.

Are there enough players to hold matches without connecting to x86_64 servers?
Title: Re: [GAMES] ET Legacy v2.77
Post by: tle on March 09, 2021, 06:06:12 am
AFAIK none. How about we organise an ET Legacy weekend betwen POWER-users?
Title: Re: [GAMES] ET Legacy v2.77
Post by: tle on August 18, 2021, 12:20:37 am
Sadly the PR is not accepted because the project does not want to support PPC (at least at this stage). Oh well
Title: Re: [GAMES] ET Legacy v2.77
Post by: Borley on May 25, 2022, 04:40:34 pm
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.
Title: Re: [GAMES] ET Legacy v2.77
Post by: MauryG5 on May 26, 2022, 10:29:54 am
We are in bad shape if there are still those who approach us to Apple, really bad damn ...! But is it also possible to compile for Debian and derivatives?
Title: Re: [GAMES] ET Legacy v2.77
Post by: power9mm on December 28, 2022, 11:11:31 am
i think the game can connect to x86 servers just fine, just not when the server has sv_pure 1, which is usually most of them. I need to test this more with quake 3 when my system is running.
Title: Re: [GAMES] ET Legacy v2.77
Post by: tle on December 31, 2022, 10:13:08 am
i think the game can connect to x86 servers just fine, just not when the server has sv_pure 1, which is usually most of them. I need to test this more with quake 3 when my system is running.

in theory you can host your own server with `sv_pure 0`, but I don't think any reputable public servers would ever do that. For the time-being, I think we could play game with bots...
Title: Re: [GAMES] ET Legacy
Post by: power9mm on December 31, 2022, 11:08:11 am
plenty of servers probably use sv_pure 0. its an anticheat method for modified game files but people also like customization... i haven't played ET in a long time. i always liked RTCW more. you might want to try iortcw and see if it can connect to servers. The issue is probably it thinks you compiled your own cheat client or something since well, its ppc64le lol.

if you want to test this more, you could try ioquake3. it should be in your distros repo maybe. it is for openSUSE, im sure fedora has it too. Someone compiled quake3e and was able to connect to servers just fine, but i think those had sv_pure 0.
Title: Re: [GAMES] ET Legacy
Post by: tle on January 11, 2023, 12:08:20 am
Just to prove that omnibot can be successfully loaded now https://www.youtube.com/watch?v=94nlEbYYCKE&t=283s
Title: Re: [GAMES] ET Legacy
Post by: power9mm on February 01, 2023, 10:45:49 pm
As an update to this. Quake 3 plays on line just fine (with either ioquake3 or quake3e)
connects to sv_pure 1 servers no problem.
I imagine the same would be the case with ioRTCW

performance isn't as good vs x86 right now though.
Title: Re: [GAMES] ET Legacy
Post by: power9mm on February 02, 2023, 12:51:16 pm
https://github.com/etfdevs/ETe

you'll probably want to try this instead for playing ET online, it probably runs a lot better too.
Title: Re: [GAMES] ET Legacy
Post by: tle on August 06, 2023, 12:22:34 am
Okay my second attempt https://github.com/etlegacy/etlegacy/pull/2347 to get this patch in
Title: Re: [GAMES] ET Legacy
Post by: tle on August 07, 2023, 06:25:10 am
Okay my second attempt https://github.com/etlegacy/etlegacy/pull/2347 to get this patch in

Good news. It's been merged!
Title: Re: [GAMES] ET Legacy
Post by: ClassicHasClass on August 07, 2023, 07:41:41 pm
Excellent!
Title: Re: [GAMES] ET Legacy
Post by: tle on August 14, 2023, 10:15:07 pm
Okay, let's ETe up running on PPC64 https://github.com/etfdevs/ETe/pull/85