VOGONS


Help getting Hexen II software mode to work

Topic actions

First post, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

I know there's the OpenGL version and Hammer of Thyrion, which I have, but like others who have posted, I want to try and get all vanilla versions working first. Something I've managed with every Windows and DOS game so far. 😀

I've got the OpenGL version working, but whenever I load the software version I get an 'H2.exe appears to be corrupt' error. Looking on other threads, I've tried -dibonly, -nodd, -nodirectdraw, -usewindirect and -usedirectdraw, though I either get the same error message or an Illegal Operation error. I also tried dropping a DirectDraw.dll file in there, but I'm not sure which. One that I'd downloaded from somewhere for something else.

On another note, are there other command switches that work for any and all games? Universal switches? Or are those ones specifically for Hexen 2? For instance, if nodd or nodirectdraw work for other games are there any for Direct3D? I've found that disabling Direct3D in the DirectX Diagnostics tool fixes weird graphical issues in Simon the Sorcerer 1 and 2 with the Geforce 4. If there was a switch I could add to the game's executable, that would be super convenient.

Thanks

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 1 of 27, by nali

User metadata
Rank Member
Rank
Member

I was curious and try, with an iso I found.
The initial version was 1.03, and in software mode it crashed the computer when I tried to change resolution. But launched first at 320x200.
Black screen ---> hard reset.
After applying the 1.11 patch, it runs correctly when I change for 640x480 or 800x600.
Work also correctly in OpenGL with a Radeon 8500, Athlon XP, Win98SE.

I tried the same thing on another computer, K6-2 550 / TNT2 M64 / Voodoo2.
This time, even with the 1.11 patch the game crash the computer if I try to change the resolution ...
I also crash if I try OpenGL with the TNT2.
But it works with the Voodoo 2 !
Both use DirectX 8.1

Conclusion : no idea 😀

There are more options in the file h2b.bat :

@echo off
if x%1==xfast goto fast
if x%1==xsafe goto safe
if x%1==xverysafe goto verysafe
if x%1==xfastvid goto fastvid
if x%1==xfastsnd goto fastsnd
if x%1==xmax goto max

echo -------------------------------------------------------------------
echo Options for running Hexen 2:
echo h2b max: all features on, but doesn't work on all systems
echo h2b fast: maximum speed, but doesn't work on all systems
echo h2b fastvid: maximum video speed, but safer, probably slower sound
echo h2b fastsnd: maximum sound speed, but safer, probably slower video
echo h2b safe: very likely to run, but may be slower
echo h2b verysafe: almost sure to run, but probably slower, and no sound
echo -------------------------------------------------------------------
goto done

:max
h2 -dinput %2 %3 %4 %5 %6 %7 %8 %9
goto done

:fast
h2 %2 %3 %4 %5 %6 %7 %8 %9
goto done

:fastvid
h2 -wavonly %2 %3 %4 %5 %6 %7 %8 %9
goto done

:fastsnd
h2 -nodirectdraw -nowindirect %2 %3 %4 %5 %6 %7 %8 %9
goto done

:safe
h2 -nodirectdraw -nowindirect -wavonly %2 %3 %4 %5 %6 %7 %8 %9
goto done

:verysafe
h2 -dibonly -nosound -nojoy %2 %3 %4 %5 %6 %7 %8 %9
:done

Reply 2 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
nali wrote on 2026-02-21, 07:09:
I was curious and try, with an iso I found. The initial version was 1.03, and in software mode it crashed the computer when I tr […]
Show full quote

I was curious and try, with an iso I found.
The initial version was 1.03, and in software mode it crashed the computer when I tried to change resolution. But launched first at 320x200.
Black screen ---> hard reset.
After applying the 1.11 patch, it runs correctly when I change for 640x480 or 800x600.
Work also correctly in OpenGL with a Radeon 8500, Athlon XP, Win98SE.

I tried the same thing on another computer, K6-2 550 / TNT2 M64 / Voodoo2.
This time, even with the 1.11 patch the game crash the computer if I try to change the resolution ...
I also crash if I try OpenGL with the TNT2.
But it works with the Voodoo 2 !
Both use DirectX 8.1

