openjk - RetroBIOS¶
Technical notes
id Tech 3 source port for Star Wars Jedi Knight: Jedi Academy (JKA, single and multiplayer) and Star Wars Jedi Knight II: Jedi Outcast (JK2, single player only; JK2 MP is not supported, upstream points users to JK2MV).
One source tree, three binaries: openjk_sp JKA SP, built from code/ with BuildSPEngine openjk JKA MP, built from codemp/ with BuildMPEngine openjo_sp JK2 SP, built from code/ with BuildJK2SPEngine (same translation units, JK2_MODE defined, code/CMakeLists.txt:450-453)
BASEGAME = "base" (code/qcommon/q_shared.h:86). FS_Startup( BASEGAME ) adds base/ from cdpath, basepath, apppath, homepath via FS_AddGameDirectory (code/qcommon/files.cpp:2730) which enumerates every *.pk3 found there with Sys_ListFiles (code/qcommon/files.cpp:2770). No specific pak filename is hard-coded in the loader: the retail archives listed below are the files the stock games ship under base/, not a list the engine looks up by name.
Hard engine dependency: default.cfg (SP) or mpdefault.cfg (MP) must be readable through the virtual filesystem, otherwise FS_Startup aborts with Com_Error( ERR_FATAL, "Couldn't load default.cfg" ) at code/qcommon/files.cpp:3002-3003,3041 and codemp/qcommon/files.cpp:4039-4040,4089. Both config files live inside the retail assets0.pk3.
FS_idPak matches base/assets0 through base/assets8 (NUM_ID_PAKS = 9, codemp/qcommon/qcommon.h:567, codemp/qcommon/files.cpp:3169-3170). The MP client never auto-downloads a pak with one of those names (codemp/qcommon/files.cpp:3241) and never offers one for download (codemp/qcommon/files.cpp:4447). The check does not make any of them required.
8 files | 2 required, 6 optional | 0 in repo, 8 missing Categories: 8 game data
assets0.pk3 required missing game_data
- Path:
base/assets0.pk3 - System: jediacademy
- Source:
code/qcommon/files.cpp:3002-3003,codemp/qcommon/files.cpp:4039-4040,codemp/qcommon/files.cpp:3169-3170 - Carries default.cfg and mpdefault.cfg, the only files the SP and MP engines refuse to start without.
assets1.pk3 optional missing game_data
- Path:
base/assets1.pk3 - System: jediacademy
- Source:
codemp/qcommon/files.cpp:3169-3170 - Retail JKA base content (audio). Loader scans the directory, no hard reference.
assets2.pk3 optional missing game_data
- Path:
base/assets2.pk3 - System: jediacademy
- Source:
codemp/qcommon/files.cpp:3169-3170 - Retail JKA base content (video/cinematics).
assets3.pk3 optional missing game_data
- Path:
base/assets3.pk3 - System: jediacademy
- Source:
codemp/qcommon/files.cpp:3169-3170 - Retail JKA patch 1.01 content.
assets0.pk3 required missing game_data
- Path:
base/assets0.pk3 - System: jediknight2
- Source:
code/qcommon/files.cpp:3002-3003,code/CMakeLists.txt:450-453 - Retail JK2 base archive. Carries default.cfg; openjo_sp aborts without it.
assets1.pk3 optional missing game_data
- Path:
base/assets1.pk3 - System: jediknight2
- Source:
code/qcommon/files.cpp:2770 - Retail JK2 base content.
assets2.pk3 optional missing game_data
- Path:
base/assets2.pk3 - System: jediknight2
- Source:
code/qcommon/files.cpp:2770 - Retail JK2 base content.
assets5.pk3 optional missing game_data
- Path:
base/assets5.pk3 - System: jediknight2
- Source:
code/qcommon/files.cpp:2770 - Retail JK2 patch 1.04 content.
Generated on 2026-10-10T11:26:01Z