Skip to content

v0.9.0 64-bit Debug

Pre-release
Pre-release
Compare
Choose a tag to compare
@shinyquagsire23 shinyquagsire23 released this 16 Jun 02:55
· 74 commits to master since this 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 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.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 ↓