Chocolate Doom is a Doom source port developed by Simon "Fraggle" Howard since 2005. Its name is a joke around the phrase Vanilla Doom. Unlike other ports which attempt to fix the bugs in the original engine and add new features, Chocolate Doom deliberately attempts to behave as identically as possible to the original Vanilla Doom.
In particular, Chocolate Doom aims for:
- Demo compatibility with DOS Doom 1.9
- Savegame compatibility with DOS Doom 1.9
- Bug compatibility with DOS Doom 1.9 (it should be subject to the same limits as Vanilla Doom)
- Compatibility with DOS Doom 1.9 configuration files.
The port deliberately maintains the original Vanilla Doom limits in order to be useful to level designers. As most ports fix Doom's bugs, designing a level to work for Vanilla Doom usually requires using the DOS Vanilla Doom executable to test the level; however, this requires an MS-DOS-based system or an emulator such as DOSBox in order to run properly. Chocolate Doom provides the same functionality under modern operating systems. Furthermore, the fact that it is much closer to the original source code means that it may be useful in the future as a tool for checking demo compatibility in other ports.
Chocolate Doom is based on LibSDL which makes it portable across multiple operating systems. It runs on Microsoft Windows and Unix-like OSes. "Bleeding edge" builds containing the latest features available from the Subversion repository are available via the website (these builds are maintained and hosted by exp(x)).
A "Chocolate Setup" tool accompanies the port and can be used to configure it. The setup tool mimics the appearance of the original Doom setup program.
Support for other games
In addition, the SVN repository holds two branches exist to add support for other games:
- raven-branch; Adds support for Heretic and Hexen. Developed by Fraggle.
- strife-branch; Adds support for Strife. Developed by James Haley (Quasar) and Samuel Villarreal (Kaiser).
In general there are few extra features included in Chocolate Doom, due to the nature and design goals of the port. The few extra features which do exist add functionality which was previously available in DOS tools. Some examples are:
- Enhanced multiplayer support - although the gameplay is identical to that of Vanilla Doom, the underlying multiplayer code has been rewritten to better support Internet play. A client-server mode is also available.
- Dehacked support, adding the functionality that the DOS dehacked program provided.
- The ability to "merge" sprites and flats into the IWAD's list, adding the functionality that DeuTex and NWT provided and allowing many TCs to be played.
- Compatibility with the Doom v1.91 turning resolution fix.
- Mouse acceleration control, which was previously available through certain mouse drivers.
- The ability to turn off vertical mouse movement. This was previously possible using a DOS program called "novert".
- Compatibility with monitors that do not support the original screen resolution. Pixels are interpolated on higher resolutions to simulate 320x200, and the aspect ratio can be adjusted to 4:3.
- OPL emulation using the DOSBox OPL emulator.
- Chocolate Doom version 2.0.0 added support for Gravis Ultrasound through the use of GUS patches. This was further improved upon in version 2.1.0, where Chocolate Doom would automatically detect the GUS patches found within Doom 3: BFG Edition.