JFWitchaven

Release notes, version 20251227

JFWitchaven is based on code published by Les Bird, programmer at Capstone in 1996. That code was made available under no particular license, so JFWitchaven is made available under similar terms. Visit the JFWitchaven website for the latest information. The source code for JFWitchaven 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 JFWitchaven package somewhere on your computer, run the main executable: JFWitchaven.app on macOS, whaven.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 or the 3-level preview version 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 JFWitchaven will then scan the location you've selected, copying any compatible game data it finds.

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

Below are known locations of Witchaven game data for various sources:

MS DOS Registered version CD-ROM
In the WHAVEN directory of the disc.
Registered version from GOG.com on Windows
In GOG Galaxy 2, go to Witchaven, open the 'options' menu (beside Play), choose Manage installation > Show folder. Make note of this location to use for importing.
Registered version from Steam on Windows
In Steam, go to Witchaven, open the 'gear' menu, choose Manage > Browse local files. Make note of this location to use for importing.
MS DOS 3-level Preview version
You can fetch whcdpreview.zip from my site ready to unzip and point JFWitchaven at for importing.

"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

JFWitchaven 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 JFWitchaven is used under the terms of the BUILD Source Code License.