A quick n dirty shell script to get ioQuake3 working on current Debian and possibly Ubuntu again.

AmigaOne X5000 platform specific issues related to Linux only.
Post Reply
UserH
Posts: 9
Joined: Mon Sep 23, 2019 11:26 am

A quick n dirty shell script to get ioQuake3 working on current Debian and possibly Ubuntu again.

Post by UserH »

Hello..

As I've just noticed as of a couple of weeks ago.. The shell script that comes with the ioQuake3 package for Debian is no longer working or outright missing.. I've knocked up this quick n dirty shell script from the Open Arena one to get it working again.

You will need to save it as ioquake3 under the /usr/games/ directory and launch it with the sh commend in a terminal window from the same directory with the command: sh /usr/games/ioquake3 etc.

You'll also have to create a folder called .q3a in the root of your user directory and place the baseq3 folder with the games pak files in it there. So it'd be: /home/(your user name here)/.q3a etc

You should now be able to launch ioQuake3 from a single shell script again.. With a lot less faffing around.

Quick edit: WHOOPS! I've just released.. The legacy protocol version number was wrong.. Which I have now changed to the correct version within the script.. So you should now be able to find and connect to current ioquake3 servers.. Without the illegible server message error.

Code: Select all

#!/bin/sh

# quake3 or quake3-server or whatever
IOQ3SELF=ioquake3
# "server" or "client"
IOQ3ROLE=client
# ioquake3 or ioq3ded
IOQ3BINARY=ioquake3
# /usr/lib/openarena or /usr/lib/openarena-server
FS_BASEPATH=/usr/lib/ioquake3/

ENGINE="/usr/lib/ioquake3/${IOQ3BINARY}"

DEBUGGER="$QUAKE3ARENA_DEBUGGER"

# we're a standalone game
CVARS="+set com_basegame baseq3"
CVARS="$CVARS +set fs_basepath $FS_BASEPATH"
CVARS="$CVARS +set com_homepath .q3a"

# OA uses a different protocol number to reflect incompatible game content.
# When it says "71", that's actually the legacy Quake III Arena 1.32c protocol,
# protocol 68.
CVARS="$CVARS +set com_legacyprotocol 68"
# For the moment, disable the modern protocol, by setting this cvar to the
# same thing. When OA upstream decide what value they'll use, we should
# catch up.
CVARS="$CVARS +set com_protocol 71"

# OA's default master server is different
CVARS="$CVARS +set sv_master1 master.quake3arena.com"
# update.quake3arena.com is pretty irrelevant if you're playing OA
CVARS="$CVARS +set cl_motd 0"
# OA 0.8.5 sends QuakeArena-1 heartbeats, which dpmaster interprets as implying
# that it's a version of Quake III Arena from the future rather than a separate
# game. Remain compatible even in ioquake3 >= r2105, by leaving com_gamename
# set to the default, "Quake3Arena"; this will hopefully be fixed in a future
# OA version, but that's a compatibility break.
#CVARS="$CVARS +set com_gamename Quake3Arena"

QUIET=0

EXCUSE="\
OpenArena ${IOQ3ROLE} wrapper for Debian\n\
\n\
Usage: ${IOQ3SELF} [OPTION]...\n\
\n\
 -h, --help\t\tDisplay this help\n\
 -q, --quiet\t\tDisable console output\n\
  +<internal command>\tPass commands to the engine\n"

while [ "$1" != "" ]; do
  case "$1" in
    -h|--help)
      echo ${EXCUSE}
      exit 0
      ;;
    -q|--quiet)
      CVARS="$CVARS +set ttycon 0"
      QUIET=1
      ;;
    *)
      break
      ;;
  esac
  shift
done

if test "z$QUIET" = z1; then
  exec >/dev/null 2>&1;
fi

if test -n "$QUAKE3ARENA_BACKTRACE"; then
  exec gdb -return-child-result -batch -ex run -ex 'thread apply all bt full' -ex kill -ex quit --args ${ENGINE} ${CVARS} "$@"
else
  exec ${DEBUGGER} ${ENGINE} ${CVARS} "$@"
fi
Post Reply