Skip to content

Releases: shinyquagsire23/OpenJKDF2

v0.9.2 64-bit Debug

17 Nov 02:50
Compare
Choose a tag to compare
v0.9.2 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

Sorry for the long delay (wow, I guess it was almost exactly a year). Got busy w/ work and then got laid off, then got a new job, super hectic lol. Please let me know if the builds aren't working, build dependencies can be a challenge sometimes.

What's new?

  • Bugfix: Fixed multiplayer map loading
  • MoTS (beta):
    • Bugfix: Fixed rancor collision boxes (Implemented SITH_COLLIDE_TREE)
  • Developers/Experimental:
    • I fixed CMake building again, yay

From v0.9.1

  • Hotfix: Fixed missing libssp-0.dll in win64 zip.
  • Bugfix: Fixed explosion colors
  • Bugfix: Fixed a bug in sithCogFunctionSurface_GetSurfaceAdjoin
  • Bugfix: Fixed implicit function decl bug in sithCogFunctionAI_AISetMoveSpeed
  • QoL: Mouse look defaults to non-inverted now when making new profiles.
  • Improvement: Improved emissive textures for jkgfxmod overrides when bloom is disabled.
  • Bugfix: Fixed crashes when parameter is not passed to activate, jump (dev console), hyper (JKDF2) and quickzap (MoTS) commands.
  • Bugfix: Fixed alignment differences not persisting when loading from a savefile or via debug menu (ie, Jan appears in Boc fight, incorrect cutscenes, etc)
  • MoTS (beta):
    • Bugfix: fix sithDSSThing_SendSyncThing MP item respawn
  • Developers/Experimental:
    • Lots of CMake/multi-platform cleanup and improvements
    • Attempted a port to the DSi (barely works, probably not viable but a good proof-of-concept)
    • Android port has audio now

From v0.9.0

  • Everything: The build system has been overhauled to reduce external dependencies and maintain the same library versions across all platforms (special thanks to @JakeSmarter for doing a LOT of the legwork on this).
    • For Windows users, the following files are no longer used and may now be deleted: glew32.dll, libogg-0.dll, libopus-0.dll, libopusfile-0.dll, libprotobuf.dll.
    • I did my best to test these changes, but it's possible some bugs emerged as a result. Testing/bug reports are greatly appreciated!
  • Windows: openjkdf2-64.exe is now compiled with -O2 optimization instead of debug optimization.
    • This should hopefully improve strange performance scaling issues with SSAA.
  • Windows/Development: MSVC/Visual Studio support is greatly improved, and GameNetworkingSockets is now fully supported.
  • Bugfix: HiDPI/screen scaling should no longer results in blurry/downscaled rendering on Windows.
  • Bugfix: Fixed a potential crash in sithAIAwareness_sub_4F2C30
  • Bugfix: Fixed undefined behavior in Valve GNS bindings which prohibited others from joining games on newer macOS compiles.
  • MoTS (beta):
    • None for this release

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.9.1 64-bit Debug

16 Nov 02:37
Compare
Choose a tag to compare
v0.9.1 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • Hotfix: Fixed missing libssp-0.dll in win64 zip.
  • Bugfix: Fixed explosion colors
  • Bugfix: Fixed a bug in sithCogFunctionSurface_GetSurfaceAdjoin
  • Bugfix: Fixed implicit function decl bug in sithCogFunctionAI_AISetMoveSpeed
  • QoL: Mouse look defaults to non-inverted now when making new profiles.
  • Improvement: Improved emissive textures for jkgfxmod overrides when bloom is disabled.
  • Bugfix: Fixed crashes when parameter is not passed to activate, jump (dev console), hyper (JKDF2) and quickzap (MoTS) commands.
  • Bugfix: Fixed alignment differences not persisting when loading from a savefile or via debug menu (ie, Jan appears in Boc fight, incorrect cutscenes, etc)
  • MoTS (beta):
    • Bugfix: fix sithDSSThing_SendSyncThing MP item respawn
  • Developers/Experimental:
    • Lots of CMake/multi-platform cleanup and improvements
    • Attempted a port to the DSi (barely works, probably not viable but a good proof-of-concept)
    • Android port has audio now