Conclusion : no idea 😀

There are more options in the file h2b.bat :

@echo off
if x%1==xfast goto fast
if x%1==xsafe goto safe
if x%1==xverysafe goto verysafe
if x%1==xfastvid goto fastvid
if x%1==xfastsnd goto fastsnd
if x%1==xmax goto max

echo -------------------------------------------------------------------
echo Options for running Hexen 2:
echo h2b max: all features on, but doesn't work on all systems
echo h2b fast: maximum speed, but doesn't work on all systems
echo h2b fastvid: maximum video speed, but safer, probably slower sound
echo h2b fastsnd: maximum sound speed, but safer, probably slower video
echo h2b safe: very likely to run, but may be slower
echo h2b verysafe: almost sure to run, but probably slower, and no sound
echo -------------------------------------------------------------------
goto done

:max
h2 -dinput %2 %3 %4 %5 %6 %7 %8 %9
goto done

:fast
h2 %2 %3 %4 %5 %6 %7 %8 %9
goto done

:fastvid
h2 -wavonly %2 %3 %4 %5 %6 %7 %8 %9
goto done

:fastsnd
h2 -nodirectdraw -nowindirect %2 %3 %4 %5 %6 %7 %8 %9
goto done

:safe
h2 -nodirectdraw -nowindirect -wavonly %2 %3 %4 %5 %6 %7 %8 %9
goto done

:verysafe
h2 -dibonly -nosound -nojoy %2 %3 %4 %5 %6 %7 %8 %9
:done

Thanks for taking the time out to experiment. 😀 It is a weird one. The only way I got the OpenGL version to work was by removing the opengl32.dll file. That was giving me a Glide2x.dll error whenever I tried to launch. But the strange thing is, when I installed it the first time and removed that file, I don't think it made any difference. I still got the error. Or an error of some kind. Uninstalled and reinstalled and removing the file worked!

But yeah, it seems to play (or load) a bit better with Voodoo cards. It's fussy with Geforce cards, apparently. I think from Geforce 2 onwards...?

I totally missed those options. Thanks. I'll give them a try a bit later and see. I forgot to mention I'm using the latest update - 1.11.

For those percentages, do I need to put -dinput %2 or just 2?

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 3 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Okay, just tried the game in 86Box. Admittedly, that is using a Voodoo 3, but still... One notable difference I noticed right away, was after double clicking on Setup, it plays the intro movie before the setup wizard begins. It doesn't appear to do that on my main 98 system though. The other difference is, after the game is installed, all the icons have pictures. On my 98 system, they're all white empty boxes. And yeah, software mode loads up without a problem. Without the patch. So I'm wondering if there's something not quite right with my CD image of the disc. I'll have to try reinstalling it from the physical CD and see what happens.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 4 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Hmm. The issue is certainly related to the CD image. I noticed there's an outer ring, which indicates it has some sort of copy protection. However, I've tried making an image using ImgBurn on my main PC, I tried mounting that image in 86Box, and it worked properly. The intro movie plays when you double click on Setup. Tried it on my 98 PC and it comes up with the same box saying to insert the CD. Tried making an image using CloneCD, which worked for other copy protected CDs, like The Longest Journey's, but the same issue happens - please insert the CD. 🙁

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 5 of 27, by Ozzuneoj

User metadata
Rank l33t
Rank
l33t
DustyShinigami wrote on 2026-02-21, 18:43:

Hmm. The issue is certainly related to the CD image. I noticed there's an outer ring, which indicates it has some sort of copy protection. However, I've tried making an image using ImgBurn on my main PC, I tried mounting that image in 86Box, and it worked properly. The intro movie plays when you double click on Setup. Tried it on my 98 PC and it comes up with the same box saying to insert the CD. Tried making an image using CloneCD, which worked for other copy protected CDs, like The Longest Journey's, but the same issue happens - please insert the CD. 🙁

