emulator: Yamagi Quake II type: standalone core_classification: game_engine source: "https://github.com/yquake2/yquake2" upstream: "https://github.com/yquake2/yquake2" profiled_date: "2026-10-04" source_commit: "f190ac496d00ef9238a5f16dd012c6dc81a997c9" core_version: "8.51+git" display_name: "Yamagi Quake II" cores: [yquake2] systems: [quake2, xatrix, rogue, ctf] notes: | Quake II source port. BASEDIRNAME = "baseq2" (src/common/header/common.h :36). FS_AddDirToSearchPath (src/common/filesystem.c:1646) loops pak%d. from 0 to MAX_PAKS-1 (=99) across fs_packtypes = { pak, pk3 } for the active game directory, loading each one as a protected pak. baseq2/pak0.pak is the retail data; id's 3.20 point release adds baseq2/pak1.pak, baseq2/pak2.pak and the Three Wave CTF data under ctf/. Supported official mods are listed in first_mods[] (src/common/filesystem.c:1331) = { "baseq2", "xatrix", "rogue", "ctf" }. Mod game dirs are selected via the `game` cvar (FS_InitFilesystem + FS_BuildGameSpecificSearchPath, src/common/filesystem.c:2075-2097). Each mod ships its own pak0.pak / pak1.pak (The Reckoning, Ground Zero, Three Wave CTF). Zaero support uses the same path layout (`game zaero`) but no official repository under the yquake2 org. The engine never hashes a pak. Validation is "does the pack read as a valid PAK header" (FS_LoadPAK, src/common/filesystem.c:873). Missing files produce "Couldn't load %s" at Com_Error level only for the baseq2 lookup when the game cannot find any game assets at all. Background music is streamed from /music/track02.ogg ... track22.ogg by OGG_InitTrackList (src/client/sound/ogg.c), not required for gameplay. files: # ================================================================ # Quake II (baseq2/) # pak0.pak is the retail data. The 3.20 point release adds pak1.pak # (deathmatch maps q2dm1 to q2dm8 and their textures) and pak2.pak # (two weapon skins). # ================================================================ - name: "pak0.pak" category: game_data system: quake2 path: "baseq2/pak0.pak" required: true source_ref: "src/common/filesystem.c:1688 (pak%d.%s scan), 36 (BASEDIRNAME), 1331 (first_mods[0]=baseq2)" note: "Retail Quake II data pak. Not hash-validated." - name: "pak1.pak" category: game_data system: quake2 path: "baseq2/pak1.pak" required: false source_ref: "src/common/filesystem.c:1688" note: "Shipped by the 3.20 point release." - name: "pak2.pak" category: game_data system: quake2 path: "baseq2/pak2.pak" required: false source_ref: "src/common/filesystem.c:1688" note: "Shipped by the 3.20 point release." # ================================================================ # The Reckoning (xatrix/), official Mission Pack 1 # Separate yquake2 game library repo: yquake2/xatrix. # ================================================================ - name: "pak0.pak" category: game_data system: xatrix path: "xatrix/pak0.pak" required: false source_ref: "src/common/filesystem.c:1331 (first_mods[1]=xatrix), 1688" note: "The Reckoning data. Loaded when `+set game xatrix` is passed." unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in" # ================================================================ # Ground Zero (rogue/), official Mission Pack 2 # Separate yquake2 game library repo: yquake2/rogue. # ================================================================ - name: "pak0.pak" category: game_data system: rogue path: "rogue/pak0.pak" required: false source_ref: "src/common/filesystem.c:1331 (first_mods[2]=rogue), 1688" note: "Ground Zero data. Loaded when `+set game rogue` is passed." unsourceable: "retail data the collection does not hold; a same-named file of another game must not stand in" # ================================================================ # Three Wave Capture The Flag (ctf/), official free addon # Separate yquake2 game library repo: yquake2/ctf. # ================================================================ - name: "pak0.pak" category: game_data system: ctf path: "ctf/pak0.pak" required: false source_ref: "src/common/filesystem.c:1331 (first_mods[3]=ctf), 1688" note: "Three Wave CTF data, shipped by the 3.20 point release. Loaded when `+set game ctf` is passed."