From v0.9.0

  • Everything: The build system has been overhauled to reduce external dependencies and maintain the same library versions across all platforms (special thanks to @JakeSmarter for doing a LOT of the legwork on this).
    • For Windows users, the following files are no longer used and may now be deleted: glew32.dll, libogg-0.dll, libopus-0.dll, libopusfile-0.dll, libprotobuf.dll.
    • I did my best to test these changes, but it's possible some bugs emerged as a result. Testing/bug reports are greatly appreciated!
  • Windows: openjkdf2-64.exe is now compiled with -O2 optimization instead of debug optimization.
    • This should hopefully improve strange performance scaling issues with SSAA.
  • Windows/Development: MSVC/Visual Studio support is greatly improved, and GameNetworkingSockets is now fully supported.
  • Bugfix: HiDPI/screen scaling should no longer results in blurry/downscaled rendering on Windows.
  • Bugfix: Fixed a potential crash in sithAIAwareness_sub_4F2C30
  • Bugfix: Fixed undefined behavior in Valve GNS bindings which prohibited others from joining games on newer macOS compiles.
  • MoTS (beta):
    • None for this release

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.9.0 64-bit Debug

16 Jun 02:55
Compare
Choose a tag to compare
v0.9.0 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • Everything: The build system has been overhauled to reduce external dependencies and maintain the same library versions across all platforms (special thanks to @JakeSmarter for doing a LOT of the legwork on this).
    • For Windows users, the following files are no longer used and may now be deleted: glew32.dll, libogg-0.dll, libopus-0.dll, libopusfile-0.dll, libprotobuf.dll.
    • I did my best to test these changes, but it's possible some bugs emerged as a result. Testing/bug reports are greatly appreciated!
  • Windows: openjkdf2-64.exe is now compiled with -O2 optimization instead of debug optimization.
    • This should hopefully improve strange performance scaling issues with SSAA.
  • Windows/Development: MSVC/Visual Studio support is greatly improved, and GameNetworkingSockets is now fully supported.
  • Bugfix: HiDPI/screen scaling should no longer results in blurry/downscaled rendering on Windows.
  • Bugfix: Fixed a potential crash in sithAIAwareness_sub_4F2C30
  • Bugfix: Fixed undefined behavior in Valve GNS bindings which prohibited others from joining games on newer macOS compiles.
  • MoTS (beta):
    • None for this release

From v0.8.19

  • Hotfix (2023/06/11): Fix macOS x86_64 crashing on startup for real this time
  • Hotfix: Fix macOS crashing on startup
  • Bugfix: Fixed multiplayer being broken in DF2 due to an incorrect MoTS-compat if branch; The host would be invisible to connecting clients (but not the other way around, usually)
  • Bugfix: Fixed a possible multiplayer crash on poorly-formatted maps with less than 32 spawn points.
  • MoTS (beta):
    • None for this release

From v0.8.18

  • Bugfix: Fixed a bug where closing the window before loading a player profile would zero the keybinds of the last-loaded player profile (from registry JSON).
  • Bugfix: Fixed a bug where zeroed keybinds would cause an infloop in the Keyboard settings.
  • Enhancement: Added initial support for internationalization: ui/openjkdf2_i8n.uni will now override most of the other string files, and all added UI text is now located in ui/openjkdf2.uni. These files are embedded in the binary by default, but can be loaded from on-disk (ie, resource/ui/openjkdf2.uni).
    • More info is located in the resource/ui/openjkdf2_i8n.uni file in the repo as to what files it can currently override, if you're interested in localizing JKDF2 and have suggestions for improvements, let me know!
    • Misc downstream effect: stdGob now allows buffering files completely in memory, which may be useful for networked assets (or caching GOBs in RAM idk).
  • MoTS (beta):
    • None for this release

