All games

Quake III Arena

Untested nobody has played it on Walnut yet

id Software's 1999 arena shooter against bots, played with Walnut's ioquake3 from your own copy, with Team Arena if you have it.

Genre
shooter first-person arena
Theme
sci-fi
Players
single player online multiplayer bots
Input
made for keyboard and mouse
View
3D first-person
Needs
your own game data
Engine
id Tech 3 ioquake3

How it's built, patched and set up for its played test; it runs on the ioquake3 engine. The numbers are under Test runs.

Quake III Arena runs on Walnut’s build of ioquake3, the engine OpenArena plays on at about 70 frames a second with its OpenGL 1 renderer. The engine is free; the game’s data is not, so Walnut doesn’t offer it: Walnut Games makes a package of it from your own copy (the Overview’s Installation, and the Guides). The game code is ioquake3’s native build of id’s GPL source, not the bytecode in the paks: ioquake3 has no PowerPC compiler for that bytecode any more, and the interpreter is slow on the PS3’s processor. Quake III loads its first arena, q3dm1, with the right picture; nobody has played it on Walnut yet.

Status

Untested as a played game: published so that Walnut Games can set up its data. On 2026-10-27 the data came from the CD’s ISO on the PS3 and ioquake3 loaded q3dm1 with the right picture (lightmaps, models, HUD; xwd fullscreen, looked at); on 2026-10-28 from GOG’s installer, with Team Arena, whose mpteam1 loaded with its own HUD. Nobody has played a session or measured it yet.

Packages, data and settings

  • Engine: our ioquake3 (ioquake3, OpenArena’s engine), /usr/lib/ioquake3/ioquake3. Its package already has Debian’s native game code links: /usr/lib/quake3/base/baseq3/{cgame,qagame,ui}.so for Quake III and /usr/lib/quake3/ta/{baseq3,missionpack}/ for Team Arena. The launchers set vm_cgame 0, vm_game 0, vm_ui 0 and sv_pure 0, so ioquake3 loads those native libraries (ioquake3’s build of id’s GPL game code, the same game as 1.32’s bytecode): ioquake3 has no PowerPC compiler for the QVM bytecode any more (only x86, x86-64 and ARM), and the interpreter is slow on the PPE. With sv_pure 1 the client would insist on the paks’ bytecode.
  • Data: game-data-packager’s quake3-data (/usr/share/games/quake3-data/baseq3/pak0-8.pk3) and quake3-team-arena-data (.../quake3-team-arena-data/missionpack/pak0-3.pk3), each with gdp’s links into /usr/lib/quake3/{base,ta}. Those links are why the data manifest and walnut-games-helper take symlinks now (docs/PACKAGING.md “Links”). Team Arena’s Conflicts/Replaces quake3-data (<< 77~) is about old gdp builds and is left out of the manifest: unversioned it would remove quake3-data.
  • Launchers (desktop/launchers), both NoDisplay=true with X-Walnut-Requires= the pak0 of their data: “Quake III Arena” (fs_basepath /usr/lib/quake3/base) and “Quake III: Team Arena” (fs_basepath /usr/lib/quake3/ta, fs_game missionpack).
  • Defaults: autoexec.cfg in /usr/lib/quake3/base/baseq3/ and /usr/lib/quake3/ta/baseq3/ (desktop/files), OpenArena’s: opengl1, r_mode -2 fullscreen at the desktop’s resolution, vsync, com_maxfps 60, DXT1 textures, the pad bindings; and cl_cdkeyCheck 0 (ioquake3 0030): without it both menus open on a CD KEY screen at every start. ui_cdkeychecked can’t skip it: the UIs register it CVAR_ROM, which forces a value set on the command line or in a config back to 0. No key is shipped or needed (it mattered only to id’s authorize servers).
  • Settings live in ioquake3’s XDG folders: ~/.config/Quake3, ~/.local/state/Quake3 (~/.q3a when it exists).

Data sources tried

  • CD ISO (QUAKE3.iso, 1.11-era: Quake3/baseq3/pak0.pk3 and pak1): loop-mounted by walnut-data; gdp needs 1.32’s pak1-8 too, from id’s point release linuxq3apoint-1.32b-3.x86.run. gdp downloaded it from ftp.fu-berlin.de (idstuff) in the games builder on the PC. On the PS3 the import ran with --no-download and GOG’s pak1-8 beside the ISO, for lack of room for the download’s 128 MB.
  • GOG’s Quake III Gold (setup_quake3_2.0.0.2.exe, 921 MB, known to gdp): gdp unpacks baseq3/pak0.pk3 as well when only Team Arena is asked for (the installer unpacks to 981 MB, whichever package is asked for); walnut-data’s space check counts that. On the PS3 (2026-10-28) a plain import made quake3-data in 349 s and named Team Arena as an add-on, -p quake3-team-arena-data took 315 s; about 2.4 GB free for the base and 2 GB for Team Arena, besides the installer itself.
  • MDF/MDS: the CD’s ISO written as a 2448-byte-sector MDF (2352 + 96 bytes of subchannel) with its .mds and extracted again by walnut-data’s code gave the ISO 9660 volume byte for byte (on the PC).

Known problems

  • Sound drops out for 80-170 ms about once a minute in a game with bots (OpenAL’s mmap commit error: Broken pipe in the log, one per dropout): OpenAL’s mixer thread starves at normal priority. With a real-time limit for the session there were none in 3 runs; that change is system-wide and not made yet (the investigation).

Engine options

  • ioquake3 (the pick: OpenArena runs on our ioquake3 engine, gamedb/engines/ioquake3)
  • Quake3e (a performance fork: x86/ARM JIT, Vulkan; no PPC JIT)
  • spearmint (not fetchable)
  • id’s Quake-III-Arena (frozen dump, reference)

Research

What the surveys and plans said about it, newest first; each line names its source, the section and the date.

  • 2026-10-20, pc-classics.md, “Action and shooters”: “RTCW, Wolfenstein: ET, Quake 3, Elite Force” (mostly with console versions): iortcw, ET: Legacy, ioquake3; playable; GL 1.x/2.x; Q3’s QVM had a big-endian PPC JIT; own data; effort M.
  • 2026-10-20, pc-classics.md, “Alternatives and popularity”: ioquake3 (2850 stars, 2026-10-12): the baseline, PPC JIT history.

Build

Packagesioquake3
Suitenot in the game suite yet
Game datathe player supplies it (see the game's page)

Our source packages

Played test

What a played session sets up (rating/test.toml); the medal comes from these sessions only.

Processioquake3
Set aside~/.local/share/Quake3, ~/.config/Quake3, ~/.local/state/Quake3, ~/.q3a (the game starts on fresh defaults)
Play starts atCL_InitCGame