mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 14:03:23 -05:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
236 lines
10 KiB
YAML
236 lines
10 KiB
YAML
emulator: Xash3D FWGS
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/FWGS/xash3d-fwgs"
|
|
upstream: "https://github.com/FWGS/xash3d-fwgs"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "1414fc281b6dc986378ea7ae35086c62d782a865"
|
|
core_version: "0.21+git"
|
|
display_name: "Xash3D FWGS"
|
|
cores: [xash3d_fwgs]
|
|
systems: [halflife, cstrike, czero, czeror, dmc, gearbox, bshift, ricochet, tfc]
|
|
|
|
notes: |
|
|
GoldSrc / Half-Life 1 engine reimplementation by Flying With Gauss.
|
|
Game directories are discovered at startup: FS_CheckForXashGameDir
|
|
(filesystem/gameinfo.c:611-634) walks each sub-folder of the base path
|
|
and keeps the ones that contain gameinfo.txt or liblist.gam.
|
|
FS_ParseGenericGameInfo (filesystem/gameinfo.c:231-430) reads the mod
|
|
descriptor out of either file: `basedir` names the fallback game
|
|
(chained one level, e.g. czeror -> czero -> cstrike -> valve, see
|
|
filesystem/searchpath.c:327), `fallback_dir` names a second fallback,
|
|
and `game` / `gamename` carry the human-readable title.
|
|
|
|
Each supported mod's data is a Valve-style game folder with a game
|
|
descriptor, maps/, models/, sound/, overviews/ and any number of .pak
|
|
archives. FS_AddGameDirectory mounts every .pak of the folder, then
|
|
every .pk3, .pk3dir and .wad, each kind in sorted name order and each
|
|
above the previous one, then the folder itself on top, so loose files
|
|
win over packed ones (filesystem/searchpath.c:188-224). No archive name
|
|
is required. The engine does not hash any file; the pak header is the
|
|
only sanity check (filesystem/pak.c:98-157). liblist.gam ships inside each
|
|
retail mod and is also written out by the engine as gameinfo.txt the
|
|
first time it imports a Valve folder (filesystem/gameinfo.c:538-544).
|
|
|
|
A Quake-engine game dir is recognised separately by
|
|
FS_CheckForQuakeGameDir (filesystem/gameinfo.c:578-603), which looks
|
|
for pak0.pak + progs.dat / quake.rc; Xash3D FWGS can run Quake 1 total
|
|
conversions this way.
|
|
|
|
Below are the folders Half-Life retail / official addon releases
|
|
install under the Steam install root. The descriptor is what makes the
|
|
engine detect a folder (filesystem/gameinfo.c:614-630); the pak entries
|
|
name the archives the retail releases ship. Map / model / sound trees
|
|
that live beside them are too open-ended to enumerate and are counted
|
|
as part of the same game data.
|
|
|
|
files:
|
|
# ================================================================
|
|
# Half-Life (valve/), base game, chained parent of every HL1 mod
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: halflife
|
|
path: "valve/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617 (gamedir probe), 538-544 (liblist.gam -> gameinfo.txt conversion), 695 (parser)"
|
|
note: "Game descriptor shipped with retail Half-Life. Engine converts it to gameinfo.txt on first run."
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: halflife
|
|
path: "valve/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/searchpath.c:188-224, filesystem/pak.c:98-157"
|
|
note: "Half-Life game data packed in one archive, as the CD and WON releases install it. The engine mounts whatever .pak the folder holds and requires none: the Steam depot ships valve/ as loose files with no .pak, and the game runs from those."
|
|
unsourceable: "The WON Linux dedicated servers 1.0.0.9 to 3.1.1.1 carry a server-only valve/pak0.pak (65022757, 47500556 or 33772308 bytes, at most 1035 entries: multiplayer maps, models, sounds, sprites and skies, with no single-player map, gfx/shell or sound/vox), not the client archive of the CD and WON releases."
|
|
|
|
- name: "pak1.pak"
|
|
category: game_data
|
|
system: halflife
|
|
path: "valve/pak1.pak"
|
|
required: false
|
|
source_ref: "filesystem/searchpath.c:188-224, filesystem/pak.c:98-157"
|
|
note: "Mounted above pak0.pak when present, as any second .pak of the folder would be. The only valve/pak1.pak released is the one the Blue Shift High Definition Pack installer writes (7839196 bytes, 99 entries: HD models, sounds and sprites for Half-Life); Steam ships no .pak in valve/."
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
# ================================================================
|
|
# Counter-Strike 1.6 (cstrike/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: cstrike
|
|
path: "cstrike/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617, filesystem/searchpath.c:327 (cstrike -> valve chain)"
|
|
note: "Declares fallback_dir \"valve\". Counter-Strike 1.6 retail descriptor."
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: cstrike
|
|
path: "cstrike/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
note: "Loose files (maps/, sprites/, sound/, models/) are the usual retail layout; a bundled pak0.pak is optional."
|
|
unsourceable: "The Linux dedicated servers hlds_l 1.1.2.0 and hlds_l_11262003 ship cstrike/ as loose files with no .pak."
|
|
|
|
# ================================================================
|
|
# Condition Zero (czero/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: czero
|
|
path: "czero/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/searchpath.c:327 (czero -> cstrike -> valve chain)"
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: czero
|
|
path: "czero/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
# ================================================================
|
|
# Condition Zero: Deleted Scenes (czeror/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: czeror
|
|
path: "czeror/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/searchpath.c:327 (czeror -> czero -> cstrike -> valve chain)"
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: czeror
|
|
path: "czeror/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
# ================================================================
|
|
# Deathmatch Classic (dmc/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: dmc
|
|
path: "dmc/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: dmc
|
|
path: "dmc/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
unsourceable: "The Linux dedicated servers that carry dmc/ (hlds_l 3.1.1.1 and 1.1.2.0) ship it as loose files with no .pak, and none of the WON patches checked carries a dmc/pak0.pak."
|
|
|
|
# ================================================================
|
|
# Opposing Force (gearbox/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: gearbox
|
|
path: "gearbox/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617"
|
|
note: "Gearbox folder is the retail Opposing Force game dir."
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: gearbox
|
|
path: "gearbox/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
unsourceable: "The free 1.1.0.8 WON patch ofo1108.exe installs a gearbox/pak0.pak of 83750141 bytes (sha1 aefbe228c010ade60e73d1ddf1f9b2878090b596) holding 514 entries with the 25 multiplayer maps and none of the of0a0 to of7a single-player maps, and the free Linux server opfor_linux.tar.gz carries a 529-entry multiplayer-only pak of 74390909 bytes, so neither is the client archive of the retail release."
|
|
|
|
# ================================================================
|
|
# Blue Shift (bshift/)
|
|
# Half-Life source dir still called "bshift" in Steam depot.
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: bshift
|
|
path: "bshift/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617"
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: bshift
|
|
path: "bshift/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in"
|
|
|
|
# ================================================================
|
|
# Ricochet (ricochet/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: ricochet
|
|
path: "ricochet/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: ricochet
|
|
path: "ricochet/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|
|
unsourceable: "The Linux dedicated servers that carry ricochet/ (hlds_l 3.1.1.1 and 1.1.2.0) ship it as loose files with no .pak, and none of the WON patches checked carries a ricochet/pak0.pak."
|
|
|
|
# ================================================================
|
|
# Team Fortress Classic (tfc/)
|
|
# ================================================================
|
|
|
|
- name: "liblist.gam"
|
|
category: game_data
|
|
system: tfc
|
|
path: "tfc/liblist.gam"
|
|
required: true
|
|
source_ref: "filesystem/gameinfo.c:617"
|
|
|
|
- name: "pak0.pak"
|
|
category: game_data
|
|
system: tfc
|
|
path: "tfc/pak0.pak"
|
|
required: false
|
|
source_ref: "filesystem/pak.c"
|