From v0.8.17

  • Enhancement (@JakeSmarter): de/pl descriptions for Flatpak.
  • Bugfix: Fixed global cvars resetting + not loading correctly.
  • Bugfix: Fixed automatic updating being broken on Win64.
  • Bugfix/Enhancement: Take into account the name of the EXE when automatically updating: openjkdf2-64.exes renamed to JediKnight.exe or JK.EXE for Steam/GOG/other launchers will now be automatically updated correctly.
  • MoTS (beta):
    • None for this release

From v0.8.16

  • Enhancement: Added support for fully automatic updating (Windows) and semi-automatic updating (macOS).
    • On Windows, Github .zip releases can be downloaded in-game via the top-left notification. The .zip will be downloaded, old files will be renamed with .bak extensions, and the new release will overwrite the old one.
    • On macOS, Github .tar.gz releases can be downloaded in-game via the top-left notification. The .tar.gz will be downloaded, and opened in the default program for .tar.gz files. The user must complete installation by dragging it to Applications for now.
    • On Linux, updating is handled by package management, however it will still show a notification in the top-left.
    • net_disableUpdates can be set to 1 in the Quake-style console to disable updates and update notifications.
    • Releases can also be pulled from forks/mirrors by changing the net_updaterUrl, net_win64UpdateFilename and net_macosUpdateFilename cvars.
  • Bugfix: Fixed znear clipping on weapons, and added a hack for MoTS security camera znears.
  • MoTS (beta):
    • None for this release

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.8.19 64-bit Debug

09 Jun 07:06
Compare
Choose a tag to compare
v0.8.19 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • Hotfix (2023/06/11): Fix macOS x86_64 crashing on startup for real this time
  • Hotfix: Fix macOS crashing on startup
  • Bugfix: Fixed multiplayer being broken in DF2 due to an incorrect MoTS-compat if branch; The host would be invisible to connecting clients (but not the other way around, usually)
  • Bugfix: Fixed a possible multiplayer crash on poorly-formatted maps with less than 32 spawn points.
  • MoTS (beta):
    • None for this release

From v0.8.18

  • Bugfix: Fixed a bug where closing the window before loading a player profile would zero the keybinds of the last-loaded player profile (from registry JSON).
  • Bugfix: Fixed a bug where zeroed keybinds would cause an infloop in the Keyboard settings.
  • Enhancement: Added initial support for internationalization: ui/openjkdf2_i8n.uni will now override most of the other string files, and all added UI text is now located in ui/openjkdf2.uni. These files are embedded in the binary by default, but can be loaded from on-disk (ie, resource/ui/openjkdf2.uni).
    • More info is located in the resource/ui/openjkdf2_i8n.uni file in the repo as to what files it can currently override, if you're interested in localizing JKDF2 and have suggestions for improvements, let me know!
    • Misc downstream effect: stdGob now allows buffering files completely in memory, which may be useful for networked assets (or caching GOBs in RAM idk).
  • MoTS (beta):
    • None for this release

From v0.8.17

  • Enhancement (@JakeSmarter): de/pl descriptions for Flatpak.
  • Bugfix: Fixed global cvars resetting + not loading correctly.
  • Bugfix: Fixed automatic updating being broken on Win64.
  • Bugfix/Enhancement: Take into account the name of the EXE when automatically updating: openjkdf2-64.exes renamed to JediKnight.exe or JK.EXE for Steam/GOG/other launchers will now be automatically updated correctly.
  • MoTS (beta):
    • None for this release

