CDoom (mobile)


 * This article is about the mobile phone Doom port. For other uses, see CDoom (disambiguation).



CDoom (short for Communicator Doom or Crystal Doom) is an open source mobile phone port of Doom published in 11th September 2001. It is the first Doom port for Symbian OS devices ever, and is intended to be used on Symbian OS v6.0, Series 80 v1.0, which includes the phone models Nokia 9210, 9210i and 9210c Communicators. CDoom's coding was done by Hannu Viitala and Markus Mertama who based it on Sam Lantinga's SDL Doom. Hannu had to port SDL (Simple DirectMedia Layer) first onto Symbian OS v6.0 before he could start porting CDoom.

Technical data
CDoom takes advantage of the whole Nokia 9210's big widescreen because its standard screen mode is 640 x 200 pixels, which is the resolution of the mobile phone's screen. Unfortunately the device's screen access or processing power forms a bottleneck which reduces the frame rate all the way down to about 3 fps. Normally it's quite high though; while walking forward the FPS count is relatively decent, only turning makes it lower, probably because the program has to draw and calculate a lot of new area to show.

This port uses almost all of the operating memory (RAM) of the target device because it needs about 3,3 MB to run. Nokia 9210 only has 4 MB free after a reboot, so the user has to close all running applications prior to playing this game.

Since CDoom readily hogs almost all of the operating memory, it doesn't use sound. Neither does it have the melting screen effect which is shown when the level is starting. These properties would elevate the need of RAM too high.

This port can't be used with DeHacked files or custom WADs. The only WADs allowed are DOOM1.WAD, DOOM.WAD and DOOM2.WAD. The support for The Plutonia Experiment and TNT: Evilution are commented out in the source code.

Gameplay
Due to Nokia 9210's relatively bad directional pad (see the image above), the gameplay isn't a good experience. The d-pad is not designed for playing games because the phone is a business device. When pressing up (move forward in the game), the d-pad doesn't hold its position but rocks from left to right easily, making the player run in circles in the game.

The Nokia 9210's keypad is similar to PC's, so all of the buttons do the same thing on the phone as they would on PC. CTRL shoots, ALT strafes etc.

Controversy
Only a week after CDoom was published, a British software corporation WildPalm released another port of Doom onto Symbian OS v6.0, Doom 9210, which is of closed source. According to Hannu Viitala, Doom 9210 uses an identical launcher system as CDoom. If WildPalm had been using CDoom as a base of their program, they would've violated the license.

Modification
Since CDoom is of open source, it can be modified in any way the user likes. The project compiles well onto the target device (in Symbian OS programming terms it's ARMI) and the emulator (WINS). If the user wants to test CDoom on the emulator, he has to modify the doomwaddir variable in the file d_main.c so the program can look for the WAD file in the right place.

CDoom's closed source Launcher application which launches the cdoom.exe file, can also be modified on the graphics level: the file launcher.mbm in the program's home directory is a black & white bitmap which contains the pixels which are drawn in flames in the Launcher application. This file can be modified to show any image, as long as it's black and white and has the resolution of 400 x 200 max. The user has to be careful not to make a image with white pixels too dense because the application's flame will ruin it pretty well. Thus it is good to take out some white pixels with a black paint brush.

With a little work CDoom can be made to run on 320 x 200 with duplicated X pixels. This makes the game faster although it looks worse. Doom 9210 uses this method.