Not sure if you've accounted for this, but I think this game uses Redbook audio for music (much like Quake and Quake II), so there are actual CD audio tracks on there in addition to game data. Those could account for separate tracks you see on the CD, and it could explain why your image has problems. I don't have any experience making or using images from mixed mode CDs however, so you may need to do further research to figure out what to do about it.

Now for some blitting from the back buffer.

Reply 6 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
Ozzuneoj wrote on 2026-02-21, 19:18:
DustyShinigami wrote on 2026-02-21, 18:43:

Hmm. The issue is certainly related to the CD image. I noticed there's an outer ring, which indicates it has some sort of copy protection. However, I've tried making an image using ImgBurn on my main PC, I tried mounting that image in 86Box, and it worked properly. The intro movie plays when you double click on Setup. Tried it on my 98 PC and it comes up with the same box saying to insert the CD. Tried making an image using CloneCD, which worked for other copy protected CDs, like The Longest Journey's, but the same issue happens - please insert the CD. 🙁

Not sure if you've accounted for this, but I think this game uses Redbook audio for music (much like Quake and Quake II), so there are actual CD audio tracks on there in addition to game data. Those could account for separate tracks you see on the CD, and it could explain why your image has problems. I don't have any experience making or using images from mixed mode CDs however, so you may need to do further research to figure out what to do about it.

Oh yeah, I'm well aware. I checked 98's CD player to see if the game CD had audio tracks and it does, so I made sure to create a BIN and CUE image, but it still doesn't think the CD is fully present and asks for it. The game will install, but I'm not sure if it fully installs it. But then the OpenGL version works with audio tracks. Just not the software version, the intro movie, and all the different program icons in the Start Menu are empty white boxes instead of icons.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 7 of 27, by leileilol

User metadata
Rank l33t++
Rank
l33t++

The only copy protection Hexen II has is that it checks for a registry key that the installer makes. If it ain't there, the menu system will be locked out (but game still starts). Nothing disc based. Only the intro movie is on the autorun

apsosig.png
long live PCem
FUCK "AI"

Reply 8 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote on 2026-02-21, 21:09:

The only copy protection Hexen II has is that it checks for a registry key that the installer makes. If it ain't there, the menu system will be locked out (but game still starts). Nothing disc based. Only the intro movie is on the autorun

Ahh, I see. So I wonder if installing the game with the physical CD, so it makes a registry key, and then loading the game up with the CD image, would work...? But when you say the menu system will be locked out, do you mean the installer menu? Because that works for me with the image. And from there I can install.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 9 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote on 2026-02-21, 21:09:

The only copy protection Hexen II has is that it checks for a registry key that the installer makes. If it ain't there, the menu system will be locked out (but game still starts). Nothing disc based. Only the intro movie is on the autorun

Thank you for sharing this info with me. Installing it from the physical CD and then running the game from the CD image works. Both OpenGL and Software modes. 😀 I'm going to make a note of this for future reference.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 10 of 27, by nali

User metadata
Rank Member
Rank
Member

I'm sure the problem is not relative to the cd image.
I use Daemon tools and have about the same problem.

It you right click on the opengl32.dll file and check "Version", the Company name is "3Dfx Interactive".
It's a "mini gl" that works only with a Voodoo card.
So if opengl32.dll is in the main game folder next to glh2.exe, it will use this version of opengl.
If not, it will use the one provided by your video card driver, if any.
On Windows, a .exe will always look for the dll it needs first in the local directory, then in Windows/System(32). It doesn't apply only to opengl32.dll.

"For those percentages, do I need to put -dinput %2 or just 2?"
The % are internal arguments of the batch h2b.bat file.
Just launch it from a Dos prompt and you will get the help you need.
For example:
h2b safe

I also had a movie playing before the install start.
The movie is the file cdrom:/Splash/MOVIE/Istart.smk
I could not open it with VLC, but it plays with mplayer.
Anyway it doesn't really matter and is not related to how the game will play (or not) later

