woof

This is Woof!

Woof! Icon

Top Language Code Size License Release Release Date Downloads (total) Downloads (latest) Commits Last Commit Build Status

Woof! is a continuation of Lee Killough’s Doom source port MBF targeted at modern systems.

Synopsis

MBF stands for “Marine’s Best Friend” and is widely regarded as the successor of the Boom source port by TeamTNT. It serves as the code base for popular Doom source ports such as PrBoom+/DSDA-Doom or The Eternity Engine. As the original engine was limited to run only under MS-DOS, it has been ported to Windows by Team Eternity under the name WinMBF in 2004. Woof! is developed based on the WinMBF code with the aim to make MBF more widely available and convenient to use on modern systems.

To achieve this goal, this source port is less strict regarding its faithfulness to the original MBF. It is focused on quality-of-life enhancements, bug fixes and compatibility improvements. However, all changes have been introduced in good faith that they are in line with the original author’s intentions and even for the trained eye, this source port should still look very familiar to the original MBF.

In summary, this project’s goal is to fast-forward MBF.EXE from DOS to 21st century and remove all the stumbling blocks on the way. Furthermore, just as MBF was ahead of its time, this project dedicates itself to early adoption of new modding features such as DEHEXTRA+DSDHacked, UMAPINFO and MBF21.

What’s with the name?

If you turn the Doom logo upside down it reads “Wood” - which would be a pretty stupid name for a source port. “Woof” is just as stupid a name for a source port, but at least it contains a reference to dogs - and dogs are the Marine’s Best Friend. :wink:

Key features

Capabilities

Usage

Releases

Source code, Windows binaries (MSVC builds for Windows 7 and newer) and Linux AppImages for the latest release can be found on the Release page.

The most recent list of changes can be found in the current Changelog.

Compiling

The Woof! source code is available at GitHub: https://github.com/fabiangreffrath/woof.

Install vcpkg https://github.com/Microsoft/vcpkg?tab=readme-ov-file#get-started.

 git clone https://github.com/Microsoft/vcpkg.git
 cd vcpkg
 ./bootstrap-vcpkg.sh  # Unix/macOS
 # or
 .\bootstrap-vcpkg.bat  # Windows
 cd ..

Clone the woof repository:

 git clone https://github.com/fabiangreffrath/woof.git

Run the CMake configuration:

 cd woof
 cmake -B build -DCMAKE_TOOLCHAIN_FILE="[path to vcpkg]/scripts/buildsystems/vcpkg.cmake"

During this step, vcpkg will build all the dependencies.

Finally, build the project:

 cmake --build build

After successful compilation, the executable will be available in the build/src directory.

Linux, and Windows with MSYS2

The following build system and libraries need to be installed:

Usually your distribution should have the corresponding packages in its repositories. If “development” (“dev”) versions of these libraries are available, make sure to install them.

Once installed, clone the woof repository, run the CMake configuration and build the project:

 git clone https://github.com/fabiangreffrath/woof.git
 cd woof
 cmake -B build
 cmake --build build

After successful compilation, the executable will be available in the build/src directory.

Contact

The canonical homepage for Woof! is https://github.com/fabiangreffrath/woof.

Woof! is maintained by Fabian Greffrath.

Please report any bugs, glitches or crashes that you encounter to the GitHub Issue Tracker.

Acknowledgement

MBF has always been a special Doom source port for me, as it taught me how to implement 640x400 resolution rendering which was the base for my own source port project Crispy Doom. As the original MBF was limited to run only under MS-DOS, I used its pure port WinMBF by Team Eternity to study and debug the code. Over time, I got increasingly frustrated that the code would only compile and run on 32-bit systems and still use the meanwhile outdated SDL-1 libraries. This is how this project was born.

Many additions and improvements to this source port were taken from fraggle’s Chocolate Doom, taking advantage of its exceptional portability, accuracy and compatibility. Further sources of inspiration are PrBoom+, DSDA-Doom and The Eternity Engine.

Special thanks to @rfomin and @ceski-1 for implementing the more advanced features of this port, and @JNechaevsky and @MrAlaux for helping to port back some useful features from their own source port projects!

Legalese

