v0.3.0 — per-machine graphics tuning: FSAA, anisotropic + trilinear
Best-looking ioquake3 (Quake III Arena) for old Macs — one DMG that auto-tunes every machine from a G3 running Panther to a modern Intel.
This is a config-only release: the engine binary is byte-identical to v0.2.0 (the same fat ppc750 + ppc7400 + x86_64 Mach-O). What's new is the per-machine autoexec layer baked into the .app — auto-selected at launch by hw.model — now measurably tuned across the live bench fleet. Drop ioquake3.app next to your own baseq3/ and it configures itself.
What's new — per-machine graphics tuning
- iMac G5 (Radeon 9600): 2× FSAA (
r_ext_multisample) — antialiased geometry/weapon edges, fixing Q3's most dated look. Costs 60 → 34.5 fps at native 1440×900, affordable with no fps floor. (4× was measured and rejected — 20 fps.) - Quicksilver G4 (Radeon 9000): 16× anisotropic filtering + trilinear (
GL_LINEAR_MIPMAP_LINEAR) — both bench-proven free at native 1680×1050 (the card has fill headroom there). Plus a free CPU win from a tuned sound mix rate (38.9 → 41.1 fps, zero visual cost). - Mac mini G4 (Radeon 9200): bench-confirmed on real hardware at native 1680×1050 (27.5 fps, hardware GL); characterized as fill-rate bound; auto-config wired.
Under the hood
- Profiled the Quicksilver render thread on real ppc7400 hardware and recorded an evidence-based negative: an ARB VBO renderer retrofit is not worth it — no dominant hotspot, the ATI hardware command dispatch is irreducible, and the mesh/lighting hot loops are already AltiVec-vectorized in the baseline. (See
docs/PROFILING.md.)
Measured native-res fps (demo four, each machine's native panel)
| Machine | GPU | Native res | fps |
|---|---|---|---|
| yosemite (G3 449 MHz) | Rage 128 | 800×600 | 22 |
| quicksilver (G4 733 MHz) | Radeon 9000 | 1680×1050 | 41 |
| mini-g4 (G4 1.25 GHz) | Radeon 9200 | 1680×1050 | 27.5 |
| imac-g5 (PPC 970 2.0 GHz) | Radeon 9600 | 1440×900 | 60 (34.5 w/ 2× FSAA) |
| mini-intel (Core 2 Duo) | GMA 950 | 1920×1080 | 57 |
Install
Mount the DMG, copy ioquake3.app next to your existing baseq3/ (your own Quake III game data — none is shipped here), and launch. The .app auto-tunes to your Mac. To override, edit baseq3/autoexec.cfg; to disable auto-tuning, launch with +set com_archAutoexec 0.
The DMG is built on Tiger so it mounts on Panther 10.3.9 through modern macOS, and its contents are verified byte-identical to the source build.