mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 07:33:45 -06:00
One run of profile_sync --all --rebase-refs --fresh. Every guard held: no ref to review, no prose left under an older pin, no file name or hash literal gained in a cited file since the pin, no built_by pin and no pin keyed by build mode. The site's record of cited source paths is rebuilt with them.
249 lines
9.0 KiB
YAML
249 lines
9.0 KiB
YAML
emulator: OpenJKDF2
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/shinyquagsire23/OpenJKDF2"
|
|
upstream: "https://github.com/shinyquagsire23/OpenJKDF2"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "e4f7c0a2b10ab8ed8b89a6c90c61153604ae2e39"
|
|
core_version: "0.9.9.0"
|
|
display_name: "OpenJKDF2"
|
|
cores: []
|
|
systems:
|
|
- dark-forces-ii
|
|
- mysteries-of-the-sith
|
|
- droidworks
|
|
|
|
notes: |
|
|
Reimplementation of LucasArts' Sith engine. Runs Star Wars Jedi Knight:
|
|
Dark Forces II (1997), its Mysteries of the Sith expansion (1998) with
|
|
the `-motsCompat` switch, and Star Wars DroidWorks (1998) via the
|
|
DroidWorks branch of the build.
|
|
|
|
Resource mounting (src/Main/jkRes.c):
|
|
aGobDirectories[3] "resource" root, auto-mounted at startup
|
|
(src/Main/jkRes.c:37 jkRes_LoadNew)
|
|
aGobDirectories[1] "episode\<name>.gob" / ".goo" for the active
|
|
episode, mounted by jkRes_LoadGob
|
|
(src/Main/jkRes.c:103-106)
|
|
aGobDirectories[4] gamedata\resource (CD overlay), mounted by
|
|
jkRes_LoadCd (src/Main/jkRes.c:130-131)
|
|
|
|
The asset root is the working directory when it holds resource/jk_.cd,
|
|
else the per-user data directory, whose last component is openjkdf2,
|
|
openjkmots or opendroidworks (src/Main/InstallHelper.c:97,
|
|
src/Main/InstallHelper.c:239-270). Paths below are written under that
|
|
component.
|
|
|
|
jkRes_LoadNew mounts every .gob (.goo in Mysteries of the Sith mode) of
|
|
resource/ (src/Main/jkRes.c:287-300) and jkEpisode lists every one of
|
|
episode/ (src/Main/jkEpisode.c:106).
|
|
|
|
Required-asset lists are declared in src/Main/InstallHelper.c and
|
|
checked by InstallHelper_CheckInstalled / AttemptInstallFromExisting;
|
|
a missing entry aborts installation (src/Main/InstallHelper.c:748-756,
|
|
1091-1097, 1229-1256).
|
|
|
|
JK.EXE / JKM.EXE are only consumed by the 32-bit static-recomp build
|
|
(src/main.c:696-718, gated by `!ARCH_64BIT && !ARCH_WASM &&
|
|
!TARGET_ANDROID`), which mmaps the retail binary at 0x400000 and
|
|
patches it via do_hooks(). The 64-bit, WASM and Android builds skip
|
|
that path and do not read JK.EXE at all.
|
|
|
|
files:
|
|
# ================================================================
|
|
# Jedi Knight: Dark Forces II (base game)
|
|
# ================================================================
|
|
|
|
- name: "JK1.gob"
|
|
path: "openjkdf2/episode/JK1.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:34 (aRequiredAssets)"
|
|
note: "Single-player episode data."
|
|
|
|
- name: "JK1CTF.gob"
|
|
path: "openjkdf2/episode/JK1CTF.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:35 (aRequiredAssets)"
|
|
note: "Multiplayer CTF episode."
|
|
|
|
- name: "JK1MP.gob"
|
|
path: "openjkdf2/episode/JK1MP.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:36 (aRequiredAssets)"
|
|
note: "Multiplayer deathmatch episode. Default -episode value in src/Main/Main.c:121."
|
|
|
|
- name: "Res1hi.gob"
|
|
path: "openjkdf2/resource/Res1hi.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:37 (aRequiredAssets)"
|
|
note: "High-resolution textures and sprites."
|
|
|
|
- name: "Res2.gob"
|
|
path: "openjkdf2/resource/Res2.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:38 (aRequiredAssets)"
|
|
note: "Shared engine resources: sounds, 3DOs, materials."
|
|
|
|
- name: "jk_.cd"
|
|
path: "openjkdf2/resource/jk_.cd"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:39 (aRequiredAssets), src/Main/InstallHelper.c:764-769, src/Main/InstallHelper.c:1334-1336, src/engine_config.h:261"
|
|
note: |
|
|
4-byte marker. The install helper writes JKRES_MAGIC_1 into it once the
|
|
assets are copied, 0x699232C4 for this game. At startup a missing
|
|
marker sends the engine to the required-asset check.
|
|
|
|
- name: "jk1demo.gob"
|
|
path: "openjkdf2/episode/jk1demo.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: false
|
|
source_ref: "src/Main/InstallHelper.c:654, src/Main/InstallHelper.c:841"
|
|
note: "Single-player episode of the demo, copied by the install helper when present."
|
|
|
|
- name: "jk1mpdem.gob"
|
|
path: "openjkdf2/episode/jk1mpdem.gob"
|
|
aliases: ["jk1mpdemo.gob"]
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: false
|
|
source_ref: "src/Main/InstallHelper.c:655-656, src/Main/InstallHelper.c:842-843"
|
|
note: "Multiplayer episode of the demo. The install helper copies it under either name."
|
|
|
|
- name: "res1demo.gob"
|
|
path: "openjkdf2/resource/res1demo.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: false
|
|
source_ref: "src/Main/InstallHelper.c:657, src/Main/InstallHelper.c:844"
|
|
note: "Resources of the demo, copied by the install helper when present."
|
|
|
|
- name: "Res1low.gob"
|
|
path: "openjkdf2/resource/Res1low.gob"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: false
|
|
source_ref: "src/Main/InstallHelper.c:71 (aDiskAssetMap)"
|
|
note: "Low-resolution textures shipped on the CD under MININSTALL/."
|
|
|
|
- name: "JK.EXE"
|
|
system: dark-forces-ii
|
|
category: game_data
|
|
required: false
|
|
source_ref: "src/main.c:696-718, src/Main/InstallHelper.c:494 (aInstallOptionalAssets)"
|
|
note: |
|
|
Retail executable mmap'd at 0x400000 and patched by do_hooks() in the
|
|
32-bit static-recomp build. Not read by the 64-bit, WASM or Android
|
|
builds.
|
|
|
|
# ================================================================
|
|
# Mysteries of the Sith (expansion, -motsCompat)
|
|
# ================================================================
|
|
|
|
- name: "JKM.goo"
|
|
path: "openjkmots/episode/JKM.goo"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:48 (aRequiredAssetsMots)"
|
|
note: "Main MoTS single-player episode."
|
|
|
|
- name: "JKM_KFY.goo"
|
|
path: "openjkmots/episode/JKM_KFY.goo"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:45 (aRequiredAssetsMots)"
|
|
|
|
- name: "JKM_MP.goo"
|
|
path: "openjkmots/episode/JKM_MP.goo"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:46 (aRequiredAssetsMots)"
|
|
|
|
- name: "JKM_SABER.goo"
|
|
path: "openjkmots/episode/JKM_SABER.goo"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:47 (aRequiredAssetsMots)"
|
|
|
|
- name: "Jkmres.goo"
|
|
path: "openjkmots/resource/Jkmres.goo"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:49 (aRequiredAssetsMots)"
|
|
note: "Shared MoTS engine resources."
|
|
|
|
- name: "JKMsndLO.goo"
|
|
path: "openjkmots/resource/JKMsndLO.goo"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:50 (aRequiredAssetsMots)"
|
|
note: "Low-quality sound bank (MININSTALL/JKMSNDLO.GOO on the CD)."
|
|
|
|
- name: "jk_.cd"
|
|
path: "openjkmots/resource/jk_.cd"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:51 (aRequiredAssetsMots), src/Main/InstallHelper.c:1318-1320, src/Main/jkRes.c:232-235, src/engine_config.h:265-268"
|
|
note: |
|
|
4-byte marker holding 0x3B426929. InstallHelper_SetCwd reads it at
|
|
startup and enables Mysteries of the Sith mode when it finds that
|
|
value.
|
|
|
|
- name: "JKM.EXE"
|
|
system: mysteries-of-the-sith
|
|
category: game_data
|
|
required: false
|
|
source_ref: "src/main.c:696-718, src/Main/InstallHelper.c:495 (aInstallOptionalAssets)"
|
|
note: "MoTS retail executable, used only by the 32-bit static-recomp build."
|
|
|
|
# ================================================================
|
|
# Star Wars DroidWorks (Main_bDroidWorks branch)
|
|
# ================================================================
|
|
|
|
- name: "dwCD.GOB"
|
|
system: droidworks
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:58 (aRequiredAssetsDroidworks), src/Dw/dwInits.cpp:72-98"
|
|
note: "CD-image data archive, mounted by dwGob."
|
|
|
|
- name: "dwHD.GOB"
|
|
system: droidworks
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:59 (aRequiredAssetsDroidworks), src/Dw/dwInits.cpp:72-98"
|
|
note: "Hard-drive install archive."
|
|
|
|
- name: "dwMin.GOB"
|
|
system: droidworks
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:60 (aRequiredAssetsDroidworks), src/Dw/dwInits.cpp:72-98"
|
|
note: "Minimum-install archive."
|
|
|
|
- name: "dwStream.GOB"
|
|
system: droidworks
|
|
category: game_data
|
|
required: true
|
|
source_ref: "src/Main/InstallHelper.c:61 (aRequiredAssetsDroidworks), src/Dw/dwInits.cpp:98"
|
|
note: "Streamed WAV audio, listed only in the WAV ext search path."
|