A few years after id Software published Doom for PC, it's source code was published and soon Doom appeared to many other platforms and hardwares. This is C2Doom, a Doom port for Nokia S60 and S80 phones.
The C2Doom brings original Doom gaming experience to smart phones. It implements original episodes, graphics and music and besides of legendary single player experience, The C2Doom also includes traditional co-operative and deathmatch multiplayer gaming modes.
The C2Doom is based on SDL Doom by Sam Lantiga and a version developed from Doom for Nokia 9210, also called CDoom. SDL, Simple DirectMedia Layer is a cross-platform multimedia library that is also ported to S60 and S80 platforms.
The C2Doom for Nokia S60 and Nokia S80 phones offers same game playing elements that the original PC Doom. There are same episodes, maps, graphics and music than in PC version. As orginal version of Doom, also this version has has a multiplayer game - however this time implemented to be played over bluetooth. The Doom games has two separate elements: a game engine and a game data. The C2Doom is the engine and you need game data prior to play Doom.
The Doom game data, episodes, maps, graphics, music, SFXs and such are stored in the the WAD files, which are still property of Id Software. This Doom engine supports many different WAD files, very same files that you have with your PC version of Doom. The most accessible WAD is a shareware Doom 1 episode 1, that you may found from Id Software site.
1) You have to have a compatible S60 or S80 phone. Tested phones are Nokia models NGage, NGage QD, 6620, 9500, 9300, 7610, 6681, 6680, 6630, 6600 and 6260. However all S80 phones and S60 phones that have at least 16MB RAM, S60 1.2 or S60 2.x should work.
9210x, 7650 and 3650 are not supported.
2) Download either a S60 or S80 C2Doom installation packet and install it into your phone. You can copy installation packet into your phone and select file from there, or use PC suite application for installing. For further information, please refer your phone manual. After you have installed the Doom, a Doom application icon appears in the phone. The exact location depends on your phone model and decisions you might be done during installation process, but usually you can find it from application shell in S60 phone or from S80 Desk.
3) You have to have a WAD file. There are several WAD files, however the C2Doom engine is tested only with some official ones. You can find commercial WAD files from the CDROM drive if you own a purchased Doom game for PC. Id Software is still selling Doom, you can buy one, the WAD file that is delivered within game can be used also with S60 and S80 C2Doom.
4)Copy the WAD file into phone or memory card by using memory card reader, PC suite, IR file transfer, bluetooth or any other method you prefer. It can be stored anywhere in the phone; it can be in any file folder or in messaging folder, in Memory card or in internal memory. When you open C2Doom application, it browses trough your phone memory and locates WAD files. Once one is found a confirmation is asked if that WAD file is intented to be used. It is possible to have several WAD files in the phone and by let UI seek another WAD file user can select which one is used.The another WAD file can selected afterwards by choosing "Advanced" | "Reset WAD file" from Options menu. That, among other things are detailed in the Options. Now you can start running C2Doom by choosing "Single Player".
- Next Theme - Load a new background image for the UI application
- Parameters... - Open a C2Doom parameters dialog. The parameters are passed to C2Doom engine as such, and the syntax is same as in PC Doom command-line. Please refer your PC Doom documentation about the available commands and their syntax. All PC Doom commands are not necessarily implemented.
- Info... - View a short information text about S60 or S80 Doom
- Send... - View list of savegame entries for currently used WAD file (i.e. selected WAD file, see "Reset WAD file"). Selected savegame can be send to another phone as a message and loaded in another phone. The savegames can be loaded only if current game uses same WAD file. If user has multiple WAD files, then current WAD file might be changed before certain savegames can be sent or loaded.
- Advanced | Versions... - Open a versions dialog. The C2Doom consists of several files, this view just let you ensure what modules you are using if something seems to be not ok. A search of components may take a while
- Advanced | Reset WAD file - Repeat a WAD file search. If there are several WAD files stored in the phone, each WAD file is searched one by one and the search is proceed until a WAD file accepted or search is cancelled. A search may take a while.
- Advanced | Set Data path - Lets user define where savegames are stored. Let user to change a root folder where each WAD file has its own savegame folder. Since savegame files may have conflicting names, they are stored in automatically generated unique named folders.
- Advanced | Set Key mappings - Let user redefine key actions. A KeyMap Util dialog is opened. "New" creates a new mapping. Mapping is created pressing first a target key and then a source which functionality is copied. Displayed values are key scancodes.
The C2Doom supports multiplayer game with up to four players. The gaming modes are, as in original Doom, Co-operative and Deathmatch. In Co-operative mode players play together against monsters and in Deathmatch players are against each others and monsters. Each player must select a same game mode. After selection it is asked if player acts as a server or client: a first player selects to start a server, and then others connects as clients.
Note: It is important that all players have selected same WAD file and same multiplayer mode.
After server player decides that all players are joined in the game, selecting "Start" will engage the game. Clients may leave the game, but if server exits the game ends. Multiplayer game works over bluetooth wireless radio and therefore players cannot be more further that ten meters from each others, otherwise connection closes. If there are many other bluetooth connections nearby, that may affect errors to bluetooth transmission and connection can even cut off by accident.
Savegames do not work in multiplayer game.
Information: C2Doom modules
S80 and S60 C2Doom consists of several elements. The Doom engine, SDL library, EAudioLib, UI front-end and net game module and few other libraries. The C2Doom engine, SDL library and EAudiolib are linked to one monolithic binary (still named as CDoom.exe!). UI front-end and game module are in their own processes.
The C2Doom engine is the actual Doom port. The SDL doom is originally written in C and uses Symbian standard C library. However I have added modules that are written in C++ and uses Symbian native interfaces. The source code should be multiplatform, but I assume that wont compile anymore to other platfor due some missing "ifdefines", as I havent tested that. Multiplayer game, doom-loop (originally Doom works in busy loop, that is fine in DOS, but i tuned that a bit better behaving) and Midi/Mus audio stuff is mostly in C++.
There are adaptations of SDL library for S80 and S60 platforms which implements interfaces to display, keyboard and audio. SDL audio uses EAudiolib library for producing audio. EAudiolib has adopted implementation from ScummVM implementation. It implements AdLib emulation for Symbian OS that also Doom utilizes for playing songs. The actual Doom sound format is MUS, but Legacy Doom implemented a nice mus to midi converted. As all of those are Open Source and published under GPL license, The C2Doom engine, SDL library and EAudiolib source code are available at downloads section.
UI front-end is a S60 and S80 application that implements UI framework and thus let C2Doom behave well with other applications. The UI application has UI interface e.g. redefine key configuration and send save games to other phones. Please see more from instructions. The S60 and S80 C2Doom supports multiplaying in original Co-operative and Deathmatch modes. The net game module uses bluetooth wireless radio and allows multiplaying game with two, three or four players between other S60 or S80 phones.
C2Doom for S60 - Symbian installation file for S60 phones.
C2Doom for S80 -Symbian installation file for S80 phones.
C2Doom source - The S60 and S80 utilizes many Open Source implementations that are released under General Public Licence and therefore those modules are Open Source as well. The source release may not compile as such as I have my own compling enviroment and I have used some special tools and libraries. However with little effort you may have a lot of fun with the code.
More C2Doom source - Few missing headers and additional lib files.
File utils - Includes some text file utilities that I have used with Doom. It includes all-purpose text file reader, ini file reader and my very own regular-expression parser. These classes are written just for fun and there is no anykind of guaratee.
DPlay S60 - Doom music player for S60 phones.
DPlay S80 - Doom music player for S80 phones.
- Added limited support for S90.