JFTekWar

Release notes, version 20251227

JFTekWar is based on code published by Les Bird, programmer at Capstone in 1996. That code was made available under no particular license, so JFTekWar is made available under similar terms. Visit the JFTekWar website for the latest information. The source code for JFTekWar can be found in this Git repository.

System Requirements

At minimum, you need:

Additionally, these platforms and architectures are supported when building from source code:

Installation and Setup

After unzipping the JFTekWar package somewhere on your computer, run the main executable: JFTekWar.app on macOS, tekwar.exe on Windows. You ought to see the startup window open at the Configuration tab.

The initial startup window as it appears on macOS
Windows, Linux and BSD (if built with GTK support) have similar startup windows with the same options.

You will now need to import the game data from a commercial release of Witchaven as the game will not work without it.

  1. Click the "Choose a location..." button, then navigate to a location where Witchaven data can be found.
  2. Choose a folder and JFTekWar will then scan the location you've selected, copying any compatible game data it finds.

Where game data files are stored by JFTekWar depends on the operating system you are using:

"Portable" Installation

Typically the game will store its configuration information and saved games in a private location for your user account:

To have the game instead store these files in the working directory where the game was started, create an empty file named user_profiles_disabled (no extension) beside the executable. You can put the game data files in the same location, thus making everything self-contained and 'portable'.

Console Commands

This is a list of more useful console commands and settings and their purpose:

mousebutton <1–2> <action>
mousebutton list
Set a mouse button action. The 'list' parameter will show current action mappings.
joystickbutton <1–4> <action>
joystickbutton list
Set a joystick button action. The 'list' parameter will show current action mappings.
keybutton <hex scancode> <action>
keybutton list
Set a keyboard button action. The 'list' parameter will show current action mappings.
clear
Clear the console.
glinfo
Displays some information about the OpenGL driver. Use "glinfo exts" to display supported OpenGL extensions.
glmultisample <0, 1, 2, …>
Enable OpenGL multisample antialiasing. 0 disables it. You need to use "restartvid" to apply any changes to this value.
gltextureanisotropy <level>
Sets the OpenGL anisotropic filtering level. The default is the highest level supported by the hardware.
gltexturemode <mode-number>
Sets the OpenGL texturing mode. Valid values are:
0GL_NEAREST
1GL_LINEAR
2GL_NEAREST_MIPMAP_NEAREST
3GL_LINEAR_MIPMAP_NEAREST (bilinear)
4GL_NEAREST_MIPMAP_LINEAR (gives an unfiltered appearance like the original software renderer)
5GL_LINEAR_MIPMAP_LINEAR (trilinear, the default)
glusetexcompr <0 or 1>
Enables or disables the use of OpenGL texture compression for replacement textures. You need to use "restartvid" to apply any changes to this value.
help <name>
Displays a help message for a particular console variable or command.
listsymbols
Displays the names of all commands and variables available in the console.
osdrows <num>
Sets the number of visible lines of the console when it is open.
restartvid
Reinitialise video to apply settings changes.
screencaptureformat <0 or 1 or 2>
0 = Targa, 1 = PCX, 2 = PNG (default)
usegammabrightness <0 or 1 or 2>
Set brightness in one of several ways. 0 = palette-based, 1 = shader-based (default), 2 = system gamma. System gamma will brighten the whole display when in windowed mode.
usegoodalpha <0 or 1>
If 1, a lower alpha cutoff value is used when rendering textures with transparency, which gives better looking transparent textures at the expense of some sprites behind the transparent item potentially being invisible in certain circumstances. 0 is a more compatible value (and is the default) for this option but slight visual degradation will result.
vidmode <bpp>
vidmode <xdim> <ydim> [bpp [fs [display]]]
Change the video mode. xdim ydim are the resolution. bpp is the colour depth (8, 16, 24, 32). fs is 0 for windowed, 1 for fullscreen. display is a display number for fullscreen mode, with 0 being the primary display.
maxrefreshfreq <0 or freq>
Set the highest display refresh frequency for fullscreen OpenGL modes. 0 is the default representing 'no maximum'.

License

JFTekWar is not licensed under any discernable terms. Let's all just hope no spectre of Capstone or Intracorp one day rises to stomp on it.

The JFBuild engine used in JFTekWar is used under the terms of the BUILD Source Code License.