SMMU stands for "Smack My Marine Up". It is a Doom source port I wrote between 1998-2001. More information on it is available on the Doom Wiki. It was based on the MBF source port by Lee Killough.

Work on SMMU ceased years ago and it is no longer maintained or developed. The Eternity Engine is derived from the SMMU codebase and should be considered its spiritual successor. This page is an attempt to gather as much relevant data about SMMU, for historical posterity.

As the author of SMMU, I humbly request that you do not redistribute SMMU. While the license allows you to legally do so, the code contains a number of critical bugs that were never fixed (and will never be fixed). Please see the Doom Wiki for alternative suggestions of source ports to use; if you need a stable DOS source port then consider using MBF.

Screenshots and Features

A summary of some of the features of SMMU is available, including some screenshots. The page was created during SMMU's development, and all of the "coming soon" features listed were eventually included.

As a demonstration, you can also download a simple demo level that that shows some of SMMU's features (including FraggleScript). A video of it is below.

SMMU includes a couple of easter eggs in the console. You can see some screenshots of these here and here.


These are the most recent builds that I have in my possession. Due to bit rot, I no longer have a working compile environment that will build SMMU.

SMMU is licensed under the GNU GPL v2.

Older versions

Releases of SMMU were clumsy and irregular, and I don't have a complete version history in my possession. However, thanks to James Haley (Quasar), here are some old versions and releases!
SMMU v3.21 (Christmas Day 1999 release). This release served as the primary base for the Eternity Engine - most features introduced after this version did not make it into Eternity, although a few select changes from later versions were incorporated. Binaries, Source.
SMMU v3.20 ("Millenium" private beta distributed to testers - December 18th 1999). This is "the beta with hubs support". I do not have the definitive source code to this version, though the github repository contains a backup snapshot with the same date. Binaries,
SMMU v3.10 (FraggleScript "beta" release - October 25th 1999) Binaries, Source.
SMMU v3.02 ("Birthday Beta" release - July 25th 1999). Introduced lots of the basic unique features of the port - chasecam, coloured lighting, etc. Binaries, Source.
SMMU v3.01 (March 20th 1999). Very early version with only some very basic features in place. I sadly do not have the source code to this version. Binaries.
If you have any old versions of SMMU in your possession that are not listed here, please get in contact as I am eager to have as complete a history as possible.

Version history

In the later stages of the development of SMMU, I adopted CVS as a version control system to track the source code. The CVS repository is available for download. It contains fix-ups that I made in 2001, and also a fixed version of MBF that I ported to work on later versions of DJGPP.

I have converted the CVS repository into a Git repository. The revision history can be browsed on GitHub. This repository also incorporates the code from the old versions above, and some "backup" source code snapshots that I recovered from an old hard drive. You can follow the change history back all the way to the MBF source code - though the changes are quite large and complicated for the early history before I adopted CVS.

You can also read the development blog that I posted on my website while I was writing SMMU to get a feel for how the port developed.


As part of the process of rewriting the network engine I developed a master server for locating games on the Internet. The master server is no longer running; however, the source code can be downloaded.

Text mode

SMMU includes a feature for rendering the screen in text mode. There is a separate text mode doom page with more information, including screenshots.


SMMU stands for "Smack My Marine Up", a reference to the song by The Prodigy, Smack My Bitch Up. I originally used the name sfdoom (see below), but disliked the name and asked various people for suggestions for alternate names. I credit BrV-Zokum as the source/inspiration for the name :-)


SMMU includes the FraggleScript programming language; this was later incorporated into other source ports (including Doom Legacy and GZDoom). The code for the interpreter was developed separately and later incorporated into SMMU; the source code to the standalone version can be found in the /idgames archive.

It's probably not a good idea to use FraggleScript nowadays, because other modern source ports have far more powerful and practical alternatives. That said, if you really do want to learn about it, here are some resources:

There used to be a page about SMMU by Thomas Sturm with some FraggleScript information (used to be located here but that link is now broken). I don't have any way to contact Thomas nowadays. If you have a copy of these pages please contact me.


Before writing SMMU, my first excursion into Doom source hacking was writing the sfdoom port. This was based on Chi Hoang's original DOS port of the LinuxDoom source code that appeared in the first couple of days after the source release. sfdoom contained some features that later appeared in SMMU (coloured lighting, console, start map, basic scripting). SMMU was intended as a rewrite of sfdoom, and originally even used the same name.

sfdoom can be downloaded here:

MBF fixes

SMMU is based on Lee Killough's MBF. I also made a bugfixed version of MBF.
Simon Howard