I then tried with a modern Rage XL PCI card on the K6-2.
Switching resolution in software mode works.
But it doesn't work with OpenGL, even if Quake 1 works 😀

I also tried with the K6-2, but with Windows 2000.
Same TNT2 M64, and same 45.23 version of Nvidia drivers.
Switching resolution in software and OpenGL mode both work.

So it seems the problem could be it locks with some Nvidia drivers in win98

Reply 11 of 27, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Switching resolutions while running wasn't implemented in GLQuake then nor was it implemented in GLHexen2. Throwing -width XXX -height XXX into the shortcut or batch was the common practice for setting the resolution. Blame OpenGL for not being stable at maintaining the state of everything that it requires whole re-initialization for a clean change.

Hexen II ships a 3dfx MiniGL by design because GLQuake also did and there really wasn't any other consumer card with a GL ICD at the time (1997) and 3dfx was fairly common as far as 3d cards went.

nVidia cards *NEED* -dibonly because of their palette issues. It wasn't just some drivers, it's the whole nv lineup.

apsosig.png
long live PCem
FUCK "AI"

Reply 12 of 27, by nali

User metadata
Rank Member
Rank
Member

Right, I made a mistake writing I could change resolution in Opengl mode...

nVidia cards *NEED* -dibonly because of their palette issues. It wasn't just some drivers, it's the whole nv lineup.

Does is apply to Opengl, or also to software mode ?
Because here I have Hexen crashing the PC on Win98 software, but not on Win2000.
Same 45.23 drivers version.

What means the option -dibonly ?
It's not listed in the safe modes.

Reply 13 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

I've not added -dibonly to my GL mode, to be honest. I should probably do that. And set the resolution.

Not related to getting either version to work, but I gather there's a specific way of getting controls to 'stick' once they've been set? I can't remember if Quake has the same problem, too. But usually once I've set the controls to my liking, after exiting and loading it back up, they're set back to default again. I did notice Hexen 2 has an Autoexec.cfg file. Do controls need to be added there instead?

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 14 of 27, by leileilol

User metadata
Rank l33t++
Rank
l33t++

If the controls aren't sticking, then you've probably got config.cfg flagged as read-only (likely from copying directly off disc instead of installing)

-dibonly only applies to software mode. Mostly it just tells the renderer to not write to the video memory. This will also make the menu background render faster as well as it doesn't try to read back from video memory for a translucency table effect.

apsosig.png
long live PCem
FUCK "AI"

Reply 15 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote on Yesterday, 14:11:

If the controls aren't sticking, then you've probably got config.cfg flagged as read-only (likely from copying directly off disc instead of installing)

-dibonly only applies to software mode. Mostly it just tells the renderer to not write to the video memory. This will also make the menu background render faster as well as it doesn't try to read back from video memory for a translucency table effect.

Oh no, it's definitely installed. Nothing was copied off the disc. But I'll take a look at the config file soon.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 16 of 27, by nali

User metadata
Rank Member
Rank
Member

If you delete config.cfg a new one will be created.
autoexec.cfg is the perfect place to write
+mlook

Reply 17 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote on Yesterday, 14:11:

If the controls aren't sticking, then you've probably got config.cfg flagged as read-only (likely from copying directly off disc instead of installing)

-dibonly only applies to software mode. Mostly it just tells the renderer to not write to the video memory. This will also make the menu background render faster as well as it doesn't try to read back from video memory for a translucency table effect.

Yeah, it’s not set to read-only. Will try and change them and set it.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 18 of 27, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, it doesn’t work quite right. I’ve tried both config and autoexec. And setting them to read-only. Google’s AI suggests custom controls need to be in autoexec.cfg…? With either of them, if I clear an existing control, put mine in, and load the game, that particular control is still set to two keys. A default and mine. I want the second assigned key removed and for it to be just my own. But in both config and autoexec, I don’t see any commands with two keys assigned. Jump is a good example. I’ve set it to use Space. In the game, it has Space and / assigned.

