U-Hexen is yet another port of Hexen, popular game from Raven Softrware to Simple Directmedia Layer (SDL) library.
Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. See below for download link(s).
Following ones are the download links for manual installation:
U-Hexen 2 v. 1.5.2 (31/5/2018, O. Sezer) | Readme/What's new |
Hexen II: Hammer of Thyrion (uHexen2) - v1.5.9
----------------------------------------------
1. Installation
1.1 Getting Started
1.2 Software Requirements
1.3 Running the Game
1.4 Sound and Music
1.5 Networking/Multiplayer
1.6 Game Saves and Configuration files
1.7 Fullscreen/Windowed modes and mouse
1.8 Joystick (gamepad) support
2. Known Problems
2.1 Sound Problems
2.2 Lines on Screen
2.3 Fluxbox
3. General Info
3.1 Mods
3.2 Game Console
3.3 Hardware Acceleration
3.4 Thanks
3.5 Links
4. Appendix
----------------------------------------------------------------
1. INSTALLATION
---------------
1.1 Getting Started
-------------------
Hexen II source and the Hammer of Thyrion source port are free, but the
game itself is not: You must have an original copy of the game released
by Raven Software and Activision. If you don't, then download the demo
version.
Installing the demo version doesn't require any media and/or any extra
effort: our demo packages contain all requirements.
To install the retail version of the game, you need your original
cdroms: the windows discs released by Raven and Activision back in 1997.
The less common "Xplosive" cdrom published in UK is also supported.
To install the "Portal of Praevus" mission pack, you need your original
mission pack cdrom. To install the Matrox m3D bundled (oem) version of
the game (also known as "Continent of Blackmarsh"), you need your M3D_2
cdrom.
Download the base binary tarball (e.g., hexen2-1.5.9.i586.tgz) and
extract it. Copy the two files pak0.pak and pak1.pak from your cdrom
into the "data1" directory in your own installation. The pak file
names should be lower-cased, if not already. To fix the permissions:
chmod 644 data1/pak*.pak
Hexen II requires its game data to be updated to version 1.11, too.
To patch the pak files, run the included "h2patch" program. Here are
the md5sums, just in case:
c9675191e75dd25a3b9ed81ee7e05eff data1/pak0.pak
c2ac5b0640773eed9ebe1cda2eca2ad0 data1/pak1.pak
If you have the Portal of Praevus mission pack, copy the pak3.pak
file from your cdrom into the "portals" directory in your own
installation. To fix the permissions: chmod 644 portals/pak*
The mission pack data doesn't need patching. Here is the md5sum of
pak3.pak, just in case:
77ae298dd0dcd16ab12f4a68067ff2c3 portals/pak3.pak
If you want to install HexenWorld, download the HexenWorld binary
package (e.g., hexenworld-1.5.9.i586.tgz) and extract it in the
same directory you extracted the base uhexen2 tarball. HexenWorld
data doesn't need patching.
Here are the game binaries' names:
hexen2 - Hexen II (software rendering)
glhexen2 - Hexen II (opengl rendering)
h2ded - Hexen II Dedicated server
hwcl - HexenWorld Client (software rendering)
glhwcl - HexenWorld Client (opengl rendering)
hwsv - HexenWorld Server
hwmaster - HexenWorld Master Server
1.2 Software Requirements
-------------------------
SDL (min.: 1.2.4) : Simple DirectMedia Layer libraries.
1.2.7 and newer highly recommended.
If run on systems with SDL < 1.2.6,
anti-aliasing support will be auto-
matically disabled.
To compile your own binaries, you'll need a standard unix build
environment. See the file COMPILE for details.
1.3 Running the Game:
----------------------
You can run the game from a terminal window: "cd" into the installation
directory and run the binary. For example:
cd /home/myname/hexen2
./glhexen2 [possible options]
The game starts in windowed mode by default: use the "-f" command line
switch to start in fullscreen. To play the Portals of Praevus mission
pack, use the "-portals" or "-h2mp" command line switch.
Important command-line switches:
-portals | -h2mp Run with Portal of Praevus mission pack support
(only for registered version of Hexen2.)
-f | -fullscreen Start fullscreen (can also be set from the menu)
-w | -window Start windowed (can also be set from the menu)
-g | -gllibrary <lib> Override the OpenGL library to use
-width N Select screen width (can also use the menu)
-height N Optional. Must be used with -width
-bpp N Color depth for GL fullscreen mode
-conwidth N Enables a bigger hud display and readable fonts
at high resolutions. Valid conwidth values are
values equal or less than the scr width above:
Smaller the number, bigger the text. 640 is the
sanest. Can also be adjusted from the menu.
-nomouse Disables mouse usage in game
-nojoy Disables joystick (gamepad) probing and usage
-heapsize N Heapsize (memory to allocate, in KB)
-fsaa N Enable N sample anti-aliasing (N: 0,2,4) (can
also be set from the menu)
-sync | -vsync Enable syncing with monitor refresh (GL, Nvidia)
-lm_4 Set lightmap format to RGBA, which is actually
the default format. RGBA lightmaps are required
for colored lights. Can be set from the menu.
-lm_1 Set lightmap format to LUMINANCE. (this was the
old format that hexen2 originally used and it is
a little faster than RGBA lightmaps). Can be set
from the menu.
-paltex Enable 8 bit (palettized) textures: saves video
memory on *very* old low-memory 3D accelerators
if the proper GL extension is supported. (can be
set from the menu.)
-nomtex Disable multitexture detection/usage
-no3dfxgamma Disable special gamma support for Voodoo1/2/Rush
(if compiled with 3dfx gamma hacks support.)
-sndoss Use OSS for audio (default)
-sndalsa Use ALSA for audio
-sndsdl Use SDL for audio
-sndbsd Use sunaudio (for openbsd, netbsd, sun)
-ossdev OSS Audio device to use (default: /dev/dsp)
-alsadev ALSA Audio device to use (default is "default")
-sndspeed N Sampling rate of sound playback (eg 22050,44100)
-cddev CD Audio device to use (default is
/dev/cdrom for linux, /dev/acd0 for FreeBSD.)
For windows, use a single drive letter, like:
glh2 -cddev E
-nocdaudio Disable cdrom music
-nomidi Disable MIDI driver
-s | -nosound Run the game without sound
-nolan Disable networking (incompatible with -listen)
-listen N Enable multiplayer with maximum N players
-protocol N Run the server using protocol version N, instead
of the default. Valid values: 18 (the old hexen2
v1.11 protocol), 19 (default, h2mp protocol).
-port <portnum> Change the default port. Default port is 26900
for hexen2, 26950 for hexenworld server, 26900
for hexenworld master server. hexenworld client
always uses 26901.
-localip <address> For Hexen2 only. Changes the ip address embedded
in the response packets for the serverinfo and
connect requests to use the cmdline-provided ip
address. Server still binds to INADDR_ANY and it
can see the broadcast requests.
-ip <address> Enables the server admins to bind to a specific
IP address on a multi-homed host. Note: using
this option will prevent the us from receiving
broadcast packets, therefore server discovery on
the LAN will not work if the server is started
this way.
-bindip <address> Same as the -ip option
-noifscan Hexen II only. Disables local address detection
through network interface scan.
-developer Enable developer mode early during init phase.
-condebug | -debuglog Logs the console output.
-devlog Enable full logging even when not in developer
mode.
-v | -version Display the game version
-h | -help Display short help message
If you wish to brighten the display, simply use the game's menu entry.
In case that it doesn't work for you, you can use the "xgamma" utility:
Here is the script I use for xgamma:
xgamma -q -gamma 1.3; # brighten the display
./glhexen2
xgamma -q -gamma 1; # restore old brightness
3dfx Voodoo1 and Voodoo2 users can employ the -3dfxgamma command line
switch to activate native 3dfx gamma controls (remember to enable that
option in the Makefile when compiling).
1.4 Sound and Music
-------------------
uHexen2 includes several choices of sound drivers for linux/unix users:
SDL, OSS and ALSA. The engine tries them and uses the first one which
successfully initializes. You can make the engine to use only a specific
driver by command line arguments, too.
a. SDL sound code
-----------------
SDL audio isolates you from many compatibility issues and is usable on
most Linux distributions. The "-sndsdl" command line switch tells the
game engine to use SDL audio, but it isn't necessary because SDL audio
is the default.
./glhexen2 -sndsdl [other possible arguments]
If you want to force SDL to use a different driver backend than its
default setting, you can export SDL_AUDIODRIVER=drv where "drv" may be
alsa, dsp, pulse, esd or something similar depending on your own setup.
(Note that SDL_AUDIODRIVER=esd can be laggy in my own experience.)
b. OSS sound code
-----------------
The OSS (Open Sound System) code is compatible with most of the Linux
distributions and FreeBSD, but it is known not to work for a few people.
The "-sndoss" command line switch tells the game engine to use OSS:
./glhexen2 -sndoss -sndspeed 44100
c. ALSA sound code
------------------
The ALSA driver is for Linux and is based on the ALSA 1.0.x libraries.
Start the game with "-sndalsa" command line switch:
./glhexen2 -sndalsa -sndspeed 44100
If ALSA gives you trouble, try using "plughw:0" or "hw:0,0" instead
of the default device. A lot of ALSA installations have a misconfigured
default device. Example:
./glhexen2 -sndalsa -alsadev plughw:0 -sndspeed 44100
d. BSD/SUN sound code
---------------------
The sunaudio driver can be used in combination with our experimental
OpenBSD and NetBSD support. The "-sndbsd" command line switch tells
the game engine to use sunaudio.
If you can't get sound working, the "-nosound" option will disable it,
send a bug report on the project page.
1.4.1 Midi and Music support
----------------------------
On linux/unix, midi background music is implemented using timidity, so,
you'll need GUS-compatible instrument patch files along with a properly
configured timidity.cfg. You can get a complete set of GUS patches by
downloading the timidity_patches.tar.gz from our site. Extract it into
your uHexen2 installation directory and midi should be ready to play:
http://sourceforge.net/project/downloading.php?group_id=124987&filename=timidity_patches.tar.gz
Note to the curious: Configuration file timidity.cfg is searched first
under the user directory, i.e.: ~/.hexen2, then under the installation
directory, then under the common system locations /etc, /etc/timidity,
/usr/share/timidity, /usr/local/share/timidity, /usr/local/lib/timidity
in this order. Full absolute path of timidity.cfg can be specified by
setting the TIMIDITY_CFG environment variable as an override too, e.g.:
export TIMIDITY_CFG=/usr/local/share/timidity/timidity.cfg
Hammer of Thyrion supports OGG, MP3 and WAV external music files to be
played instead of the original midi files, so you can enjoy the hexen2
music in good quality like they are from the hexen2 cdrom audio tracks.
Ogg playback requires libogg and libvorbis, mp3 playback requires libmad
or libmpg123 depending on your compile-time decision (see the Makefile).
See README.music for more information.
1.5 Networking / Multiplayer
----------------------------
Since version 1.4.2 (engine version 1.19), Hammer of Thyrion binaries
are fully compatible Raven's Windows Hexen II-1.11 binaries. When run
as a client, it can connect to Raven-1.11 servers and play just fine.
It can playback the demos created with 1.11 version, as well.
On the other hand if a 1.11 client wants to connect to a uhexen2 server,
the server must be started with "-protocol 18" command line argument.
There is no network compatibility with Hexen II protocols older than 18.
Mission pack is, of course, fully network-compatible across platforms.
As for the other Hexen II ports, uHexen2 is compatible with them, too.
1.6 Game Saves and Configuration files
--------------------------------------
Your game saves and configuration files are stored under .hexen2 in
your home folder: ~/.hexen2 (for demo version, it's ~/.hexen2demo)
Saves and configs for Hexen2 are stored under ~/.hexen2/data1
For the Mission Pack, they are stored under ~/.hexen2/portals
1.7 Fullscreen/Windowed modes and mouse
---------------------------------------
While playing the game, you can switch between fullscreen and windowed
modes by pressing ALT + Enter combination. Alternatively, you can use
the relevant menu option. The last setting will be saved to the config
and will be remembered by the game.
You can also change the resolution from the menu system. Again, the last
setting will be saved to the config and will be remembered by the game.
The menu option "Use Mouse" enables/disables mouse usage on the fly.
While in windowed mode, disabling the mouse ungrabs the mouse pointer,
so that you can easily use your desktop. You can also ungrab/regrab
the mouse pointer by pressing the CTRL + G key combination whenever
you want.
1.8 Joystick (gamepad) support
------------------------------
Hammer of Thyrion supports joysticks (gamepads) through SDL. The feature
can be enabled or disabled on the fly by setting joystick to 1 or 0 from
the console. It is disabled by default. On the other hand, the -nojoy
command line switch disables all joystick probing and usage.
The "joy_index" cvar defines which joystick to use if more than one are
attached to the computer. The default value of joy_index is 0, i.e. the
first one.
You can setup which axis to query for which movement or look by using
the following cvars from the console. -1 means 'none', i.e. if you set
any of them to -1, then the corresponding movement or look will not be
queried on the joystick:
joy_axisside Axis for left/right movement 0
joy_axisforward Axis for forward/backward movement 1
joy_axisyaw Axis for looking left/right 2
joy_axispitch Axis for looking up/down 3
joy_axisup Axis for up/down movement. -1 (none)
The following cvars the axis deadzone tolerance values for the above,
all defaulting to 0. suggested values range between 0 to 0.01:
joy_deadzoneside, joy_deadzoneforward,
joy_deadzoneyaw, joy_deadzonepitch,
joy_deadzoneup
The following cvars are the axis movement multiplier (sensitivity) for
the above, all defaulting to 1:
joy_sensitivityside, joy_sensitivityforward,
joy_sensitivityyaw, joy_sensitivitypitch,
joy_sensitivityup
----------------------------------------------------------------
2. KNOWN PROBLEMS
-----------------
2.1 Sound Problems
------------------
First, we recommend using 44100 or 48000 as the sampling rate with
recent sound chipsets: use a command line argument like
"-sndspeed 44100".
If you have problems making sound to work correctly, using the arts
sound server may help you: artsd & ; artsdsp -m glhexen2 -sndoss
You may notice some lag in sound but if all fails this may be a good
enough workaround.
We have reports that some i8x0 sound chips not working correctly with
hexen2, and this is overcome either by using alsa driver of hexen2 at
48000 sampling rate, or by the arts workaround mentioned above.
The ALSA driver may complain about a non-power-of-two buffer size and
unsatisfactory sound may result. The following was once reported for
an onboard VIA82xx audiocard:
ALSA: Using device: default
ALSA: 14867 bytes buffer with mmap interleaved access
ALSA: WARNING: non-power of 2 buffer size. sound may be
unsatisfactory. Recommend using either the plughw or hw
devices or adjusting dmix to have a power of 2 buf size
ALSA Audio initialized (16 bit, stereo, 44100 Hz)
You may resolve this by using a .asoundrc like the following,
pcm.alsa_fixh2 {
type dmix
ipc_key 2048
slave {
pcm "hw:0"
rate 48000
period_time 0
period_size 1024
buffer_size 16384
channels 4
}
}
and starting uhexen2 with:
$ glhexen2 -sndalsa -alsadev alsa_fixh2 -sndspeed 48000
(Notice the -sndalsa -alsadev alsa_fixh2 parameters. Tested and
documented by Davide Cendron.)
2.2 Lines on Screen
-------------------
A common problem, especially with 3dfx cards, is flickering lines
across the screen caused by a GL hack which isn't supported today.
To fix this, bring down the console and enter 'gl_ztrick 0'. With
fresh installations of uhexen2, this option is disabled by default.
2.3 Fluxbox
-----------
Though it's a great window manager, older versions of fluxbox have
issues with some games in fullscreen mode. If this is the case,
hit "ALT + Enter" twice to switch into windowed mode and then back
into fullscreen mode.
----------------------------------------------------------------
3. GENERAL INFO
---------------
3.1 Mods
--------
Running a Hexen II mod is the same as running a Quake mod: You need
to specify its directory name after a -game argument on the command
line. For example, in order to run Fortress of Four Doors:
./glhexen2 -game fo4d
If you want to run some mod with mission pack support enabled, use
a command line with -portals argument included. For example:
./glhexen2 -portals -game somemod
Fortress of Four Doors is one of the few large mods for Hexen II. It
has a confusing level near the middle, but is otherwise great. Look
around the web for the file fo4d.zip or fo4d.tgz (also available on
our downloads page.)
Also, make sure to check out the botmatch mod "hcbots" available
at our project page.
Rino recently made his two mods available: mpbyrino and mpbyrino2.
The former works fine with Hexen II, whereas the latter needs the
Portal of Praevus expansion pack. Rino's mods are at:
https://www.facebook.com/pages/RINO/265889100246732
The "Game of Tomes" mod by peewee_rota (aka ThePunKing) is another new
hexen2 mod: https://github.com/cabbruzzese/gameoftomes/wiki
And then, there is the somewhat incomplete Project Peanut: Developed
by Shanjaq, Project Peanut introduces RPG elements, such as a massive
array of spells, in a very interesting way. Its homepage is at:
http://www.geocities.ws/shanjaq/index.html
Demo note: You need the full retail version of the game in order to
play modified games: mods are not supported in the demo version.
3.2 Game Console
----------------
Games based on the Quake engine have an in game console - toggled by
the '~' key or by the Shift-Escape key combination - from which
variables can be changed. Some of these affect performance, others
enable features. A brief list follows but for more info see:
http://www.quakewiki.net/archives/console/commands/quake.html
variable valid values
-------- ------------
fov_adapt 0 or 1 : Disable/enable Hor+ style field of view (FOV)
scaling. Default is enabled: your fov will be
scaled automatically according to the screen
resolution, so that manual fov changing isn't
needed. Opengl and software renderers both
supported.
_snd_mixahead 0.1-0.9 : 0.1 = less latency, 0.9 = better performance.
Don't play with the default 0.1 value unless
you really need to.
snow_active 0 - 255 : 0 = none, 1 = normal amount designated by the
map. Higher acts as a multiplier, very high
values may cause massive performance loss in
opengl.
3.2.1 Some opengl options
-------------------------------
gl_multitexture 0 or 1 : Disable/enable multitexture support. 0 is
default. Faster performance if the hardware
supports it. Menu can be used to change the
setting (Video Modes -> Multitexturing.)
gl_texture_NPOT 0 or 1 : Disable/enable non-power-of-two textures. If
the hardware supports it, it'd make a better
job with textures, most noticibly with the 2D
elements. 0 is default. Menu can be used to
change the setting (Video -> NPOT textures.)
NOTE: Some old graphic cards, such as R300 to
R500 class ATI Radeons or NVIDIA GeForce FX,
may lie about fully supporting this feature:
enabling this on such hardware may result in
an unplayable slowdown.
gl_texturemode : GL_NEAREST (Point sample, least quality)
GL_LINEAR (Bilinear, no mipmaps)
GL_NEAREST_MIPMAP_NEAREST
GL_NEAREST_MIPMAP_LINEAR
GL_LINEAR_MIPMAP_NEAREST (Bilinear: default)
GL_LINEAR_MIPMAP_LINEAR (Trilinear: best)
Also adjustable from the menu. Bilinear is
recommended. If you don't have an ancient
graphics card, you should have no trouble
running with the trilinear filtering.
gl_texturemode_anisotropy: 1 is the minimum value with no anisotropic
filtering. Values >= 2 will take effect if
the hardware has support for it.
gl_constretch 0 or 1 : Disable/enable console background eye candy.
3.2.2 Software renderer options
-------------------------------
sbtrans 0, 1, 2 : HUD (status bar) transparency.
0: none (solid, default setting),
1: slightly transparent,
2: very transparent.
dmtrans 0, 1, 2 : Same as the sbtrans above, but used for the
small deathmatch overlay in multiplayer.
contrans 0, 1, 2 : Same as the sbtrans above, but used for the
console background transparency.
3.2.3 Other OpenGL options
-------------------------------
gl_coloredlight 0, 1, 2: Static colored lights. 0 is the white light
that hexen2 traditionally uses.
Mode 1 is colored lighting.
Mode 2 is experimental, which combines white
and colored lighting (if available), and can
give better results then just colored lighting
sometimes. It is also slightly brighter.
0 is the default mode. Can be adjusted from
the menu system. Changing this option requires
the level to be reloaded. Colored lighting
requires RGBA lightmaps (also selectable from
the menu.)
gl_colored_dynamic_lights 0 or 1:
Disable/enable colored dynamic lights. 0 is
the default. Also adjustable from the menu.
gl_extra_dynamic_lights 0 or 1:
Disable/enable extra dynamic lights. 0 is the
default. Also adjustable from the menu.
gl_purge_maptex 0 or 1: Purge opengl textures upon map changes. The
textures won't keep accumulating from map to
map, but the levels will load slower. Default
is 1. Adjustable from the menu.
3.2.4 Nvidia tweaks
-------------------------------
These are only valid for supported hardware (Geforce and better) with
Nvidia's proprietary linux video drivers installed.
The -sync or -vsync command line switch forces GL redraws to sync with
the monitor refresh for a more stable image. This is equivalent to
setting the environment variable __GL_SYNC_TO_VBLANK to 1.
You can override our -fsaa switch if you set Nvidia-specific environment
variable __GL_FSAA_MODE to an appropriate value. The details for this
can usually be found in Nvidia's readme file. Briefly: Geforce 1 and 2
use mode 3 or 4, others 1, 2, 4 or 5.
3.3 Hardware Acceleration
-------------------------
Setting up hardware OpenGL acceleration under Linux used to be a big
deal in the past. Modern linux distros do this automatically now.
Nvidia's drivers for all of their modern video cards are not open
source, and because of this many distributions do not include them.
If your Nvidia card is running slowly, this is probably the cause, you
should visit Nvidia.com to download the linux installer. In my
experience these drivers are great, but not all versions work 100% with
all cards. If you have a misbehaving Nvidia video card, try a different
driver version. Linux kernel 2.6.8 / Nvidia driver version 6111 /TnT
card and possibly other cards and kernels have issues with the GL game:
upgrade to 7167 to fix these problems. If you don't want to change your
nvidia driver and the game seems to halt, try using the alt-enter key
combination to switch to windowed mode and redraw the screen. Behavior
is the same for glquake.
3dfx Voodoo1/2 and Voodoo Rush are no longer hardware accelerated under
XFree-4.x and X.org releases. You need Glide, and Mesa compiled against
glide. For some more detailed info, consult the document README.3dfx.
3.4 Thanks
----------
Thanks to ID Software, Raven Games and Activision for a great game and
for supporting open source software, to Dan Olson and Clément Bourdarias
for the initial Linux port, and to sourceforge.net for hosting us. Many
thanks to all of our contributors: see the AUTHORS file for a complete
list of them.
3.5 Links
---------
3.5.1 Hammer of Thyrion pages:
-------------------------------
Home page : http://uhexen2.sourceforge.net/
Project page : http://sourceforge.net/projects/uhexen2/
SVN Repository : http://sourceforge.net/p/uhexen2/code/
3.5.2 Hammer of Thyrion ports:
-------------------------------
AmigaOS4 port:
http://os4depot.net/?function=showfile&file=game/roleplaying/uhexen2.lha
Pandora (GP2X) port:
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,30,66
PalmOS port: http://www.metaviewsoft.de/
RISC OS port:
http://www.riscository.com/2012/hexen-ii-port-released/
http://www.iconbar.com/forums/viewthread.php?threadid=8455&page=1#120298
3.5.3 Hammer of Thyrion packages / builds:
-------------------------------------------
FreeBSD packages:
http://www.freshports.org/games/uhexen2/
Arch Linux packages:
https://aur.archlinux.org/packages/hexen2/
Gentoo ebuilds:
http://bugs.gentoo.org/show_bug.cgi?id=105780
3.5.4 Other Hexen II ports:
----------------------------
Hexen II PSP port: http://jurajstyk.host.sk/
JLQuake, a Quake1/2/3 and H2/HW engine:
http://sourceforge.net/projects/vquake/
FTEQW, a Q1/QW engine with H2 support:
http://sourceforge.net/projects/fteqw/
Korax's UQE Hexen II: http://www.jacqueskrige.com/
3.5.5 Older, currently inactive Hexen II ports:
------------------------------------------------
Hexen II Mac port : http://macglquake.sourceforge.net/
Hexen II Dreamcast: http://dcquake.sourceforge.net/
JSHexen II : http://jurajstyk.host.sk/
Pa3PyX's Hexen II : http://pa3pyx.dnsalias.org/
Kiero's old MorphOS port of Hammer of Thyrion:
http://www.binaryriot.org/users/kiero/
3.5.6 Other links:
-------------------
Hexen II resources at gamers.org:
http://www.gamers.org/pub/idgames2/hexen2/
http://www.gamers.org/pub/idgames2/planetquake/hexenworld/
Rino's Hexen II mods:
https://www.facebook.com/pages/RINO/265889100246732
Game of Tomes mod by peewee_rota (aka ThePunKing):
https://github.com/cabbruzzese/gameoftomes/wiki
DarkRavager's Hexen II resources:
http://pages.citenet.net/users/danielm/hexen/hexen.html
Linux Quake HOWTO: http://tldp.org/HOWTO/Quake-HOWTO.html
id Software : http://www.idsoftware.com/
Raven Software: http://www.ravensoft.com/
SDL homepage : http://www.libsdl.org/
ALSA homepage : http://www.alsa-project.org/
---------------------------------
APPENDIX A. Some Legacy Options
---------------------------------
If, while running around, the screen occasionally twitches up and down,
then disable lookspring by typing "lookspring 0" in the game console.
Lookspring, lookstrafe and keyboard look (+klook) are legacy options
from DOS times for systems without a mouse, which we didn't kill only
for historical reasons. They are pretty much of no use today and we
recommend disabling them if they aren't already. Those options and/or
key bindings are removed from the menu system of Hammer of Thyrion.
For reference, here are what they are meant to do, as written in the old
manuals:
lookspring: 0 or 1. Returns your view immediately to straight ahead
when you release the look up / down key. Otherwise, you
must move forward for a step or two before your view
snaps back.
lookstrafe: 0 or 1. If you are using the look up / down key, then
this option causes you to sidestep instead of turn when
you try to move left or right.
keyboard look: If +klook is bound to a key, press that key to use your
movement keys to look up or down.
mouse look: If +mlook is bound to a key, press that key to allow
your mouse to look up or down (by sliding it forward and
back), and to remain looking up or down even if you move
forward.
And here are some legacy opengl options:
gl_picmip (0, 1, 2): 0 is default. 1 and 2 scale down the textures (low
quality), but the help screens and some small fonts
become unreadable and ugly. Was useful with old hardware
with low memory back at the time. Keep it as 0.
gl_playermip: similar to gl_picmip, but was for player skins.
gl_ztrick (0 or 1): 3% performance hack mostly unsupported today. (See:
http://forums.insideqc.com/viewtopic.php?p=36082#p36082)
Keep it as 0.
================================================================
Hexen II: Hammer of Thyrion
Development Progress :
---------------------------
2016-01-10 (SVN):
* zone.c: fix padding in memblock_t struct to work as intended.
the previous layout was probably harmless but wasted a few bytes.
(from quakespasm svn r1275, patch by Eric Wasylishen.)
* DOS: experimental support for several pci sound cards.
* bump version date stamp to 2016-01-10.
================================================================
Hammer of Thyrion (uHexen2) release notes:
========================================================================
Changes in v1.5.9: (May 31, 2018.)
========================================================================
This is a minor bug fix and maintenance release:
- OS/2 support using SDL (should work on eComStation and ArcaOS too.)
- Updated third-party libraries (music codecs, SDL, etc.)
- Support for Watcom compiler targeting OS/2 and Windows.
- Support for libxmp for tracker music decoding (disabled by default.)
- AHI audio no longer fails if the library returns 32 bit format (e.g.
in AROS v0 nightly builds.)
- New AmigaOS MIDI driver using CAMD library.
- Several optimized assembler sources for m68k-amigaos.
- gcc is now supported to target m68k-amigaos.
- Software renderer: Reduced some 2D overdraw. Faster model lighting.
- Recursion optimizations to server world query procedures.
- New 'viewpos' command to display client's position and angles (based
on FitzQuake version.)
- config.cfg is no longer written in case of a Sys_Error.
- Utils, windows: Change threads creation to use _beginthreadex().
- All platforms, gameplay: Necromancer soul devour no longer prints a
stray number (bug #65.)
- Other minor fixes, tidy-ups, and protability tweaks.
========================================================================
Changes in v1.5.8a (Aug. 28, 2016)
========================================================================
This is a post-release patch against v1.5.8 fixing a few Amiga issues:
- Amiga sound (AHI backend): fix sample rates lower than 11025 Hz.
- Amiga sound (AHI backend): fix bad sound with sample rates which are
not a multiple of 11025.
- Amiga input: limit lowlevel.library joystick ports to 0-3.
- AmigaOS3, MiniGL: smart and automatic locking support. New cvar:
gl_lockmode, valid values: "manual" (default), "auto", and "smart".
========================================================================
Changes in v1.5.8: (Aug. 12, 2016.)
========================================================================
This is a minor bug fix and maintenance release:
- 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.
========================================================================
Changes in v1.5.7: (Jan. 10, 2016.)
========================================================================
- 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/hexen2-run.sh)
- Removed the gtk launcher.
- Updated third-party libraries (music codecs and SDL).
========================================================================
Changes in v1.5.6: (Mar. 15, 2013.)
========================================================================
- 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.
========================================================================
Changes in v1.5.5: (Jan. 02, 2013.)
========================================================================
- 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.
========================================================================
Changes in v1.5.4: (July 01, 2012.)
========================================================================
- 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.
========================================================================
Changes in v1.5.3: (Apr. 10, 2012.)
========================================================================
- 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.
========================================================================
Changes in v1.5.2: (Apr. 04, 2012.)
========================================================================
- 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". The 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. The 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 camera
mode. 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 the WatTCP
library. (doesn't work yet due to WatTCP bugs.)
- DOS: Added "-nogus" command line option so that UltraSound initializa-
tion can be skipped by the user if necessary.
- Miscellaneous source code cleanups.
========================================================================
Changes in v1.5.1: (Nov. 21, 2011.)
========================================================================
- 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 was
not stretched to fill the screen.
- Linux: Fixed the gtk-launcher crash with new glibc.
- 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 the gtk
launcher to 1.0.6.
- Build system updates and source code cleanups.
========================================================================
Changes in v1.5.0: (Sep. 15, 2011.)
========================================================================
- bumped 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 and dropped the
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 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 didnt 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 value of
sys_throttle 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 6th 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 application) 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 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 issue 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 the cvar
external_ents: default value is 1 (enabled). setting it 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 v1.4.3 mostly during the unreleased 1.4.4-beta cycle:
- fixed 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 new command line option -cddev 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 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.
- 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.
- other minor fixes.
================================
There is a test version of U-Hexen2 released on 2025.08.06:
Follow www.os2world.com forum threads for feedback and more infos.
|
![]() |
||
U-Hexen & U-Hexen 2 v. 0.601 (22/12/2004, Doodle) | ||
![]() |
||
U-Hexen & U-Hexen 2 v. 0.601 (21/6/2004, Doodle) | ||
![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License(link is external).
Add new comment