Files: *
Copyright:
© 1993-1996 Id Software, Inc.;
© 1993-2008 Raven Software;
© 1999 by id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
© 1999-2004 by Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze;
© 2004 James Haley;
© 2005-2006 by Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko;
© 2005-2018 Simon Howard;
© 2006 Ben Ryves;
© 2006-2025 by The Odamex Team;
© 2007-2011 Moritz “Ripper” Kroll;
© 2008-2019 Simon Judd;
© 2013-2025 Brad Harding;
© 2017 Christoph Oelckers;
© 2020 Alex Mayfield;
© 2020 Ethan Watson;
© 2020-2024 Fabian Greffrath;
© 2020-2024 Roman Fomin;
© 2021-2022 Ryan Krafnick;
© 2022-2024 Alaux;
© 2022-2024 ceski;
© 2023 Andrew Apted;
© 2023 liPillON;
© 2025 Guilherme Miranda.
License: GPL-2.0+

Files: src/i_flickstick.*, src/i_gyro.*
Copyright:
© 2018-2021 Julian “Jibb” Smart;
© 2021-2024 Nicolas Lessard;
© 2024 ceski.
License: MIT

Files: src/nano_bsp.*
Copyright:
© 2023 Andrew Apted.
License: MIT

Files: src/m_scanner.*
Copyright:
© 2015 Braden “Blzut3” Obrzut.
License: BSD-3-Clause

Files: src/v_flextran.*
Copyright:
© 2013 James Haley et al.;
© 1998-2012 Marisa Heit.
License: GPL-3.0+

Files: src/v_video.*
Copyright:
© 1999 by id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
© 2013 James Haley et al.
License: GPL-3.0+

Files: base/all-all/sprites/pls*, man/simplecpp
Copyright:
© 2001-2019 Contributors to the Freedoom project.
License: BSD-3-Clause

Files: base/all-all/dsdg*, base/all-all/sprites/dog*
Copyright:
© 2017 Nash Muhandes;
© apolloaiello;
© TobiasKosmos.
License: CC-BY-3.0 and CC0-1.0

Files: base/all-all/sbardef.lmp
Copyright:
© 2024 Ethan Watson.
License: CC0-1.0

Files: base/all-all/dmxopl.op2
Copyright:
© 2017 Shannon Freeman.
License: MIT

Files: base/all-all/sm*.png, data/setup.ico, data/woof-setup.png, data/woof.ico, data/woof.png, setup/setup_icon.c, src/icon.c
Copyright:
© 2020-2024 Julia Nechaevskaya.
License: CC-BY-3.0

Files: data/io.github.fabiangreffrath.woof.metainfo.*
Copyright:
© 2023-2024 Fabian Greffrath.
License: CC0-1.0

Files: opl/*
Copyright:
© 2005-2014 Simon Howard;
© 2013-2018 Alexey Khokholov (Nuke.YKT).
License: GPL-2.0+

Files: soundfonts/TimGM6mb.sf2
Copyright:
© 2004 Tim Brechbill;
© 2010 David Bolton.
License: GPL-2.0

Files: textscreen/*
Copyright:
© 1993-1996 Id Software, Inc.;
© 2002-2004 The DOSBox Team;
© 2005-2017 Simon Howard.
License: GPL-2.0+

Files: textscreen/fonts/hauge-8x18-v1-5.png Copyright: © 2025 Zokum. License: CC BY-SA

Files: netlib/*
Copyright:
© 1997-2025 Sam Lantinga;
© 2012 Simeon Maxein.
License: zlib

Files: third-party/md5/*
License: public-domain

Files: third-party/minimp3/*
Copyright:
© 2021 lief.
License: CC0-1.0

Files: third-party/miniz/*
Copyright:
© 2010-2014 Rich Geldreich and Tenacious Software LLC;
© 2013-2014 RAD Game Tools and Valve Software.
License: MIT

Files: third-party/pffft/*
Copyright:
© 2004 The University Corporation for Atmospheric Research (“UCAR”);
© 2013 Julien Pommier.
License: FFTPACK License

Files: third-party/sha1/*
Copyright:
© 1998-2001 Free Software Foundation, Inc.;
© 2005-2014 Simon Howard.
License: GPL-2.0+

Files: third-party/spng/*
Copyright:
© 2018-2023 Randy.
License: BSD-2-Clause

Files: third-party/yyjson/*
Copyright:
© 2020 YaoYuan.
License: MIT