Difference between revisions of "Chocolate Doom"

From DoomWiki.org

[unchecked revision][checked revision]
(+logo)
(Support for other games: Empty subsections are kind of useless, rework.)
Line 28: Line 28:
 
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]].
 
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 ==
+
== Game support ==
[[File:Choco-strife02.png|200px|thumb|Chocolate Doom running [[Strife]].]]
+
Chocolate Doom, as its name implies, was originally written with the intent to run the classic Doom series, and a few other games such as [[Chex Quest]] and [[Hacx]] that are only marginally different from Doom in game mechanics. This focus persisted through the entire 0.x and 1.x line of releases.
Chocolate Doom natively supports the latest versions of all Doom [[IWAD]]s, plus [[Chex Quest]] and the IWAD version of [[Hacx]].
 
  
As of its version 2.0.0 release, Chocolate Doom ships side by side with Chocolate [[Heretic]], Chocolate [[Hexen]], and Chocolate [[Strife]], each of which is a separate source port built from the combination of the core Chocolate Doom engine code with each game's unique feature modules. The former two [[Raven Software]] games are supported through direct adaptation of code from their respective source code releases, whereas Strife is supported through the results of intensive reverse engineering work.
+
Support for [[Heretic]] and [[Hexen]] began shortly after the [[Raven source code licensing]] situation was cleared in 2008, with the code for those games being relicensed under the GNU GPLv2. The development was done on a revision control branch named ''raven-branch'', in parallel with the Doom-only code. Part of the goal of incorporating the code included restructuring Chocolate Doom so that it would have generic source code files in common with all the games, and more game-specific source code files in addition.
  
===Chocolate Doom===
+
In early 2010, [[James Haley (Quasar)|James Haley]] and [[Samuel Villarreal (Kaiser)|Samuel Villarreal]] started to reverse-engineer [[Strife]], working off of the Doom code and analyzing the game's internal logical in a disassembler called IDA Pro, since the source code for Strife was presumed lost. This development was done in a revision control branch called ''strife-branch'', developed in parallel with the Doom-only code and raven-branch at the same time.
  
===Chocolate Heretic===
+
[[File:Choco-strife02.png|200px|thumb|Chocolate Doom running [[Strife]].]]
 
+
Eventually, as both the Raven and Strife code matured, raven-branch and strife-branch were merged into a ''v2-branch'' in 2012, stabilizing and preparing the source code for suitability in playing and maintaining all four games at once, finally culminating in the release of Chocolate Doom 2.0.0 in December 2013.
===Chocolate Hexen===
 
 
 
===Chocolate Strife===
 
  
===Chocolate Setup===
+
Since version 2.0.0, ''Chocolate Doom'' refers both to the umbrella project incorporating all the games and the Doom engine built from it directly. The names ''Chocolate Heretic'', ''Chocolate Hexen'', and ''Chocolate Strife'' refer to the specific engines for those games from this same code. Each of these four engines constitute separate source ports in their own right.
  
 
== Extra features ==
 
== Extra features ==

Revision as of 22:04, 7 March 2015

Chocolate Doom
70px
Chocolate-doom-windows.png

Chocolate Doom running in Windows at 640x480 via aspect ratio correction.

Codebase Linux Doom 1.10
Developer(s) Fraggle
Latest release 3.0.1 (2020-06-25, 3 years ago)
Development status Active
Written in C
Target Platform Cross-Platform
License GNU General Public License v2+
Website chocolate-doom.org
Source Repository

(Git)

GitHub
IRC Channel OFTC #chocolate-doom
Chocolate Doom is a 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 engine.

In particular, Chocolate Doom aims for:

The port deliberately maintains the original static limits in order to be useful to level designers. As most ports fix engine 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.

Game support

Chocolate Doom, as its name implies, was originally written with the intent to run the classic Doom series, and a few other games such as Chex Quest and Hacx that are only marginally different from Doom in game mechanics. This focus persisted through the entire 0.x and 1.x line of releases.

Support for Heretic and Hexen began shortly after the Raven source code licensing situation was cleared in 2008, with the code for those games being relicensed under the GNU GPLv2. The development was done on a revision control branch named raven-branch, in parallel with the Doom-only code. Part of the goal of incorporating the code included restructuring Chocolate Doom so that it would have generic source code files in common with all the games, and more game-specific source code files in addition.

In early 2010, James Haley and Samuel Villarreal started to reverse-engineer Strife, working off of the Doom code and analyzing the game's internal logical in a disassembler called IDA Pro, since the source code for Strife was presumed lost. This development was done in a revision control branch called strife-branch, developed in parallel with the Doom-only code and raven-branch at the same time.

File:Choco-strife02.png
Chocolate Doom running Strife.

Eventually, as both the Raven and Strife code matured, raven-branch and strife-branch were merged into a v2-branch in 2012, stabilizing and preparing the source code for suitability in playing and maintaining all four games at once, finally culminating in the release of Chocolate Doom 2.0.0 in December 2013.

Since version 2.0.0, Chocolate Doom refers both to the umbrella project incorporating all the games and the Doom engine built from it directly. The names Chocolate Heretic, Chocolate Hexen, and Chocolate Strife refer to the specific engines for those games from this same code. Each of these four engines constitute separate source ports in their own right.

Extra features

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.
  • Support for gamepads - Chocolate Doom includes a number of configurations for a lot of common gamepad types. This makes it easier to play on a television set, game console, or portable device.

External links

See also

Source code genealogy
Based on Name Base for
Linux Doom 1.10 Chocolate Doom Chocorenderlimits
Heretic 1.3 Crispy Doom
Hexen 1.2 Doom Retro
Strife 1.31 Strawberry Doom
Strife: Veteran Edition