From v0.8.16

  • Enhancement: Added support for fully automatic updating (Windows) and semi-automatic updating (macOS).
    • On Windows, Github .zip releases can be downloaded in-game via the top-left notification. The .zip will be downloaded, old files will be renamed with .bak extensions, and the new release will overwrite the old one.
    • On macOS, Github .tar.gz releases can be downloaded in-game via the top-left notification. The .tar.gz will be downloaded, and opened in the default program for .tar.gz files. The user must complete installation by dragging it to Applications for now.
    • On Linux, updating is handled by package management, however it will still show a notification in the top-left.
    • net_disableUpdates can be set to 1 in the Quake-style console to disable updates and update notifications.
    • Releases can also be pulled from forks/mirrors by changing the net_updaterUrl, net_win64UpdateFilename and net_macosUpdateFilename cvars.
  • Bugfix: Fixed znear clipping on weapons, and added a hack for MoTS security camera znears.
  • MoTS (beta):
    • None for this release

From v0.8.15

  • 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.json and the .plr file 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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.

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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 ...
Read more

v0.8.18 64-bit Debug

30 Mar 01:32
Compare
Choose a tag to compare
v0.8.18 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • Bugfix: Fixed a bug where closing the window before loading a player profile would zero the keybinds of the last-loaded player profile (from registry JSON).
  • Bugfix: Fixed a bug where zeroed keybinds would cause an infloop in the Keyboard settings.
  • Enhancement: Added initial support for internationalization: ui/openjkdf2_i8n.uni will now override most of the other string files, and all added UI text is now located in ui/openjkdf2.uni. These files are embedded in the binary by default, but can be loaded from on-disk (ie, resource/ui/openjkdf2.uni).
    • More info is located in the resource/ui/openjkdf2_i8n.uni file in the repo as to what files it can currently override, if you're interested in localizing JKDF2 and have suggestions for improvements, let me know!
    • Misc downstream effect: stdGob now allows buffering files completely in memory, which may be useful for networked assets (or caching GOBs in RAM idk).
  • MoTS (beta):
    • None for this release

From v0.8.17

  • Enhancement (@JakeSmarter): de/pl descriptions for Flatpak.
  • Bugfix: Fixed global cvars resetting + not loading correctly.
  • Bugfix: Fixed automatic updating being broken on Win64.
  • Bugfix/Enhancement: Take into account the name of the EXE when automatically updating: openjkdf2-64.exes renamed to JediKnight.exe or JK.EXE for Steam/GOG/other launchers will now be automatically updated correctly.
  • MoTS (beta):
    • None for this release

From v0.8.16

  • Enhancement: Added support for fully automatic updating (Windows) and semi-automatic updating (macOS).
    • On Windows, Github .zip releases can be downloaded in-game via the top-left notification. The .zip will be downloaded, old files will be renamed with .bak extensions, and the new release will overwrite the old one.
    • On macOS, Github .tar.gz releases can be downloaded in-game via the top-left notification. The .tar.gz will be downloaded, and opened in the default program for .tar.gz files. The user must complete installation by dragging it to Applications for now.
    • On Linux, updating is handled by package management, however it will still show a notification in the top-left.
    • net_disableUpdates can be set to 1 in the Quake-style console to disable updates and update notifications.
    • Releases can also be pulled from forks/mirrors by changing the net_updaterUrl, net_win64UpdateFilename and net_macosUpdateFilename cvars.
  • Bugfix: Fixed znear clipping on weapons, and added a hack for MoTS security camera znears.
  • MoTS (beta):
    • None for this release

From v0.8.15

  • 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.json and the .plr file 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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.

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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...
Read more

v0.8.17 64-bit Debug

26 Mar 19:03
Compare
Choose a tag to compare
v0.8.17 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • Enhancement (@JakeSmarter): de/pl descriptions for Flatpak.
  • Bugfix: Fixed global cvars resetting + not loading correctly.
  • Bugfix: Fixed automatic updating being broken on Win64.
  • Bugfix/Enhancement: Take into account the name of the EXE when automatically updating: openjkdf2-64.exes renamed to JediKnight.exe or JK.EXE for Steam/GOG/other launchers will now be automatically updated correctly.
  • MoTS (beta):
    • None for this release

