wHeretic v0.5a Build 9

This a WIN32 version of Heretic that I've called wHeretic for now. You need at least DirectX version 3 for this to work. It runs fine on NT4 SP6a and Win9X.

For info on the development of wHeretic visit the homepage, http://www.raven-games.com/wheretic

Running this thing

Throw wHeretic.exe and A3DAPI.DLL into your Heretic directory (shareware is fine) and run it.
A3DAPI.DLL must be present even if you don't have an A3D product!
wHeretic defaults to 640x400 but other video modes are available through the -width and -height command line options.
Use the setup program that came with your original Heretic to set up your keys.
Sound hardware is automatically detected (use -nosound to disable it).
Music hardware is automatically detected (use -nomusic to disable it).
Mouse support is automatically detected (use -nomouse to disable it).
Ken Phipps has written a front-end for wHeretic. Head over to Dark Worlds to download it. While you're there, grab some more single player levels :]

Network Play

wHeretic is a peer-to-peer network application and not a client-server application. In order to play you need to have matching startup commands on both machines.

Example 1. The following will search the local IPX network until it finds 2 nodes.

wHeretic -net
Example 2. The following will search the local IPX network until it finds 3 nodes.
wHeretic -net -nodes 3
Example 3. The following will search the local UDP network until it finds 4 nodes.
wHeretic -net -udp -nodes 4
Example 4. The following will connect to the computer at 192.168.1.2 for net play (obviously you'll need to substitute the appropriate IP addresses...).
wHeretic -net -udp -connect 192.168.1.2
On the other PC you'll have to run
wHeretic -net -udp -connect 192.168.1.1
There are issues with multi-homed systems. If you know enough to set up a multi-homed system, you shouldn't have any problems with wHeretic though.

wHeretic specific config file parameters

Option Description
vid_width Sets the default resolution width. A value of -1 reverts to the default value that is hardcoded in wHeretic [640]. Used in conjuction with vid_height
vid_height Sets the default resolution height. A value of -1 reverts to the default value that is hardcoded in wHeretic [400]. Used in conjuction with vid_width
vid_vsync Wait for vertical retrace toggle. A value of 0 disables it and a value of 1 enables it. Also available from the OPTIONS - VIDEO menu.
crosshair Crosshair toggle. A value of 0 disables it and a value of 1 enables it. Also available from the OPTIONS - MISC menu.
autoaim Autoaim toggle. A value of 0 disables it and a value of 1 enables it. Also available from the OPTIONS - MISC menu.
mouse_look Mouse look toggle. A value of 0 disables it and a value of 1 enables it. Also available from the OPTIONS - MOUSE menu.
mouse_invert Mouse invert Y-Axis toggle. A value of 0 disables it and a value of 1 enables it. Also available from the OPTIONS - MOUSE menu.
snd_mididevice Forces wHeretic to use a particular MIDI device. Valid values will depend on the number of MIDI output devices in your system. If you have 3 MIDI devices listed then values from 0 to 2 will be valid, etc. A value of -1 reverts to the default MIDI mapper. You shouldn't need to mess with this unless you are having problems with MIDI.
snd_2dvolume Sets the volume level for non-positional sound sources. Valid values are in the range of 0 to 15. Also available from the OPTIONS - AUDIO - ADVANCED menu
snd_3dvolume Sets the volume level for positional sound sources. Valid values are in the range of 0 to 15. Also available from the OPTIONS - AUDIO - ADVANCED menu
snd_distancescale Sets the volume attenuation for positional sound sources. Valid values are in the range of 0 to 15. Also available from the OPTIONS - AUDIO - ADVANCED menu
mmx_enable set to 1 to enable the use of MMX instructions in the drawing code.

wHeretic specific command line parameters

Option Parm1 Parm2 Description
-connect ip address 1 ip address n specify a list of IP addresses to connect to for multiplayer gaming. Used in conjuction with -udp and -net
-udp     Use UDP/IP instead of IPX. Must specify -net as well.
-net     Enable network play.
-nodes number   Specify the number of network nodes for LAN play. wHeretic will automatically look for number nodes on the local network.
-port number   Use an alternate network port. Useful for running multiple games on the same local network [default:34460].
-width pixels   Sets the resolution to pixels wide. Used in conjuction with -height
-height pixels   Sets the resolution to pixels high. Used in conjuction with -height
-maxdemo size   Allocates size kilobytes of memory for demo recording [default 128KB]

Original command line parameters

Option Parm1 Parm2 Description
-nosound     Disable sound support
-nomusic     Disable music support
-nojoy     Disable joystick support
-nomonsters     Play without monsters
-respawn     Monsters come back to life after you kill them
-ravpic     Take screenshots with the F1 key (name hrticNNN.pcx). Now supports an unlimited number of screenshots (up to 2 billion).
-noartiskip     Whether shift-enter skips an artifact
-config file.cfg   Use a specific configuration file
-file file1.wad file2.wad... Add files to the WAD list
-debug     Debug mode
-debugfile     Enables per player debug files (debugN.txt where N is the player number)
-recordfrom N   Loads savegame number N and starts recording a demo. Used in conjunction with -record
-record demo   Record a demo to file
-playdemo demo   Play a demo from file (can't be used with -timedemo)
-timedemo demo   Play a demo from file and provide perfomance info (can't be used with -playdemo
-deathmatch     Enables multiplayer deathmatch mode
-skill N   Set skill level from 1 to 5
-episode N   Jump to episode N
-warp E M Jump to episode E, mission M
-loadgame N   Loads the game previously saved in slot N
Hopefully that's all of them. Please let me know if you feel that I've left any important ones out!

Fixes/improvements included in version 0.5a

Fixes/improvements included in version 0.4a

Fixes/improvements included in version 0.3a

Fixes/improvements included in version 0.2a

Known issues

The only known issue right now is that sometimes when you ALT-TAB out of wHeretic it will "randomly" crash. My guess is that if you happen to ALT-TAB while the offscreen buffer is locked, Windows invalidates the pointer to it (the buffer is in video memory in my case) and hence, access violation (kaboom). It isn't clear to me if this is a Windows/DirectX problem or a problem with my video driver (ATI). I'd appreciate it if people would let me know if they see the same problem on their system (with a brief description of their video card and OS). Of course, I could just be missing some important detail...

What's next?

Get the improvements working reliably.
Include object velocities in the 3D sound engine (for doppler effects).

Special Thanks to (in no particular order)

|-----> !Thanks! <-----|

Legal stuff

By using this program you agree not to blame me if your computer bursts into flames or if your dog gets dutch elm disease as a result of using this program. You may not include this as part of any package for resale and you may not charge any fee for this program either. It may be distributed via the web provided this package remains intact.

"THIS MATERIAL IS NOT MADE OR SUPPORTED BY ACTIVISION."

Robin McLeod [rmcleod@raven-games.com]
http://www.raven-games.com/wheretic

"Refuse to be bound by the limitations of your humanity".

Heretic is copyright © Raven Software.