ioquake3 - RetroBIOS¶
Technical notes
Quake III Arena / Team Arena source port maintained by the ioquake team. BASEGAME = "baseq3", BASETA = "missionpack" (code/qcommon/q_shared.h :44,65). FS_Startup (code/qcommon/files.c:3360) scans each search path for pak0.pk3 through pak(NUM_ID_PAKS-1).pk3 under baseq3, and up to NUM_TA_PAKS paks under missionpack (code/qcommon/qcommon.h:591-593, NUM_ID_PAKS=9, NUM_TA_PAKS=4).
Loaded paks are matched against hardcoded unsigned 32-bit checksums (code/qcommon/files.c:178-198: pak_checksums[], missionpak_checksums[]). These are NOT MD5 / SHA1 / CRC32 of the file; they are id's own custom pak checksum (sum of each lump CRC, see FS_LoadZipFile). A mismatch prints "WARNING: baseq3/pak0.pk3 is present but its checksum (%u) is not correct" (code/qcommon/files.c:3574) and keeps running: the loader does not refuse the file, so no md5/sha1 is written below.
A missing baseq3 pak is fatal unless the engine runs standalone, which it does when no id pak is found and com_basegame is not baseq3 (code/qcommon/files.c:3652-3657, 3697). Team Arena paks are checked the same way once fs_game or fs_basegame is missionpack (code/qcommon/files.c:3738-3739).
A pak0.pk3 loaded from demoq3/ with checksum DEMO_PAK0_CHECKSUM stands in for baseq3/pak0.pk3 with a warning (code/qcommon/files.c:3557-3562, 3661-3674).
14 files | 9 required, 5 optional | 12 in repo, 0 missing, 2 unsourceable Categories: 14 game data
pak0.pk3 required unsourceable game_data
- Path:
baseq3/pak0.pk3 - System: quake3
- Source:
code/qcommon/files.c:180,code/qcommon/files.c:3568,code/qcommon/files.c:3697 - Retail Quake III Arena base pak. Engine prints a warning on checksum mismatch, does not refuse the file.
pak1.pk3 required in repo game_data
- Path:
baseq3/pak1.pk3 - System: quake3
- Source:
code/qcommon/files.c:181,code/qcommon/files.c:3697
pak2.pk3 required in repo game_data
- Path:
baseq3/pak2.pk3 - System: quake3
- Source:
code/qcommon/files.c:182,code/qcommon/files.c:3697
pak3.pk3 required in repo game_data
- Path:
baseq3/pak3.pk3 - System: quake3
- Source:
code/qcommon/files.c:183,code/qcommon/files.c:3697
pak4.pk3 required in repo game_data
- Path:
baseq3/pak4.pk3 - System: quake3
- Source:
code/qcommon/files.c:184,code/qcommon/files.c:3697
pak5.pk3 required in repo game_data
- Path:
baseq3/pak5.pk3 - System: quake3
- Source:
code/qcommon/files.c:185,code/qcommon/files.c:3697
pak6.pk3 required in repo game_data
- Path:
baseq3/pak6.pk3 - System: quake3
- Source:
code/qcommon/files.c:186,code/qcommon/files.c:3697
pak7.pk3 required in repo game_data
- Path:
baseq3/pak7.pk3 - System: quake3
- Source:
code/qcommon/files.c:187,code/qcommon/files.c:3697
pak8.pk3 required in repo game_data
- Path:
baseq3/pak8.pk3 - System: quake3
- Source:
code/qcommon/files.c:188,code/qcommon/files.c:3697
pak0.pk3 optional in repo game_data
- Path:
demoq3/pak0.pk3 - System: quake3
- Source:
code/qcommon/files.c:178,code/qcommon/files.c:3557-3562,code/qcommon/files.c:3661-3674 - Demo pak. Recognised only under demoq3/ and only with this checksum; the engine then prints a warning and counts baseq3/pak0.pk3 as found.
pak0.pk3 optional unsourceable game_data
- Path:
missionpack/pak0.pk3 - System: teamarena
- Source:
code/qcommon/files.c:193 - Team Arena base pak. Required only when launching +set fs_game missionpack.
pak1.pk3 optional in repo game_data
- Path:
missionpack/pak1.pk3 - System: teamarena
- Source:
code/qcommon/files.c:194
pak2.pk3 optional in repo game_data
- Path:
missionpack/pak2.pk3 - System: teamarena
- Source:
code/qcommon/files.c:195
pak3.pk3 optional in repo game_data
- Path:
missionpack/pak3.pk3 - System: teamarena
- Source:
code/qcommon/files.c:196
Generated on 2026-10-10T11:26:01Z