SkillAgentSearch skills...

Woof

Woof! is a continuation of the Boom/MBF bloodline of Doom source ports

Install / Use

/learn @fabiangreffrath/Woof
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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

  • Arbitrary resolutions up to native display resolution with dynamic resolution scaling (DRS) to automatically change the internal resolution to maintain a target framerate.
  • Widescreen rendering with proper support for widescreen assets.
  • Rendering with uncapped frame rate and frame interpolation.
  • Adjustable field of view (FOV).
  • Support for voxels in KVX format.
  • 3D audio, supporting stereo and up to 7.1 surround sound with an optional HRTF mode, as well as PC speaker emulation.
  • Several music backends: native MIDI, FluidSynth with a bundled soundfont, built-in OPL3 emulator. Digital music and sound formats supported by libsndfile, module music supported by libxmp.
  • Modern gamepad support featuring rumble, gyro, flick stick, custom weapon slots, and full control of sensitivities, response curves, and deadzones.
  • Mouselook.
  • Autoload directories.
  • Savegame backward compatibility up to MBF.EXE.
  • Integration of the Chocolate Doom network code.
  • Compatibility levels: "Vanilla", "Boom", "MBF" and "MBF21" (default).

Capabilities

  • Support for additional node types, including DeePBSP and ZDoom's XNOD/ZNOD, XGLN/ZGLN, XGL2/ZGL2 & XGL3/ZGL3 extended formats.
  • Integration of the NanoBSP node builder (enforce with -bsp) for maps without nodes or with unsupported nodes (not demo compatible).
  • Tall textures and sprites in DeePsea format.
  • Support for UDMF maps, in the "Doom" namespace, compliant with version 1.1 of the spec.
  • Unlimited extra states, sprites, mobjtypes and sounds for use in Dehacked patches (supporting the "DEHEXTRA" and "DSDHacked" specs).
  • Ambient sounds using SNDINFO and DoomEdNums 14001 to 14064.
  • In-game music changing using MUSINFO and DoomEdNums 14101 to 14164.
  • UMAPINFO support, compliant to Rev 2.2 of the spec.
  • MBF21 compatibility level, compliant to Rev 1.4 of the spec.
  • Support for PNG graphics.
  • SMMU-style swirling animated flats.

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.

Building with vcpkg (Recommended - All Platforms)

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 f

View on GitHub
GitHub Stars296
CategoryDevelopment
Updated7d ago
Forks57

Languages

C

Security Score

100/100

Audited on Mar 15, 2026

No findings