News from Hammer of Thyrion:
  • 2016-08-28: New MorphOS, AROS, and AmigaOS packages:
    Rebuilt and re-uploaded the MorphOS, AmigaOS and AROS packages to fix a few AHI and joystick issues. The packages have "1.5.8a" as the version number. Also rebuilt and re-uploaded the corresponding demo version packages. For those who build from the source code, apply the 1.5.8a patch to the original 1.5.8 source. The changes are as follows:
    • sound (AHI backend): fix sample rates lower than 11025 Hz.
    • sound (AHI backend): fix bad sound with sample rates which are not a multiple of 11025.
    • input: limit lowlevel.library joystick ports to 0-3.
    • opengl (amigaos3, MiniGL): smart and automatic locking support. new cvar gl_lockmode, valid values: "manual" (default), "auto", and "smart".

  • 2016-08-17: Hammer of Thyrion version 1.5.8 is released:

    Version 1.5.8 of Hexen II: Hammer of Thyrion (uHexen2) is released. All users are encouraged to upgrade.

    Uploaded the source code, as well as packages for Win32, Win64, Mac OS X, Linux-x86, Linux-x86_64, DOS, AROS-x86, m68k-AmigaOS, and MorphOS.

    The changes since the previous release are as follows:
    • Software renderer: Fixed a reported crash if the engine is compiled with certain Visual Studio versions (bug #62.)
    • Software renderer: Fixed sky scaling issues, thanks to Szilard Biro. (fix found in 'ToChriS' quake source.)
    • Software renderer: Fixed scaling console backgrounds whose dimensions are not the default 320x200. One such example is the "Game of Tomes" mod which has a 1024x768 conback.lmp.
    • Hexenworld server: Added "-protocol x" command line option to force the server to use a specific protocol (25 or 26), if so required.
    • Amiga: Video fixes. On AROS, the game does not 'freeze' in fullscreen mode anymore if the 'Timidity:' assign is not present.
    • Amiga: m68k-amigaos support. (Use VBCC as the compiler, gcc has code generation issues.)
    • Windows: Visual Studio builds no longer require yasm or nasm. Tested compilation using VS2015-update/2.
    • DOS, PCI sound driver: Updates, more Intel HDA chipsets recognized.
    • DOS, 3dfx opengl: Macronix (MX86251) variants of Voodoo Rush boards are now functional.
    • DOS, 3dfx opengl: Further updates/fixes to opengl and glide drivers. Updates to DXE exports so that more opengl driver builds would work without requiring an engine recompile.
    • All platforms, gameplay: Fixed an issue with the rider bosses Death, Pestilence and War in coop mode. (as reported by Spike and Korax.)
    • Other minor fixes/tidy-ups elsewhere in the source.


  • 2016-08-16: Gamedata v1.29a:
    Posted gamecode-v1.29a: see here.

  • 2016-02-02: New MorphOS and AROS packages:
    Rebuilt and re-uploaded the MorphOS and AROS packages to fix in-game video mode changing issues. The packages have "1.5.7b" as the version number. Also rebuilt and re-uploaded the corresponding demo version packages.

  • 2016-01-28: Updated HCode archive:
    Updated my HexenC archive, an archive of HexenC code for all hexen2 binary releases: see here.

  • 2016-01-25: Hammer of Thyrion version 1.5.7 is released:

    Version 1.5.7 of Hexen II: Hammer of Thyrion (uHexen2) is released. All users are encouraged to upgrade.

    Uploaded the source code, as well as packages for Win32, Win64, Mac OS X, Linux-x86, Linux-x86_64, DOS, AROS-x86, and MorphOS.

    The changes since the previous release are as follows:
    • All platforms, gameplay, mission pack: fixed an hcode bug which would make the spiders seemingly invincible for a difficulty-depending time.
    • All platforms, gameplay: Crusader partial heal at certain experience thresholds now starts at level 3 to be consistent with the manual.
    • All platforms, gameplay: Many small HexenC fixes and clean-ups.
    • All platforms, hexen2: Better cross-map demo playback support.
    • OpenGL: fix screenshots when screen width isn't a multiple of 4.
    • OpenGL: minor gamma updates.
    • Windows: fixed DPI scaling issues.
    • Windows, CD audio: fixed the "-cddev" command line option.
    • Music: Support for FLAC codec and tracker (MOD) music including unreal umx files. (edit the makefiles to enable when compiling.)
    • Utils, hcc: Added a command line option "-os" to compact the strings heap by eliminating duplicates. some minor revisions.
    • Utils, jsh2color: ignore minlight values from the -light command line switch: eliminates the majority of the ugly black patches from eidolon and rider2c maps. bumped its version to 1.2.6.
    • All platforms: External wal texture loading is now a compile time option, disabled by default.
    • HexenWorld: Support for a new protocol 26: if the client sends '*cap' userinfo with a 'c', the server returns protocol 26 instead of 25 and sends the sound and model lists in small chunks like quakeworld does. Old clients versus new servers and new clients versus old servers are not affected and run using the original protocol 25 as they used to. The new protocol 26 connection sequence avoids packet fragmentation.
    • DOS: HexenWorld is now supported on DOS. requires uhexen2 v1.5.7 or newer hexenworld servers to connect. (see above for hw protocol 26.)
    • DOS: OpenGL support on 3Dfx Voodoo cards.
    • DOS: Experimental support for several PCI sound cards (see README.dos)
    • Several small fixes, tidy-ups, safeguards elsewhere in the sources.
    • Added a shell script to run different versions of the game which can be useful for system-wide installations. (see scripts/
    • Removed the gtk launcher.
    • Updated third-party libraries (music codecs and SDL).


  • 2013-04-07: Project page upgraded:
    Our project page has just been upgraded to the new allura system of As such, some links changed in the process:
    Project Tracker (tickets):
    SVN repository:

  • 2013-03-15: Hammer of Thyrion version 1.5.6 is released:

    Version 1.5.6 of Hexen II: Hammer of Thyrion (uHexen2) is released. This new release fixes several bugs, adds automatic Hor+ style FOV scaling, and adds Opus music decoding support amongst other things. All users are encouraged to upgrade.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86, linux-x86_64, Mac OS X, MorphOS and AROS binary packages.

    The changes since the previous release are as follows:
    • Screen: implemented Hor+ style field of view (FOV) scaling, useful for widescreen resolutions. configured by new cvar fov_adapt: set it to 1 and your fov will be scaled automatically according to the resolution. enabled by default. opengl and software renderers both supported.
    • Screen: viewsize greater than 120 now disables the hud (use the screen size slider in the options menu.)
    • Progs VM: Fixed a corner case thinko in version6 progs execution.
    • Server: changelevel failures, e.g. in case of non-existent maps, are now considered as error, so that the clients do not get stuck in the connected state anymore.
    • Server: accept maplist.txt only if it is from the same game directory as progs.dat itself or from a searchpath with a higher priority.
    • Timidity (Unix MIDI): Multiple fixes, including memory errors found by valgrind.
    • Mac OS X: A new icon.
    • Music: Support for Opus codec. (edit the makefiles to enable it when compiling.)
    • Software renderer: fixed color shifts from area contents or power-up items usage staying persistent after a disconnect.
    • OpenGL: worked around weird mods, e.g.: project peanut, where certain models are sometimes drawn "white" because the mod's hcode initializes those entities with non-existant skins.
    • OpenGL: gamma fixes for several platforms.
    • HexenWorld: opengl fixes for the shownames feature, other gl updates.
    • Hexenworld, gamecode: hw and siege map cycling setup is done using the localinfo variables just like in quakeworld, strings.txt abusing is no more. See docs/README.hwsv for brief instructions.
    • Verified correct compilation by upcoming gcc-4.8 and by clang-3.2.
    • Fixed several other minor bugs, some found by valgrind. Incremented engine versions for hexen2 to 1.28, hexenworld to 0.28, and gamecode version to 1.28.


  • 2013-01-08: Hammer of Thyrion version 1.5.5 is released:

    Version 1.5.5 of Hexen II: Hammer of Thyrion (uHexen2) is released. This new release fixes several bugs, improves Mac OS X support and adds a few new features among other things. All users are encouraged to upgrade.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86, linux-x86_64, Mac OS X, AROS and MorphOS binary packages.

    The changes since the previous release are as follows:
    • Utils (light, vis, jsh2color): Added unix pthreads support for running multi-threaded. Enabled windows multi-threads on all platforms instead of alpha-only. Default is single-threaded. Use "-threads #" to specify the required number of threads. (max: 32. -1 tries to autodetect.)
    • Utils, qbsp: Added a command line option "-oldhullsize" to replicate the old h2utils/qbsp behavior of using the original hexen2 sizes for hulls #5 and #6, not H2MP ones, if so needed.
    • Utils, hcc: Added a command line option "-old" to replicate old hcc versions' behavior of allowing the STR_ constants be saved globals and letting precache_file() calls go into progs.dat, if so needed.
    • Utils, dcc: Some small fixes. Added new command line options -fields, -functions, -globaldefs, -prglobals, -statements and -strings, which dump the related information.
    • Utils, all: Some fixes/improvements to command line options handling.
    • Support for the rarely used progs version 7 spec with 32 bit offsets instead of 16 bit of the original version 6: The engine can run both with v6 as well as with v7 progs. The hcc and dhcc tools are changed to compile the progs as v6 whenever possible for compatibility, or as v7 otherwise. they can also be made to compile specifically v6 or v7 progs by the new command line options -v6, -v7, or -version <n>. The dhcc tool can now decompile both v6 and v7 progs.
    • Fixed a respawn-after-death issue which sometimes rendered the player unable to move backwards, or unable to use certain inventory items, or several other weird effects (bug #2176023.) The bug was there since the original hexen2 source release.
    • New quake2-style noclip movement. (from Fitzquake; configured by new cvar sv_altnoclip, enabled by default.)
    • Client: Fixed a demo playback failure when certain conditions are met.
    • Client: Fixed a minor and rare intermission glitch.
    • Client: unbindall before loading stored bindings (configurable by new cvar cfg_unbindall, enabled by default.)
    • SDL, keyboard input: Fixed control-character handling in unicode mode.
    • All, keyboard input: Several tweaks.
    • Software renderer: Disabled progress bars drawing, as it was reported to cause excessively long load times on some systems. Disabled the rotating skull drawing during file i/o.
    • Software renderer: Fixed occasional crash when sprites rendered very close to the camera origin, such as the teleportation puff. (used to happen mostly in 64 bit builds. bug #3562290.)
    • OpenGL: Fixed a crash in texture resampling code with 3d hardware max texture size greater than 1024 and wide-enough textures.
    • Windows: Removed hooks for QHOST, which is (was) a proprietery server administation tool.
    • Mac OS X: packages now have ogg/vorbis and mp3 music playback support.
    • Mac OS X: New MIDI driver.
    • Mac OS X: Support for text paste from OS clipboard to console. Support for the Apple (Command) key.
    • Mac OS X: Support for building using the makefiles and cross-compiling from Linux.
    • MorphOS builds: added missing -noixemul to the compiler flags.
    • MorphOS, AROS, Amiga: Support text paste from OS clipboard to console.
    • All platforms, gameplay: fixed bug in original hexen2 hcode which used to cause weapon switching to get stuck if several weapons were picked up too fast. fixed a minor bug in assassin's fourth weapon in powered mode. cleaned up weapon cycling code, minor fixes/clean-ups in weapon selection. fixed cube of force, so that it doesn't attack the player's own summoned imp anymore. several other hcode cleanups.
    • All platforms, hexenworld: pak4.pak from the ancient beta 0.11 version is now recognized properly.
    • All platforms, h2patch: Simplifications.
    • Windows: support for Visual Studio 2012.
    • All: Incremented versions for hexen2 engine to 1.27, hexenworld engine to 0.27, and gamecode version to 1.27.


  • 2012-10-04: HCode archive:
    Posted my HexenC archive, an archive of HexenC code for all hexen2 binary releases: see here.

  • 2012-10-04: Gamedata v1.27:
    Posted gamecode-v1.27, providing some gameplay fixes, etc.: see here.

  • 2012-07-02: Hammer of Thyrion version 1.5.4 is released:

    Version 1.5.4 of Hexen II: Hammer of Thyrion (uHexen2) is released. This is new release improves portability, adds support for Solaris, support for AmigaOS/AROS/MorphOS (thanks to Szilárd Biró), separate keypad keys binding support, SDL joystick support, other improvements and fixes several bugs.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86 and linux-x86_64 binary packages.

    The changes since the previous release are as follows:
    • OpenGL: Fixed screen flickering resulting from progress bars drawing with some drivers (bug #3519666.) uHexen2 no longer draws the loading progress bars during level load in opengl mode.
    • OpenGL (Windows): Fixed a bug which would prevent running on Windows8 consumer preview versions, unless 32 bit color depth was specified on the command line. Works just fine now.
    • Music playback: Made sure that the file's channels count is supported.
    • Unix MIDI (Timidity): Configuration file timidity.cfg is now searched first under the user directory and the installation directory before the common system locations. Full absolute path of timidity.cfg can be specified by setting the TIMIDITY_CFG environment variable, too.
    • Client, all: Revised the intermissions setup code.
    • Client, all: Fixed a few effect abslight and scale flags, which were another bunch of original hexen2source bugs.
    • All platforms: Majorly revised path name handling and filesystem code.
    • Support for Solaris. Support for Amiga, AROS, MorphOS. Added missing RISCOS defines.
    • Keyboard input: Made the keypad keys to send separate key events in game mode. (for Windows and SDL-using builds, e.g. Linux/Unix, OSX.)
    • Joystick: Added joystick (gamepad) support for all SDL-using builds, e.g. Linux/Unix, MacOSX. The new cvars are documented in the README.
    • Mouse (DOS): Wheel is now detected and used by default. Use "-nowheel" command line switch to disable it.
    • Mouse (DOS): Pausing the game, moving the mouse and then unpausing it, doesn't change the view angle anymore.
    • All platforms, gameplay: Fixed a rare crash in the ambient fish hcode.
    • All platforms, h2patch: More detailed output and better reporting in case of incompatible or corrupted pak files. Same with the pak-patch functionality of the gtk-launcher application.
    • Utils, dcc (progs decompiler): Fixed an infinite recursion issue when decompiling the hcbots progs.dat. Fixed decompiling of rival kingdoms progs. Changed decompiler memory usage. Made -src command line option of dhcc to behave the same as it does with hcc. Added -name command line option either for specifying a name other than progs.src for the compiler like hcc itself or for specifying a name other than progs.dat for the decompiler.
    • Utils, hcc (HexenC compiler): Cleaned up the -src command line option handling.
    • All: Incremented versions for the hexen2 engine to 1.26 and hexenworld engine to 0.26. Incremented gamecode version to 1.26.
    • Several source code cleanups and documentation updates.


  • 2012-05-11: Ports to other operating systems:
    It is nice to see that the Hammer of Tyrion (uHexen2) engine acts as the basis for ports of hexen2 to several other operating systems. The latest additions I noticed are the ports to AROS and RISC OS. See the README file for a more complete list of ports.

  • 2012-04-10: Hammer of Thyrion version 1.5.3 is released:

    Version 1.5.3 of Hexen II: Hammer of Thyrion (uHexen2) is released. This is a maintainence-only release, mainly fixing an opengl issue on old graphics hardware.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86 and linux-x86_64 binary packages.

    The changes since the previous release are as follows:
    • OpenGL: Made non-power-of-two textures support configurable by a cvar, gl_texture_NPOT, disabled by default: Fixes serious slowdown on some old graphics hardware, such as R300 to R500 class Radeons on Mac OS X, which the driver is lying about its capability. Added a menu entry to enable/disable the feature (OpenGL features -> NPOT textures.)
    • Sound: The client no longer tries updating the ambient sounds when not connected, ie. when no map is active.
    • Several updates to the documentation.


  • 2012-04-04: Hammer of Thyrion version 1.5.2 is released:

    Version 1.5.2 of Hexen II: Hammer of Thyrion (uHexen2) is released. This is a maintainence release fixing several small bugs found in the previous v1.5.1. It also adds new features such as support for FOV adjustment, anisotropic texture filtering, non-power-of-two textures, and so on.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86 and linux-x86_64 binary packages.

    The changes since the previous release are as follows:
    • All platforms: Incremented versions for the hexen2 engine to 1.25, hexenworld engine to 0.25, gamecode to 1.25 and the gtk-launcher to 1.0.7.
    • Verified correct compilation by clang (using v3.0) and by the new gcc version 4.7.x.
    • All platforms, gamecode: Fixed occasional crashes in the original hexen2 game with the Paladin's axe.
    • All platforms, hexen2 net play: fixed connection getting stuck sometimes after displaying the "Connection accepted" message.
    • All platforms: Ported server model code optimizations and cleanups from h2ded to hwsv (hexenworld server).
    • All platforms: Added support for transparent console in the software renderer, controlled by new cvar "contrans". Valid values for contrans are 0 (solid), 1 (transparent) and 2 (very transparent).
    • All platforms, software renderer: Fixed wrong transparency issue with certain models when not using the x86 assembler drawing routines.
    • All platforms: Added on-screen fps counter to hexen2 (do "showfps 1" from the console). Updated existing showfps code of hexenworld.
    • All platforms, OpenGL: Added anisotropic texture filtering support (gl_texture_anisotropy). Revised existing texture filters. Texture filtering options now saved to the config.
    • All platforms, OpenGL: Added support for non-power-of-two- textures extension.
    • All platforms: Implemented fov in opengl hexen2, useful for widescreen resolutions. Revised the implementations in hexenworld, as well as the software renderer.
    • All platforms, OpenGL: Fixed shadows spot which was broken back in 2007 during v1.4.2 development.
    • All platforms, input: Discard mouse/joystick motion when in cameramode. Discard the accumulated mouse motion when starting a game or when loading a saved game to prevent any unintended viewangle changes.
    • Windows input: Disabled GDI mouse acceleration flags for better behavior on XP and newer versions.
    • SDL / Unix: Revised SDL unicode and dead keys support.
    • SDL / Mac OS X: Fixed console and message mode backspace key (bug #2688151.)
    • Unix / SVGAlib mouse: Fixed missing camera mode and ideal roll handling.
    • Unix / SVGAlib video: Fixed planar modes when using the svgalib_helper kernel module. Removed the need for x86 assembly for compilation and the linux-only limitation.
    • Unix / SVGAlib video: Fixed messed up colors upon coming back from a vt switching.
    • Unix: Fixed compilation on GNU/kFreeBSD (Debian, #657793)
    • Unix, MIDI: Several updates to the Timidity backend.
    • Timidity, Windows MIDI: Support for Microsoft RMID format.
    • Windows MIDI: Fixed broken tempo with certain midi files (problem was introduced in version 1.5.1)
    • Windows software renderer: Fixed restoring of the saved video mode on startup (problem was introduced in v1.4.4.)
    • Windows software renderer: Disabled MGL DirectDraw support by default (causes more trouble than it's actually worth.) Can be enabled by -useddraw or -usedirectdraw command line switches, if required.
    • All platforms: Revised the cross-episode demo recording and playback behavior, allowing the intermission screens to be displayed.
    • All platforms: Removed code that prevented deathmatch and coop cvars to be set at the same time, which was reported for possibility of causing compatibility issues with mods.
    • All platforms: Majorly revised the support mechanism for different versions of progs. Added old v1.03 progs support to hexen2, added old v0.11 and v0.14 progs support to hw.
    • All platforms, h2ded: Removed error when neither coop nor deathmatch is set and rely on server admin.
    • All platforms, hexenworld client: Fixed a crash in the credits display when one waited long enough to see all the text to be printed.
    • Unix / gtk-launcher: Added support for gtk3. Several bug fixes and code cleanups.
    • Mac OS X: Fixed compilation failure due to a typo in MIDI code introduced in v1.5.1.
    • DOS: Added WatTCP (WATT-32) networking support for hexen2 internet play.
    • DOS: Added experimental DOS support for hexenworld using WatTCP library. (doesn't work yet due to WatTCP bugs.)
    • DOS: Added "-nogus" command line option so that UltraSound initialization can be skipped by the user if necessary.
    • Miscellaneous source code cleanups.


  • 2011-11-25: Hammer of Thyrion version 1.5.1 is released:

    Version 1.5.1 of Hexen II: Hammer of Thyrion (uHexen2) is released. This is mostly a maintainence release fixing many small but annoying bugs found in the previous 1.5.0 version.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86 and linux-x86_64 binary packages.

    The changes since the previous release are as follows:
    • All platforms: Fixed an inventory icon scrolling bug.
    • All platforms: Removed a needless limitation on config and save names.
    • Linux (Unix/SDL): Fixed SDL software renderer bug that the image wasn't stretched to fill the screen.
    • Linux: Fixed the gtk-launcher crash with new glibc. Updates to gtk api usage in the gui code.
    • Windows: Updates to the midi playback code.
    • DOS: Fixed failure on computers with more than 2GB memory.
    • DOS: Fixed a stack corruption bug in VESA initialization.
    • DOS: Added support for the -cddev command line arguments.
    • Unix: Added some paranoid checks for string buffer sizes.
    • Linux/Unix: Provided cd-rip scripts for less common game media, i.e. the Xplosiv re-release and the Matrox m3D oem versions.
    • All platforms: Fixed logic in the hwmquery tool that would cause less number of servers to be displayed than what had been received from hwmaster.
    • Bumped versions for the hexen2 engine to 1.24, hexenworld to 0.24, hwmaster, hwrcon and hwterm to 1.2.7, hwmquery to 0.2.3 and gtk-launcher to 1.0.6.
    • Build system updates and source code cleanups.


  • 2011-09-24: New Mac OS X package for version 1.5.0:
    Steve sent in a better (more user-friendly) Mac OS X package for uHexen2 version 1.5.0: updated on the downloads page.

  • 2011-09-19: Hammer of Thyrion version 1.5.0 is released:

    At long last, version 1.5.0 of Hexen II: Hammer of Thyrion (uHexen2) is released after more than three years of development. This is a major update after the previous stable release with many contributions and help from the community as well.

    Uploaded the full sources, as well as win32, win64, dos, linux-x86, linux-x86_64 and Mac OS X binary packages.

    The full log of changes since the previous 1.4.3 release:
    • bumped the hexen2 engine version to 1.23, and hexenworld engine version to 0.23. bumped the gamecode version to 1.20.
    • added support for ogg, mp3 and wav external music files to be played instead of the original midi files.
    • added interface for music streams to the sound layer, dropped SDL_mixer dependency. many changes in sound and midi layer. imported libtimidity into the source tree and applied several fixes.
    • sound: changed internal driver interface to provide a better chance of engine startup with sound, especially for linux (unix) users.
    • unix midi: reimplemented through the new music streams interface using timidity.
    • windows midi: ignore midi hardware volume adjustment capability under windows vista/7 which fixes music volume control messing with the main volume.
    • fixed a bug in multiple zones management, which wasn't easy to hit but was deadly when it was hit.
    • fixed an old obscure game load/save corruption bug.
    • fixed an old load bug where items dropped by monsters not being visible or getting lost upon saving and loading the game.
    • fixed an old load bug where prize artifacts in the Temple of Mars not being visible or getting lost upon saving and loading the game or by changing the level and reentering.
    • fixed an old load bug where killed monsters didn't respawn in nightmare difficulty in the mission pack upon saving and loading the game or by changing the level and reentering.
    • software renderer (C-only): fixed a segmentation fault with Crusader's ice mace.
    • software renderer: fixed crashes at high resolutions with r_waterwarp enabled.
    • added new cvar sys_throttle in order to throttle the game loop just a little bit and run cooler on new fast systems. the default sys_throttle value is 0.02, acceptable values are between 0 and 1. changing it to 0 disables throttling.
    • opengl: fixed overlapping flickering textures, i.e. the infamous brush model Z-fighting. the fix is controlled by gl_zfix: default value is 1 (enabled). setting it to 0 disables the fix and brings back the old behaviour.
    • opengl: always use GL_LINEAR as lightmap filter. made gl_texturemode command not affect lightmaps.
    • opengl: fixed an issue in net games where joining players would appear untextured (bug #3288081).
    • opengl: updated code to use glGenTextures().
    • joystick windows: added support for sixth joystick axis for up movement controlled by joyupthreshold and joyupsensitivity.
    • fixed hexenworld server issue which used to crash servers upon running the romeric5 (Temple of Mars) map, which now loads fine.
    • fixed h2ded (hexen2 dedicated server) bug that the swords on the weapon racks in the demo2 and the village1 levels would be placed incorrectly (bug #3344613).
    • hexenworld server: fixed segmentation fault in case of bad pointers in NUM_FOR_EDICT()
    • fixed HexenC bug where, if there were a summoned imp around, a blinked away wizard wouldn't reappear even after imp went away (bug #3314808).
    • fixed a HexenC bug where the summoned imp didn't pick the Egypt snake boss as an enemy (bug #3314810).
    • improved soul spheres' HexenC code.
    • fixed a HexenC where medusa's gaze attack sound would persist when she is dead.
    • fixed an Eidolon/imp HexenC bug which used to render Eidolon idle.
    • fixed a HexenC bug which would prevent a yakman from appearing during the 'Trial of Strength' in the 'Temple of Phurbu' (tibet7) level of the mission pack, rendering the level not completable (bug #1112533).
    • fixed a mission pack HexenC bug where a pentacle monster in the tibet1 map became invulnerable when it got crushed by a door.
    • fixed a wheel of ages message to report 360 degrees instead of 30 in the egypt2 map.
    • fixed a HexenC bug which might prevent Eidolon to land.
    • fixed an Eidolon HexenC bug which might prevent the finale screen to trigger.
    • fixed a HexenC bug where werepanthers became "undead" when an assassin killed them by her bombs.
    • fixed a mission pack HexenC bug which used to prevent the finale screen to trigger if Praevus were killed too quickly.
    • handled several map quirks thanks to careful works by Thomas Freundt and Keith Rozett.
    • fixed trigger_crosslevel problem with spawnflag 8 which used to prevent one of the prizes in Temple of Mars to appear.
    • removed the ugly hack of reducing teleport push speed to 225 in order to overcome the problem of reaching the Cathedral's balcony and the holy cross, and added a modified entities file for the Cathedral map instead.
    • added support for external entity file loading which makes it easy to handle map quirks. ent files are accepted only if they come from the same game directory as the map itself or from a searchpath with a higher priority. external entities loading is controlled by external_ents cvar: default value is 1 (enabled). setting to 0 disables external entities.
    • revised lit file loading. lit files are now accepted only if they come from the same game directory as the map itself or from a searchpath with a higher priority.
    • added new h2patch tool, an easy to use xdelta3-based standalone pak patch tool for purposes of updating to hexen2 v1.11 data files. updated the gtk-launcher's patch facility to use the same backend.
    • utils, hcc: fixed broken switch statement compilation when there is an implicit break in the last case.
    • utils, dcc: fixed a wrong decompilation of an "if" opcode into a "while"; some source code revision.
    • utils, hcc: dropped support for the old version of hcc tool.
    • tested compilation using Visual Studio 2010.
    • source directory layout reworked, repository moved from cvs to svn.

    • Changes since uhexen2-1.4.3 mostly during the unreleased 1.4.4-beta cycle:
    • fixed the broken software renderer binaries from C++ compilers with x86 assembly enabled (do not use the bool keyword of C++).
    • compilations using the new gcc-4.4, 4.5 and 4.6 versions are tested and supported.
    • added support for 64 bit windows versions (x64).
    • added support for mingw-w64 compilers.
    • added support for Microsoft Visual Studio 2005 and Visual Studio 2008.
    • filesystem: fixed an oversight with builds without user directories, where the "-basedir" command line argument failed to change the internal userdir variables.
    • fixed stuffcmds so that arguments to commands can have '-' or '+' within their names. A command like "hexen2 +map mymap-01" works properly now.
    • increased default zone memory size to 384kb.
    • fixed a rare segmentation fault with certain command line arguments (bug was introduced sometime between version 1.3.0 and 1.4.0).
    • fixed a problem in sound effects code where some teleportation sounds might have got lost.
    • alsa audio: added workarouds for better behavior on some linux setups.
    • hexen2 client: pause/resume midi (background music) along with cdaudio upon pause message.
    • windows cdaudio: added -cddev as a new command line option for choosing the cdrom drive to use. syntax: -cddev E
    • windows cdaudio: fixed MCI errors when resuming the last track of a cdrom.
    • net: made the socket api usage compatible with windows especially with relation to 64 bit windows.
    • net (hexen2): fixed BSD and Mac OS X socket api usage.
    • opengl: reworked text and HUD scaling menu option.
    • opengl: fixed an issue that changing resolution from within the game might crash on Windows Vista.
    • software renderer: fixed a long standing stack corruption bug which used to cause alias models not to be drawn at all.
    • stricter checking on the values pulled out of .wav file chunk headers.
    • fixed a rare game crash when battling bosses with assassin class, using the tome of power and launching at the enemy a lot of projectiles.
    • renamed model_t to qmodel_t in order to avoid conflicts on solaris.
    • fixed the "mirrored prints" problem of hexen2 console at high resolutions.
    • fixed the colored prints of hexenworld console.
    • fixed 'array going out-of-bounds' (utils/map.c) and bogus 'maybe used uninitialized' warnings (sbar.c) from gcc-4.3.
    • fixes to the SVGALib driver. it is functional now, both for hexen2 and for hexenworld clients.
    • fixed bug #2176384: in windowed mode, when you save using the menus, the game used to quit the menu without grabbing the mouse properly.
    • windows mouse: fixed behavior upon minimize/restore in windowed mode.
    • slightly increased the buffersize for sdl audio. made it to print a little more detailed info at startup.
    • fixed hexenworld client message parser so that midi and cdaudio don't play at the same time.
    • launcher, patching: rewritten the inter-threads log printing and fixed the erratic crashes on smp systems. launcher version is 1.0.5 now.
    • hexenworld master server: unknown packets are properly output as hexdump. hwmaster version is 1.2.6 now.
    • other minor fixes.
    • 3dfx gamma hacks are disabled by default at compile time (see the Makefile).
    • killed compatibility with user directories from HoT-1.4.0 and earlier which didn't operate with a data1 subdirectory. they are ancient history now.
    • added initial support for standalone free contents (mods) as an extra patch.
    • utils, jsh2color: worked around a stack corruption resulting in crashes due to the code's way of dealing with TEX_SPECIAL cases.
    • utils, lmp2pcx: Tweaked and documented palette file usage, allowed the embedded palette again.
    • utils, qbsp: accept more than one wad file specified in the value of the "wad" key. the wad file names must be separated by a semicolon. spaces are allowed in the file names. quoted paths aren't allowed.
    • utils, qbsp: the absolute paths in wad values are not touched, ie. the paths beginning with a '/' on unix or with a drive specifying string like "C:\foo\bar.wad" on windows. all other values with no path information or relative path information are prefixed with the project path. this fixes the issues reported for qbsp usage from within worldcraft.
    • added back some unused code for future reference. removed some truly dead code.


  • 2010-12-19: Recent progress
    uHexen2 source repository moved from cvs to svn. For a web-view of the repository visit here. A lot of work has been done to support ogg, mp3 and wav external music files to be played instead of the original midi files.

  • 2008-09-20: MIDI with SDL audio and new Linux-PPC packages
    I made an initial patch in order to support midi music when SDL audio is in use. For the time being, the patch received limited testing and it is a bit crude: 16 bit 22050 Hz only, command line switches doesn't change that. I hope to make a better solution later, but this seems to work for now.
    Bill Blake already prepared new rpm packages for Linux-PPC with this patch applied. They are here:

  • 2008-04-04: Hammer of Thyrion version 1.4.3 is released.
    Version 1.4.3 of Hexen II: Hammer of Thyrion is released:
    This release is a result of heavy maintainance after the previous 1.4.2 version and fixes several bugs, including some security related ones such as the hexenworld Huffman decoder vulnerability (Secunia advisory SA28124), and improves portability. There have been a few feature improvements, as well. It also features a DOS port and an experimental svgalib support. An updated game data, v1.19a, is provided along with HoT-1.4.3, too. All users are encouraged to upgrade to the new release. The downloads page is updated for this new release, too. Enjoy.

  • 2008-03-11: PPC and PS3
    Hexen II: Hammer of Thyrion runs perfectly on Playstation 3/Linux: Here is the YDL blog entry and a youtube video. I hosted the rpm file here at our download pages, too.

  • 2008-02-08: Hammer of Thyrion for GP2X !
    Adventus made a GP2X port of the Hammer of Thyrion source! The forum threads are here. Nice!

  • 2008-01-28: Hammer of Thyrion for Nokia N800/810 !
    Well, I ran into this at internet tablet talk: Someone actually built Hammer of Thyrion for N800/810 (Maemo)! There seems to be a build for 770, too. Nice! The forum thread is here.

  • 2008-01-08: A New DM map pack
    Jas, aka. JWH, sent a deathmatch map pack for Hexen II and HexenWorld to us: converted dm maps from Quake and an original one named Cthulhu's burnt offerings. He says that it is a beta version yet and the final version including the map sources will be ready soon, by the end of this month. The package,, can be found here. Thanks Jas!

  • 2006-11-22: Initial DOS port for Hexen II: Hammer of Thyrion
    I prepared an initial DOS port of Hexen II (hey, I was bored and felt nostalgic ;), it seems to work fairly good.

  • 2007-10-03: Hammer of Thyrion version 1.4.2 is released.
    At long last, version 1.4.2 of Hexen II: Hammer of Thyrion is released.
    The 1.4.2 development cycle took a lot of time, but it was worth the result: We added support for 64 bit platforms, provided compatibility with older Hexen II protocols, fixed several opengl problems, fixed some security issues, updated the software renderer to support non-intel processors, among many other things. All users are encouraged to upgrade. The downloads page is updated for this new release, as well. An updated game data, v1.19, is released along with HoT-1.4.2, too. Enjoy.

  • 2006-12-01: Hammer of Thyrion 1.4.1-rev1
    Uploaded hexen2source-1.4.1-rev1.tgz as a small hotfix: contains minor patches to version 1.4.1. Find it on the downloads page. ChangeLog:
    • Updated rpm spec file to 1.4.1-2 to use gamecode-1.16a and xdelta-1.1.3b
    • Gamecode: Fixed an obscure bug where the assasin with her 4th weapon uses the tome of power and can't fire it.
    • Ensured that the basedir always stays the same for Mac OS X. Documented the packaging method for Mac OS X. Updated release date to November 16.

  • 2006-12-01: Gamedata 1.16a for Hexen II: Hammer of Thyrion
    An updated 1.16a version of gamedata is released: It fixes an obscure bug where the assasin with her 4th weapon uses the tome of power and can't fire it. This particular version of game data was not included in Hammer of Thyrion v1.4.1 binary packages: this is an update for HoT-1.4.1. All files, source and binary, can be found on the downloads page.

  • 2006-11-01: Hammer of Thyrion 1.4.1 and gamedata 1.16 are released
    This release contain major bug fixes and several enhancements, such as on-the-fly changing of text and hud size and a new hexen2 dedicated server application. Support for Mac OS X and QNX are also included. All users are encouraged to upgrade.

  • 2006-07-15 :
    Henk Jonas made an inital PalmOS port of Hammer of Thyrion v1.4.0. Find it at

  • 2006-04-28 :
    • Released the game-data 1.15 package,
    • Released Hammer of Thyrion version 1.4.0.
      Changes include:
      • Video mode changing on the fly
      • Support for colored lighting and external lit files
      • Improved insert/overwrite mode console editing
      • Console command completion
      • Single binary supporting both hexen2 and the mission pack
      • Massive bug hunt and clean-up in C and gamecode

  • 2005-08-29 :
    • Released the game-data updates 1.14 package,
    • Released Hammer of Thyrion version 1.3.0.
      Changes include:
      • Full screen anti-aliasing
      • Multitexturing
      • Fixes in music volume and music re-init features
      • Fully FreeBSD-ised
      • Massive bug hunt and clean-up in C and gamecode
      • Improvements to the 3rd person view mode
      • Total revamp of the gtk game launcher

  • 2005-06-09:
    Posted version 0.5.1 of Hexen2 launcher as a hot-fix for HoT-1.2.4a.

  • 2005-03-17:
    Game-data 1.12h for Hammer of Thyrion is released:
    Changed since 1.12g is the inclusion of an actual H2MP 1.12a axtail patch which has been missing in 1.12g/CVS for ages. And noone told me about this, oh well..

  • 2005-03-14: Hammer of Thyrion version 1.2.4a:
    • This is a maintainance-only release after HoT-1.2.4, fixing a couple of tiny bugs:
    • fixed an oversight in reinit_music which resulted in a needless restart of midi music upon pressing Esc twice
    • added back console video mode reporting
    • small statusbar resizing fix in software mode
    • updated the documentation

  • 2005-03-06:
    • Posted some botmatch tarballs to the downloads,
    • Released the game-data updates 1.12g package,
    • Released Hammer of Thyrion version 1.2.4:
      The primary focus of this new release may be considered as sound and music changes: Two new sound drivers, SDL and ALSA, were added. People who used to have issues with sound should now play the game with sound. Volume adjustment issues for music are also addressed.

  • 2005-02-15:
    • Released the game-data updates 1.12f package:
      This update fixes issues only in HexenWorld and adds map cycling ability. (Hexen2 and PoP code isn't changed since 1.12d). Get it from the downloads page.
    • Uploaded some HexenWorld games (ctf, siege, etc) as unix-friendly tarballs. See the project page.
    • HoT-1.2.4 release is beginning to shape up these days.
      It should be ready in a week or so...

  • 2005-01-21:
    Hammer of Thyrion 1.2.3 is released. Get it from the downloads page.

  • 2005-01-06:
    • Released the game-data updates 1.12d package
      Get it from the downloads page.
    • Re-organized the downloads page. Re-packaged and
      re-uploaded some files.

  • 2004-12-25:
    • Merry Christmas to all!
    • Made a home page, finally.