Files
libretro/emulators/ioquake3.yml
T
Abdessamad Derraz ceaca2bf1d chore: record what each platform installs
Each platform's own packages were read at the revision our data pins, for every emulator and core it ships: Batocera, Recalbox, RetroPie, ROCKNIX, Lakka, RetroDECK, RetroBat and EmuDeck. Files a package installs where the emulator reads them are recorded with installed_on, and files a release bundles but a package leaves out with not_bundled_on, so each platform's pack brings what its users lack and nothing they already have. The standalone profiles never checked before were held against their releases the same way. Batocera's imame4all is the mame2000 core. The primary neogeo.zip was a 7.7 KB placeholder no platform pins and no pack served: removed, the real dumps stay in .variants.
2026-10-20 07:17:05 +02:00

178 lines
7.5 KiB
YAML

emulator: ioquake3
type: standalone
core_classification: game_engine
source: "https://github.com/ioquake/ioq3"
upstream: "https://github.com/ioquake/ioq3"
profiled_date: "2026-10-04"
source_commit: "83a776283bdb958f82db25554b5ed0966aaf6e49"
core_version: "1.36+git"
display_name: "ioquake3"
cores: [ioquake3]
systems: [quake3, teamarena]
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).
files:
# ================================================================
# Quake III Arena (baseq3/, 9 numbered paks)
# pak0.pk3 comes from the retail disc, pak1.pk3 through pak8.pk3 from
# the 1.32 point release (code/qcommon/files.c:3715-3717).
# pak_checksums[0..8] = { 1566731103, 298122907, 412165236,
# 2991495316, 1197932710, 4087071573,
# 3709064859, 908855077, 977125798 }
# ================================================================
- name: "pak0.pk3"
category: game_data
system: quake3
path: "baseq3/pak0.pk3"
required: true
source_ref: "code/qcommon/files.c:180 (pak_checksums[0]=1566731103u), 3568 (per-index checksum compare), 3697 (fatal when a baseq3 pak is absent)"
note: "Retail Quake III Arena base pak. Engine prints a warning on checksum mismatch, does not refuse the file."
unsourceable: "retail data the collection does not hold, and a same-named file of another game must not stand in"
- name: "pak1.pk3"
category: game_data
system: quake3
path: "baseq3/pak1.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:181 (pak_checksums[1]=298122907u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak2.pk3"
category: game_data
system: quake3
path: "baseq3/pak2.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:182 (pak_checksums[2]=412165236u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak3.pk3"
category: game_data
system: quake3
path: "baseq3/pak3.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:183 (pak_checksums[3]=2991495316u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak4.pk3"
category: game_data
system: quake3
path: "baseq3/pak4.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:184 (pak_checksums[4]=1197932710u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak5.pk3"
category: game_data
system: quake3
path: "baseq3/pak5.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:185 (pak_checksums[5]=4087071573u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak6.pk3"
category: game_data
system: quake3
path: "baseq3/pak6.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:186 (pak_checksums[6]=3709064859u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak7.pk3"
category: game_data
system: quake3
path: "baseq3/pak7.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:187 (pak_checksums[7]=908855077u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
- name: "pak8.pk3"
category: game_data
system: quake3
path: "baseq3/pak8.pk3"
required: true
installed_on: [retropie]
source_ref: "code/qcommon/files.c:188 (pak_checksums[8]=977125798u), 3697 (fatal when a baseq3 pak is absent)"
note: "RetroPie's ioquake3 scriptmodule installs it into baseq3 from Q3DemoPaks.zip (quake3.sh game_data_quake3)."
# ================================================================
# Quake III Arena demo (demoq3/)
# DEMO_PAK0_CHECKSUM = 2985612116
# ================================================================
- name: "pak0.pk3"
category: game_data
system: quake3
path: "demoq3/pak0.pk3"
required: false
source_ref: "code/qcommon/files.c:178 (DEMO_PAK0_CHECKSUM=2985612116u), 3557-3562 (demoq3 pak0 checksum compare), 3661-3674 (accepted in place of baseq3/pak0.pk3)"
note: "Demo pak. Recognised only under demoq3/ and only with this checksum. The engine then prints a warning and counts baseq3/pak0.pk3 as found."
# ================================================================
# Team Arena (missionpack/, 4 numbered paks)
# missionpak_checksums[0..3] = { 2430342401, 511014160,
# 2662638993, 1438664554 }
# ================================================================
- name: "pak0.pk3"
category: game_data
system: teamarena
path: "missionpack/pak0.pk3"
required: false
source_ref: "code/qcommon/files.c:193 (missionpak_checksums[0]=2430342401u)"
note: "Team Arena base pak. Required only when launching +set fs_game missionpack."
unsourceable: "retail data the collection does not hold, and a same-named file of another game must not stand in"
- name: "pak1.pk3"
category: game_data
system: teamarena
path: "missionpack/pak1.pk3"
required: false
source_ref: "code/qcommon/files.c:194 (missionpak_checksums[1]=511014160u)"
- name: "pak2.pk3"
category: game_data
system: teamarena
path: "missionpack/pak2.pk3"
required: false
source_ref: "code/qcommon/files.c:195 (missionpak_checksums[2]=2662638993u)"
- name: "pak3.pk3"
category: game_data
system: teamarena
path: "missionpack/pak3.pk3"
required: false
source_ref: "code/qcommon/files.c:196 (missionpak_checksums[3]=1438664554u)"