Skip to content
A cross-platform port of Wolfenstein 3D with a number of changes and additions.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DC Initial commit Dec 29, 2016
DOSBOX Initial commit Dec 29, 2016
GP2X
MACOSX Initial commit Dec 29, 2016
MAME Initial commit Dec 29, 2016
WIN Initial commit Dec 29, 2016
.gitignore Fixed a memory leak in SD_PrepareSound Jan 22, 2017
AUDIOSOD.H Initial commit Dec 29, 2016
AUDIOWL6.H Initial commit Dec 29, 2016
Changes-dc.txt Initial commit Dec 29, 2016
Changes.txt Update Changes.txt for PC speaker emulation Feb 25, 2017
FOREIGN.H Initial commit Dec 29, 2016
F_SPEAR.H Initial commit Dec 29, 2016
GFXV_APO.H Initial commit Dec 29, 2016
GFXV_JAP.H Initial commit Dec 29, 2016
GFXV_SOD.H Initial commit Dec 29, 2016
GFXV_WL6.H Initial commit Dec 29, 2016
GP2X.H Initial commit Dec 29, 2016
ID_CA.CPP Initial commit Dec 29, 2016
ID_CA.H Initial commit Dec 29, 2016
ID_IN.CPP Initial commit Dec 29, 2016
ID_IN.H Initial commit Dec 29, 2016
ID_PM.CPP Initial commit Dec 29, 2016
ID_PM.H Initial commit Dec 29, 2016
ID_SD.CPP Added PC speaker sound emulation (thanks to ljbade and Chris) Feb 25, 2017
ID_SD.H Initial commit Dec 29, 2016
ID_US.H Initial commit Dec 29, 2016
ID_US_1.CPP Initial commit Dec 29, 2016
ID_VH.CPP Update ID_VH.CPP Dec 30, 2016
ID_VH.H Initial commit Dec 29, 2016
ID_VL.CPP - Fix to the moon overdrawing the border Jul 17, 2019
ID_VL.H - Fix to the moon overdrawing the border Jul 17, 2019
Makefile Initial commit Dec 29, 2016
Makefile.dc Initial commit Dec 29, 2016
Makefile.win Initial commit Dec 29, 2016
README-GP2X.txt Initial commit Dec 29, 2016
README-dc.txt Initial commit Dec 29, 2016
README-devcpp.txt Initial commit Dec 29, 2016
README.TXT Update README.TXT Jan 23, 2018
SIGNON.CPP Initial commit Dec 29, 2016
SODPAL.INC
SVNLOG.TXT Initial commit Dec 29, 2016
VERSION.H sky wall parallax Jun 26, 2018
WL_ACT1.CPP Slight refactor to suppress a couple of warnings Jan 28, 2019
WL_ACT2.CPP Made guards within walls (i.e. holowalls) behave as in DOS Feb 23, 2017
WL_AGENT.CPP Fixed a missing 64 -> BIT_WALL conversion Feb 22, 2017
WL_ATMOS.CPP - Fix to the moon overdrawing the border Jul 17, 2019
WL_ATMOS.H Initial commit Dec 29, 2016
WL_DEBUG.CPP Slight refactor to suppress a couple of warnings Jan 28, 2019
WL_DEF.H Made tilemap and pwalltile's type be chosen automatically depending o… Feb 22, 2017
WL_DRAW.CPP sky wall parallax Jun 26, 2018
WL_GAME.CPP Initial commit Dec 29, 2016
WL_INTER.CPP Initial commit Dec 29, 2016
WL_MAIN.CPP Update WL_MAIN.CPP (#10) Aug 16, 2017
WL_MENU.CPP Added PC speaker sound emulation (thanks to ljbade and Chris) Feb 25, 2017
WL_MENU.H Initial commit Dec 29, 2016
WL_PLAY.CPP Made guards within walls (i.e. holowalls) behave as in DOS Feb 23, 2017
WL_SHADE.CPP
WL_SHADE.H Initial commit Dec 29, 2016
WL_STATE.CPP Made guards within walls (i.e. holowalls) behave as in DOS Feb 23, 2017
WL_TEXT.CPP Initial commit Dec 29, 2016
WOLFPAL.INC Initial commit Dec 29, 2016
Wolf4SDL-DC.cbp Initial commit Dec 29, 2016
Wolf4SDL-GP2X.cbp Initial commit Dec 29, 2016
Wolf4SDL.VC9.sln
Wolf4SDL.VC9.vcproj Initial commit Dec 29, 2016
Wolf4SDL.cbp Initial commit Dec 29, 2016
Wolf4SDL.dev Initial commit Dec 29, 2016
Wolf4SDL.dsp Initial commit Dec 29, 2016
Wolf4SDL.dsw Initial commit Dec 29, 2016
Wolf4SDL.sln Initial commit Dec 29, 2016
Wolf4SDL.vcproj
config.default Initial commit Dec 29, 2016
license-gpl.txt Initial commit Dec 29, 2016
license-id.txt Initial commit Dec 29, 2016
license-mame.txt Initial commit Dec 29, 2016
sdl_winmain.cpp Initial commit Dec 29, 2016
wl_cloudsky.cpp Initial commit Dec 29, 2016
wl_cloudsky.h Initial commit Dec 29, 2016
wl_dir3dspr.cpp Initial commit Dec 29, 2016
wl_floorceiling.cpp Initial commit Dec 29, 2016
wl_parallax.cpp Initial commit Dec 29, 2016

README.TXT

Wolf4SDL by Moritz "Ripper" Kroll (http://www.chaos-software.de.vu)
Original Wolfenstein 3D by id Software (http://www.idsoftware.com)
Modifications to r262 by Andy_Nonymous and others
    (http://diehardwolfers.areyep.com/viewtopic.php?t=6693)
=============================================================================

Wolf4SDL is an open-source port of id Software's classic first-person shooter
Wolfenstein 3D to the cross-platform multimedia library "Simple DirectMedia
Layer (SDL)" (http://www.libsdl.org). It is meant to keep the original feel
while taking advantage of some improvements mentioned in the list below.


Main features:
--------------

 - Cross-platform:
      Supported operating systems are at least:
       - Windows 98, Windows ME, Windows 2000, Windows XP, Windows Vista
         (32 and 64 bit), Windows 7 (32 and 64 bit)
       - Linux
       - BSD variants
       - Mac OS X (x86)
       - KallistiOS (used for Dreamcast)
      Only little endian platforms like x86, ARM and SH-4 are supported, yet.

 - AdLib sounds and music:
      This port includes the OPL2 emulator from MAME, so you can not only
      hear the AdLib sounds but also music without any AdLib-compatible
      soundcard in near to perfect quality!

 - Multichannel digitized sounds:
      Digitized sounds play on 8 channels! So in a fire fight you will
      always hear, when a guard opens the door behind you ;)

 - Higher screen resolutions:
      Aside from the original 320x200 resolution, Wolf4SDL currently
      supports any resolutions being multiples of 320x200 or 320x240,
      the default being 640x400.
      Unlike some other ports, Wolf4SDL does NOT apply any bilinear
      or similar filtering, so the graphics are NOT blurred but
      pixelated just as we love it.

 - Fully playable with only a game controller:
      Wolf4SDL can be played completely without a keyboard. At least two
      buttons are required (shoot/YES and open door/NO), but five or more
      are recommended (run, strafe, ESC).

Additional features:
--------------------

 - Two additional view sizes:
      Wolf4SDL supports one view size using the full width of the screen
      and showing the status bar, like in Mac-enstein, and one view size
      filling the whole screen (press TAB to see the status bar).

 - (Nearly) unlimited sound and song lengths:
      Mod developers are not restricted to 64kB for digitized sounds and
      IMF songs anymore, so longer songs and digitized sounds with better
      quality are possible.

 - Resuming ingame music:
      When you come back to the game from the menu or load a save game, the
      music will be resumed where it was suspended rather than started from
      the beginning.

 - Freely movable pushwalls:
      Moving pushwalls can be viewed from all sides, allowing mod developers
      to place them with fewer restrictions. The player can also follow the
      pushwall directly instead of having to wait until the pushwall has left
      a whole tile.

 - Optional integrated features for mod developers:
      Wolf4SDL already contains the shading, directional 3D sprites,
      floor and ceiling textures, high resolution textures/sprites,
      parallax sky, cloud sky and outside atmosphere features, which
      can be easily activated in version.h.


The following versions of Wolfenstein 3D data files are currently supported
by the source code (choose the version by commenting/uncommenting lines in
version.h as described in that file):

 - Wolfenstein 3D v1.1 full Apogee
 - Wolfenstein 3D v1.4 full Apogee
 - Wolfenstein 3D v1.4 full GT/ID/Activision
 - Wolfenstein 3D v1.4 full Imagineer (Japanese)
 - Wolfenstein 3D v1.0 shareware Apogee
 - Wolfenstein 3D v1.1 shareware Apogee
 - Wolfenstein 3D v1.2 shareware Apogee
 - Wolfenstein 3D v1.4 shareware
 - Spear of Destiny full
 - Spear of Destiny demo
 - Spear of Destiny - Mission 2: Return to Danger (not tested)
 - Spear of Destiny - Mission 3: Ultimate Challenge (not tested)


How to play:
------------

To play Wolfenstein 3D with Wolf4SDL, you just have to copy the original data
files (e.g. *.WL6) into the same directory as the Wolf4SDL executable.
Please make sure, that you use the correct version of the executable with the
according data files version as the differences are hardcoded into the binary!

On Windows SDL.dll and SDL_mixer.dll must also be copied into this directory.
They are also available at http://www.chaos-software.de.vu

If you play in windowed mode (--windowed parameter), press SCROLLLOCK or F12
to grab the mouse. Press it again to release the mouse.


Usage:
------

Wolf4SDL supports the following command line options:
 --help                 This help page
 --tedlevel <level>     Starts the game in the given level
 --baby                 Sets the difficulty to baby for tedlevel
 --easy                 Sets the difficulty to easy for tedlevel
 --normal               Sets the difficulty to normal for tedlevel
 --hard                 Sets the difficulty to hard for tedlevel
 --nowait               Skips intro screens
 --windowed[-mouse]     Starts the game in a window [and grabs mouse]
 --res <width> <height> Sets the screen resolution
                        (must be multiple of 320x200 or 320x240)
 --resf <w> <h>         Sets any screen resolution >= 320x200
                        (which may result in graphic errors)
 --bits <b>             Sets the screen color depth
                        (Use this when you have palette/fading problem
                        or perhaps to optimize speed on old systems.
                        Allowed: 8, 16, 24, 32, default: "best" depth)
 --nodblbuf             Don't use SDL's double buffering
 --extravbls <vbls>     Sets a delay after each frame, which may help to
                        reduce flickering (SDL does not support vsync...)
                        (unit is currently 8 ms, default: 0)
 --joystick <index>     Use the index-th joystick if available
 --joystickhat <index>  Enables movement with the given coolie hat
 --samplerate <rate>    Sets the sound sample rate (given in Hz)
 --audiobuffer <size>   Sets the size of the audio buffer (-> sound latency)
                        (given in bytes)
 --ignorenumchunks      Ignores the number of chunks in VGAHEAD.*
                        (may be useful for some broken mods)
 --configdir <dir>      Directory where config file and save games are stored
                        (Windows default: current directory,
                        others: $HOME/.wolf4sdl)

For Spear of Destiny the following additional options are available:
 --mission <mission>    Mission number to play (1-3)
 --goodtimes            Disable copy protection quiz


Compiling from source code:
---------------------------

The current version of the source code is available in the svn repository at:
   svn://tron.homeunix.org:3690/wolf3d/trunk

The following ways of compiling the source code are supported:
 - Makefile (for Linux, BSD variants and MinGW/MSYS)
 - Visual C++ 2008 (Wolf4SDL.VC9.sln and Wolf4SDL.VC9.vcproj)
 - Visual C++ 2005 (Wolf4SDL.sln and Wolf4SDL.vcproj)
 - Visual C++ 6 (Wolf4SDL.dsw and Wolf4SDL.dsp)
 - Code::Blocks 8.02 (Wolf4SDL.cbp)
 - Dev-C++ 5.0 Beta 9.2 (4.9.9.2) (Wolf4SDL.dev) (see README-devcpp.txt)
 - Xcode (for Mac OS X, macosx/Wolf4SDL.xcodeproj/project.pbxproj)
 - Special compiling for Dreamcast (see README-dc.txt)
 - Special compiling for GP2X (see README-GP2X.txt)

To compile the source code you need the development libraries of
 - SDL (http://www.libsdl.org/download-1.2.php) and
 - SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/)
and have to adjust the include and library paths in the projects accordingly.

Please note, that there is no official SDL_mixer development pack for MinGW,
yet, but you can get the needed files from a Dev-C++ package here:
http://sourceforge.net/project/showfiles.php?group_id=94270&package_id=151751
Just rename the file extension from ".devpack" to ".tar.bz2" and unpack it
with for example WinRAR. Then add the directories include/SDL and lib to the
according search paths in your project.

IMPORTANT: Do not forget to take care of version.h!
   By default it compiles for "Wolfenstein 3D v1.4 full GT/ID/Activision"!


TODOs:
------

 - Center non-ingame screens for resolutions being a multiple of 320x240
 - Add support for any graphic resolution >= 320x200


Known bugs:
-----------

 - None! ;D


Troubleshooting:
----------------

 - If your frame rate is low, consider using the original screen resolution
   (--res 320 200) or lowering the sound quality (--samplerate 22050)


Credits:
--------

 - Special thanks to id Software! Without the source code we would still have
   to pelt Wolfenstein 3D with hex editors and disassemblers ;D
 - Special thanks to the DOSBox team for providing a GPL'ed OPL2/3 emulator!
 - Special thanks to the MAME developer team for providing the source code
   of the OPL2 emulator!
 - Many thanks to "Der Tron" for hosting the svn repository, making Wolf4SDL
   FreeBSD compatible, testing, bugfixing and cleaning up the code!
 - Thanks to Chris Chokan for his improvements on Wolf4GW (base of Wolf4SDL)
 - Thanks to Pickle for the GP2X support and help on 320x240 support
 - Thanks to fackue for the Dreamcast support
 - Thanks to Chris Ballinger for the Mac OS X support
 - Thanks to Xilinx, Inc. for providing a list of maximum-length LFSR counters
   used for higher resolutions of fizzle fade


Licenses:
---------

 - The original source code of Wolfenstein 3D:
     At your choice:
     - license-id.txt or
     - license-gpl.txt
 - The OPL2 emulator:
     At your choice:
     - license-mame.txt (fmopl.cpp)
     - license-gpl.txt (dbopl.cpp, USE_GPL define in version.h or set GPL=1 for Makefile)
You can’t perform that action at this time.