Author Topic: [GAMES] ET Legacy  (Read 2795 times)

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
[GAMES] ET Legacy
« 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
« Last Edit: August 08, 2023, 08:16:13 am by tle »
Faithful Linux enthusiast

My Raptor Blackbird

Borley

  • Full Member
  • ***
  • Posts: 154
  • Karma: +13/-0
    • View Profile
Re: [GAMES] ET Legacy v2.77
« Reply #1 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?
Blackbird C1P9S01, CPU 02CY650, 2x 8GB 2666 RAM, 1024GB M.2 SSD, AMD RX 560X, 2U heatsink, 500W SFX PSU, Debian 11

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
Re: [GAMES] ET Legacy v2.77
« Reply #2 on: March 09, 2021, 06:06:12 am »
AFAIK none. How about we organise an ET Legacy weekend betwen POWER-users?
Faithful Linux enthusiast

My Raptor Blackbird

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
Re: [GAMES] ET Legacy v2.77
« Reply #3 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
Faithful Linux enthusiast

My Raptor Blackbird

Borley

  • Full Member
  • ***
  • Posts: 154
  • Karma: +13/-0
    • View Profile
Re: [GAMES] ET Legacy v2.77
« Reply #4 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.
Blackbird C1P9S01, CPU 02CY650, 2x 8GB 2666 RAM, 1024GB M.2 SSD, AMD RX 560X, 2U heatsink, 500W SFX PSU, Debian 11

MauryG5

  • Hero Member
  • *****
  • Posts: 720
  • Karma: +21/-1
    • View Profile
Re: [GAMES] ET Legacy v2.77
« Reply #5 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?

power9mm

  • Jr. Member
  • **
  • Posts: 92
  • Karma: +7/-3
    • View Profile
Re: [GAMES] ET Legacy v2.77
« Reply #6 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.

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
Re: [GAMES] ET Legacy v2.77
« Reply #7 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...
Faithful Linux enthusiast

My Raptor Blackbird

power9mm

  • Jr. Member
  • **
  • Posts: 92
  • Karma: +7/-3
    • View Profile
Re: [GAMES] ET Legacy
« Reply #8 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.
« Last Edit: December 31, 2022, 11:23:34 am by power9mm »

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
Re: [GAMES] ET Legacy
« Reply #9 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
Faithful Linux enthusiast

My Raptor Blackbird

power9mm

  • Jr. Member
  • **
  • Posts: 92
  • Karma: +7/-3
    • View Profile
Re: [GAMES] ET Legacy
« Reply #10 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.

power9mm

  • Jr. Member
  • **
  • Posts: 92
  • Karma: +7/-3
    • View Profile
Re: [GAMES] ET Legacy
« Reply #11 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.

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
Re: [GAMES] ET Legacy
« Reply #12 on: August 06, 2023, 12:22:34 am »
Okay my second attempt https://github.com/etlegacy/etlegacy/pull/2347 to get this patch in
Faithful Linux enthusiast

My Raptor Blackbird

tle

  • Sr. Member
  • ****
  • Posts: 419
  • Karma: +47/-0
    • View Profile
    • Trung's Personal Website
Re: [GAMES] ET Legacy
« Reply #13 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!
Faithful Linux enthusiast

My Raptor Blackbird

ClassicHasClass

  • Sr. Member
  • ****
  • Posts: 435
  • Karma: +34/-0
  • Talospace Earth Orbit
    • View Profile
    • Floodgap
Re: [GAMES] ET Legacy
« Reply #14 on: August 07, 2023, 07:41:41 pm »
Excellent!