↓ Scroll to the bottom for ZIP download links. ↓
What's new?
- Enhancement (@annnoo): Added options for disabling the crosshair on saber or fists only.
- Enhancement (@annnoo): Added slider in Gameplay options for crosshair size.
- Enhancement: Added initial cvars support.
- For a full list of cvars (and console commands), just hit TAB in the Quake-style console.
- cvars are stored in
openjkdf2_cvars.json(for global cvars) and player/PLAYER_NAME/openjkdf2_cvars.json` (per-profile cvars/settings). - All values in
player/PLAYER_NAME/openjkdf2.jsonand the.plrfile will eventually be migrated to the cvars system (ie, the cvars file takes priority, even if it still reads/writes the old formats for compatibility).
- MoTS (beta):
- None for this release
cvartest.mp4
From v0.8.14
- Bugfix: Fixed idle timer (again)
- Bugfix: Fixed
.key in textboxes not working. - MoTS (beta):
- Bugfix: Fixed lighting flickering when bloom was enabled.
From v0.8.13
- Hotfix: Fix Camera #4 zNear in MoTS.
- Bugfix: Platform timers now use
CLOCK_MONOTONIC. This should prevent periodic frame skips or glitches due to network time adjustments. - Bugfix: Fixed DF2 idle camera sometimes not firing.
- Bugfix: Fixed HUD force/item icons becoming corrupted when enabling HiDPI mid-gameplay.
- Enhancement:
Disable physics steppingis nowRestore inconsistent physics; addedRestore 50Hz midair player physicsoption.- This is mostly for speedrunners/TAS feasibility testing, and anyone regression testing physics differences.
- Bugfix: Fixed air shafts running too quick at high FPS on Level 18 (see below).
- Enhancement: Added
canonicalCogTickrateandcanonicalPhysTickrateoptions to player profile JSON.canonicalCogTickratecontrols the minimum tickrate for COGs which use theSleepverb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts useSleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.canonicalPhysTickratecontrols the 'canonical' slope physics speed. By default this is the same slope speeds as JK.EXE running at 25FPS.- Neither of these settings are applied when
Restore inconsistent physicsis checked.
- MoTS (beta):
- Enhancement: Increased cutscene audio buffer size to 8MiB.
- Bugfix: Fixed security camera overlay rendering incorrectly.
- Bugfix: Fixed zNear back to original values so that security cameras don't block the camera view.
From v0.8.12
- Bugfix: Fixed rendering of some above-water transparent surfaces while underwater (ie, the vines as viewed from the sinkhole on MoTS lv12)
- Impl: Added screenshot support when pressing F12.
- Bugfix: Only send Sighted messages when not in noclip.
- This fixes the instant Objective Completed message on Lv1 when looking in the general direction of 8t88.
- MoTS (beta):
- Bugfix: Fixed the overlay map not rendering correctly on MoTS lv12.
From v0.8.11
- Hotfix 2: Fixed macOS stuttering when arrow keys/F1-F12 keys are pressed.
- Hotfix 2: Fixed a crash that happened when the SDL2 window was recreated (ie, HiDPI switching).
- Hotfix: Possibly fix performance regression from
glFlush - Hotfix: Fix Cutscenes menu disappearing after launching MoTS and then returning to DF2.
- Bugfix: Fix jkgfxmod getting stuck disabled after soft-resets sometimes.
- Bugfix: Fix SSAO rendering on NVIDIA GPUs sometimes rendering objects through walls.
- Bugfix: Fix saber blade rendering through walls if a transparent surface is on-screen.
- Bugfix: Fix some misc UAF issues which could cause the loading screen to render incorrect text and/or crash.
- MoTS (beta):
- None for this release.
From v0.8.10
- Impl: https://maxthomas.dev/openjkdf2/ now includes the Mysteries of the Sith demo.
- Bugfix: Fixed console commands in WASM builds.
- Bugfix: Fix crash in Multiplayer menu if sabers are missing (ie, MoTS demo)
- Bugfix: Fixed a bunch of memory leak issues.
- Bugfix: Fixed a bug where UI strings would persist through soft-resets.
- ie, mods which replaced "Multiplayer" with an empty string would show "Multiplayer".
- Bugfix: Fixed a bug where the MP character builder's MAT loader would persist outside the menu, leaking memory.
- Bugfix: Fixed a bug in
stdHashTablewherestdHashTable_FreeKeywould not free some elements correctly. - Bugfix: Fixed a bug where UI sounds were not correctly allocated, and only 2 of 4 slots were usable.
- MoTS (beta):
- Bugfix: Fixed Force Defense not resetting with Reset button in character editor.
About these builds
Currently, I am only providing 64-bit builds on all platforms to make it easier to find regressions and undefined behavior; 32-bit is supported but not provided. Windows/macOS zips are located in the Assets spoiler at the bottom, and Linux can download via Flathub or compiled manually (See BUILDING.md for instructions). It is recommended to backup any savedata you place significant value on before running.
About Experimental JK MoTS support
- MoTS can now be completed! But some behavior may be missing. Any bug reports on game behavior (no matter how minor) are extremely appreciated, because it helps me to keep track of what needs to be done. There's a lot, the debug menu is your friend :)
- MoTS mode can be launched by adding the
-motsCompatcommand line argument and following the install instructions, or by placingopenjkdf2-64.exe(and the other required DLLs) in an existing MoTS install folder. - MoTS mode can also be launched from the
Expansions & Modsmenu by double-clicking on the menu list entry.
Running
- Windows: Extract the distribution zip so that
openjkdf2-64.exeis in the same directory as JK.EXE, then runopenjkdf2-64.exe. - MacOS: Copy
OpenJKDF2.appinto your Applications folder and run it. You may need to right click -> Open to get around Gatekeeper. - Linux: Install via Flathub, or compile and copy
openjkdf2into the same directory as JK.EXE and run.
If game assets are missing, an install prompt will show on startup and ask for either:
- An existing GOG/Steam/original installation
- An original Disk 1, followed by Disk 2
To transfer saves, enter the main menu and select Expansions & Mods, then click Open Resource Folder. A window will open where you can copy your old player folder to. You can also install any mods to mods/ and episodes/.
mods.mp4
My game crashed, what do I do?
I'm looking for regressions and crashes! File an issue or email me at mtinc2@gmail.com with a crash stacktrace. If it's reproducible, a savefile or instructions to reproduce would also be appreciated.
- Windows: Copy the crash log from
openjkdf2-64.RPT. - MacOS: Cmd+Space, type
Console.appand copy the entire crash report fromopenjkdf2-64. Alternatively, copy the crash log fromcrash.log - Linux: Copy the crash log from
crash.logor the console output.
To open the asset directory where the crash log is located, enter the main menu and select Expansions & Mods, then click Open Resource Folder, as shown in the above mp4.
QoL feature notes:
- Built-in jkgfxmod texture pack support
- IPv6 Multiplayer support, based on Valve's GameNetworkingSockets
- SDL2 controller/joystick support, with up to 32 buttons bindable.
- Emissive Textures, Bloom, Screenspace Ambient Occlusion (SSAO)
- Music is loaded from audio tracks at
MUSIC/Track<12..32>.oggin Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded fromMUSIC/1/Track<1..11>.oggandMUSIC/2/Track<1..11>.oggfor installs made from original disks. The music looping bug is also fixed. - Menus, cutscenes and the game viewport auto-rescale to the window size, with appropriate aspect ratios (ultrawide, or at least wide-er monitor support).
- Game runs at full framerates by default instead of 30FPS/50FPS in Singleplayer (validated up to 144FPS)
- FPS can be capped to any value in Setup > Display
- VSync can be enabled or disabled in Setup > Display
- Weapon waggle is scaled properly with FPS
- FOV is adjustable in Setup > General
- HiDPI is configurable in Setup > General
- HUD elements are scaled with screen resolution
- LOD and mipmap distances are scaled with render resolution to ensure textures and models don't degrade noticeably on higher-resolution screens.
What isn't working:
- Using plus or minus to resize the screen (with SDL2, resolution auto-resizes to window size)
- In-game screenshots