OS: Windows 98 SE
CPU: Slot 1 Pentium III Coppermine 933MHz (SL448)
RAM: Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/128MB Geforce 4 Ti 4200
Motherboard: ABit AB-BE6-II Intel 440BX
Sound Card: Sound Blaster Live Value CT4670

Reply 19 of 27, by nali

User metadata
Rank Member
Rank
Member

It's weird your controls are reseted at each launch ...
I've never seen this in any Quake game.
Do we speak about Hexen II/data1/config.cfg ?

Worst case, edit the file and set it read-only.
Here's mine. I Jump with right mouse button.

bind "TAB" "+showinfo"
bind "ENTER" "invuse"
bind "ESCAPE" "togglemenu"
bind "SPACE" "+crouch"
bind "'" "zoom_in"
bind "+" "sizeup"
bind "," "+moveleft"
bind "-" "sizedown"
bind "." "+moveright"
bind "/" "+jump"
bind "0" "impulse 0"
bind "1" "impulse 1"
bind "2" "impulse 2"
bind "3" "impulse 3"
bind "4" "impulse 4"
bind "5" "impulse 5"
bind "6" "impulse 6"
bind "7" "impulse 7"
bind "8" "impulse 8"
bind ";" "+mlook"
bind "=" "sizeup"
bind "[" "invleft"
bind "\" "impulse 44"
bind "]" "invright"
bind "`" "toggleconsole"
bind "a" "+lookup"
bind "c" "+movedown"
bind "d" "+moveup"
bind "q" "+showdm"
bind "t" "messagemode"
bind "z" "+lookdown"
bind "~" "toggleconsole"
bind "UPARROW" "+forward"
bind "DOWNARROW" "+back"
bind "LEFTARROW" "+moveleft"
bind "RIGHTARROW" "+moveright"
bind "ALT" "+strafe"
bind "CTRL" "+attack"
bind "SHIFT" "+speed"
bind "F1" "help"
bind "F2" "menu_save"
bind "F3" "menu_load"
bind "F4" "menu_options"
bind "F5" "menu_multiplayer"
bind "F6" "echo Quicksaving...; wait; save quick"
bind "F7" "demos"
bind "F9" "echo Quickloading...; wait; load quick"
bind "F10" "quit"
bind "F11" "zoom_in"
bind "F12" "screenshot"
bind "INS" "+klook"
bind "DEL" "+lookdown"
bind "PGDN" "+lookup"
bind "END" "centerview"
bind "MOUSE1" "+attack"
bind "MOUSE2" "+jump"
bind "MOUSE3" "impulse 10"
bind "PAUSE" "pause"
sys_delay "0"
m_side "0.8"
m_forward "1"
m_yaw "0.022"
m_pitch "0.022"
sensitivity "3"
lookstrafe "0"
lookspring "0"
cl_backspeed "200"
cl_forwardspeed "200"
_cl_playerclass "1.000000"
_cl_color "0"
_cl_name "player"
dm_mode "1"
_snd_mixahead "0.1"
bgmtype "cd"
bgmvolume "0"
volume "0.7"
leak_color "251"
gl_keeptjunctions "1"
r_wholeframe "1"
r_wateralpha ".4"
viewsize "100"
gl_ztrick "1"
_windowed_mouse "0"
vid_stretch_by_2 "1"
vid_config_y "600"
vid_config_x "800"
_vid_default_mode_win "3"
_vid_default_mode "0"
_vid_wait_override "0"
vid_nopageflip "0"
sv_sound_distance "800"
net_allowmultiple "0"
_config_modem_hangup "AT H"
_config_modem_init ""
_config_modem_clear "ATZ"
_config_modem_dialtype "T"
_config_com_modem "1"
_config_com_baud "57600"
_config_com_irq "4"
_config_com_port "0x3f8"
max_temp_edicts "30"
saved4 "0"
saved3 "0"
saved2 "0"
saved1 "0"
savedgamecfg "0"
sys_adaptive "1"
developer "0"
sys_quake2 "1"
gamma "1"
crosshair "0"

Using the option "-dibonly" fixed the crashes with the TNT2.