From v0.8.16

  • Enhancement: Added support for fully automatic updating (Windows) and semi-automatic updating (macOS).
    • On Windows, Github .zip releases can be downloaded in-game via the top-left notification. The .zip will be downloaded, old files will be renamed with .bak extensions, and the new release will overwrite the old one.
    • On macOS, Github .tar.gz releases can be downloaded in-game via the top-left notification. The .tar.gz will be downloaded, and opened in the default program for .tar.gz files. The user must complete installation by dragging it to Applications for now.
    • On Linux, updating is handled by package management, however it will still show a notification in the top-left.
    • net_disableUpdates can be set to 1 in the Quake-style console to disable updates and update notifications.
    • Releases can also be pulled from forks/mirrors by changing the net_updaterUrl, net_win64UpdateFilename and net_macosUpdateFilename cvars.
  • Bugfix: Fixed znear clipping on weapons, and added a hack for MoTS security camera znears.
  • MoTS (beta):
    • None for this release

From v0.8.15

  • 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.json and the .plr file 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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.

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.8.16 64-bit Debug

18 Mar 03:55
Compare
Choose a tag to compare
v0.8.16 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • Enhancement: Added support for fully automatic updating (Windows) and semi-automatic updating (macOS).
    • On Windows, Github .zip releases can be downloaded in-game via the top-left notification. The .zip will be downloaded, old files will be renamed with .bak extensions, and the new release will overwrite the old one.
    • On macOS, Github .tar.gz releases can be downloaded in-game via the top-left notification. The .tar.gz will be downloaded, and opened in the default program for .tar.gz files. The user must complete installation by dragging it to Applications for now.
    • On Linux, updating is handled by package management, however it will still show a notification in the top-left.
    • net_disableUpdates can be set to 1 in the Quake-style console to disable updates and update notifications.
    • Releases can also be pulled from forks/mirrors by changing the net_updaterUrl, net_win64UpdateFilename and net_macosUpdateFilename cvars.
  • Bugfix: Fixed znear clipping on weapons, and added a hack for MoTS security camera znears.
  • MoTS (beta):
    • None for this release

From v0.8.15

  • 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.json and the .plr file 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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.

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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.8.15 64-bit Debug

26 Feb 04:50
Compare
Choose a tag to compare
v0.8.15 64-bit Debug Pre-release
Pre-release

↓ 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.json and the .plr file 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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 stdHashTable where stdHashTable_FreeKey would 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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.8.14 64-bit Debug

12 Feb 01:34
Compare
Choose a tag to compare
v0.8.14 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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 stdHashTable where stdHashTable_FreeKey would 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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓

v0.8.13 64-bit Debug

11 Feb 05:13
Compare
Choose a tag to compare
v0.8.13 64-bit Debug Pre-release
Pre-release

↓ Scroll to the bottom for ZIP download links. ↓

What's new?

  • 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 stepping is now Restore inconsistent physics; added Restore 50Hz midair player physics option.
    • 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 canonicalCogTickrate and canonicalPhysTickrate options to player profile JSON.
    • canonicalCogTickrate controls the minimum tickrate for COGs which use the Sleep verb. In the original game, the 50Hz frame limiter caused all sleep operations <0.02s to round up to 0.02s or greater. Several scripts use Sleep(0.01), meaning that the actual delay was always 0.02s in JK.EXE, but not in OpenJKDF2.
    • canonicalPhysTickrate controls 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 physics is 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 stdHashTable where stdHashTable_FreeKey would 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 -motsCompat command line argument and following the install instructions, or by placing openjkdf2-64.exe (and the other required DLLs) in an existing MoTS install folder.
  • MoTS mode can also be launched from the Expansions & Mods menu by double-clicking on the menu list entry.

Running

  • Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE, then run openjkdf2-64.exe.
  • MacOS: Copy OpenJKDF2.app into 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 openjkdf2 into 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 [email protected] 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.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
  • Linux: Copy the crash log from crash.log or 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>.ogg in Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded from MUSIC/1/Track<1..11>.ogg and MUSIC/2/Track<1..11>.ogg for 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

↓ Downloads here ↓