mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 05:53:23 -05:00
162 lines
6.3 KiB
YAML
162 lines
6.3 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; 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
|
|
source_ref: "code/qcommon/files.c:181 (pak_checksums[1]=298122907u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak2.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak2.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:182 (pak_checksums[2]=412165236u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak3.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak3.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:183 (pak_checksums[3]=2991495316u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak4.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak4.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:184 (pak_checksums[4]=1197932710u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak5.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak5.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:185 (pak_checksums[5]=4087071573u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak6.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak6.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:186 (pak_checksums[6]=3709064859u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak7.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak7.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:187 (pak_checksums[7]=908855077u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
- name: "pak8.pk3"
|
|
category: game_data
|
|
system: quake3
|
|
path: "baseq3/pak8.pk3"
|
|
required: true
|
|
source_ref: "code/qcommon/files.c:188 (pak_checksums[8]=977125798u), 3697 (fatal when a baseq3 pak is absent)"
|
|
|
|
# ================================================================
|
|
# 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; 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)"
|