Bad Mood is a Doom engine written for the Atari Falcon 030, and achieves a playable framerate even on a stock machine (16MHz 68030 + 32MHz DSP).
Bad Mood has evolved significantly over time - starting back in 1995, and has reached an "alpha" release in 2014.
The initial versions were written in C, and started as an Atari port of DView by Jake Hill which was able to render Doom maps (without texture mapping). These initial versions were very slow on stock hardware, but this was then optimized by the Bad Mood team using assembler routines to make the flat-shaded rendering of the maps relatively fast. The last release of "flat-shaded" mode was in 1.32a, released in November 1995.
Texture mapping and sprites were then added to the engine, and with the addition of DSP code and some further optimization, was able to achieve relatively impressive speeds - but still ultimately for a Doom level viewer, not for a game. Much of this optimization was done by Doug Little, who was a well known developer in the Atari Falcon community.
Progress stalled after the 3.07a release in August 1997, when the various developers involved in the project gradually found other projects, and didn't have time to build a game based upon Bad Mood. This may also be related to the fact that in 1997 the source code to Doom was released under GPL, so there was less interest in creating another Doom-clone. However, as shown by pmdoom, performance of a straight port of the official linux doom source release to the Atari did not produce acceptable performance on all but the highest specification Atari computers.
After many years of inactivity for Bad Mood, Doug Little returned to Bad Mood in 2013, and he relatively quickly grafted the Bad Mood rendering engine into the Doom GPL codebase so that Bad Mood a became playable game. Additionally he then optimized many parts of the combined engine so that Doom could be rendered at a playable speed on a stock Atari Falcon.
A number of these optimizations are inside the Doom side of the code to allow it to be playable on this low specification machine, as it was found that it took approximately the same amount of time to render the scene as it did to run the AI and game logic.
Atari Falcon enhancements
Bad Mood runs in the Atari Falcon's True Colour mode, allowing it to use more than 256 colours at a time. Bad Mood takes advantage of this to add depth cues to the lighting by fading the colours with distance.
It also allows for each individual texture to use a different palette, so it is possible to create texture-sets which use more colours than the default doom textures.
Bad Mood has additional liquid shaders that are able to deform the textures and provide better animated liquids than base Doom.
- Historic old website - http://www.klockars.net/bad_mood.html
- New (2014) website - http://devilsdoorbell.com/
- 2013/2014 development log - http://atari-forum.com/viewtopic.php?f=68&t=24561
- 3rd party write up - http://files.dhs.nu/party/sillyventure2013/mag2013/Magstuff/badmood.htm