Home | Graphics | Documentation | Internals
Contributions | Downloads | Forum

Project Page for Dungeons of Daggorath PC-Port


Description: This project is a port of the classic TRS-80 Color Computer game Dungeons of Daggorath, which was produced at DynaMicro in 1982 by Douglas Morgan, who still holds the copyright thereto. Several years ago, the author released the 6809 source code to anyone who was willing to pay for photocopies and postage, primarily to encourage development among the retrocomputing community. As a fan of the game, and someone who always wanted to understand its internals, I jumped at the opportunity and secured a copy for myself. I spent the next several months porting the code to C/C++. Many other fans of the game participated in lively discussions about the port and possible future enhancements. Several of these contributed to the project in various ways, including a few who dove in a wrote various parts of the current code base. There have probably been around 1,000 people who have downloaded and played the port. Even today, I still get random emails from people who have just stumbled upon the project and wrote to tell me how much they enjoyed reliving this part of their youth.

Status Update: This project has been on semi-permanent hiatus for the past few years. I do hope to return to it at some point in the future when I have more free time. The next large task I'd like to do is essentially to implement a massive refactoring operation. This would likely end up being a complete rewrite from scratch, but it would better facilitate other programmers being able to understand the code base and to produce further enhancements. The goal would be to move the C++ code from its present state (of very closely mirroring the 6809 assembler code) toward a more modern, object-oriented architecture. I'd also like to reevaluate the low-level libraries being used, and also finally to make a real port of the sound code, rather than relying on audio clips produced from emulators.


Recent Developments:

May 6, 2009: In the infinite wisdom of AOL, the latest Daggorath installer (version 0.5) which sputnik had on his website has been sent to the knacker. Here's a copy of his page (DoD.htm), with a link to the installer which he graciously sent to me to post here.

September 12, 2006: One of the truly great men in Daggorath fandom, and CoCo retrocomputing, has a new website. Please everyone go visit Tim Lindner at his blog. Someone else has the DOT-COM version of this URL, so be sure you're on the authentic Tim Lindner site when you go there!

May 4, 2006: Sputnik has uncovered an error in the port of the ATTACK function (the one which calculates whether an attempted attack strikes the target or not). He's fixed it in his update, which you can download from his website. Basically, I had the wrong variable in one line, which had the effect of making it almost impossible to miss. He noticed the discrepancy when playing the original, where one misses much more often, especially when weak. With his help, I've acquired a better understanding of the ATTACK function, and I've added a chart to the Internals Page showing the actual probability curve.

May 1, 2006: Greetings, Daggorath Fans! A new set of enhancements has been developed by Sputnik. This is the one we've all been waiting for -- RANDOM MAZES! He's also added a SHIELD FIX, to make the LEATHER & BRONZE SHIELDs protect from physical damage instead of magical damage. This one is more subtle, but I suspect it might change the game play significantly. There are several other enhancements, but you'll have to review the readme file to see them (like a killer one which makes the creatures not pick anything up! -- sounds scary to me, but fun). See the Contributions page to download the new executable and the new readme file for instructions on how to use it. If I can get Josh Albright (or anyone else) to update the installer with the new executable, then I'll put a Version 0.5 on the downloads page. You might want to download the latest versions of SDL.dll and SDL_Mixer.dll, as a few incompatibilities are suspected between the older DLL's and the new enhancements.

September 26, 2005: A nice Excel "power chart" calculator was just submitted by Olivier Arsenault, and is posted on the Contributions page. Please check it out, and post comments in the forum. Many thanks for this nifty Daggorath accessory.

January 2, 2004: Happy New Year to all Daggorath fans! The project has pretty much ground to halt, due mainly to my busy schedule. Unfortunately, I don't foresee any change in the near future, so I will probably not do much work on DoD this year. (But who knows!) If anyone else would like to take the reins of the project, I'd be more than happy to help in whatever way I can. If no one wants to, then I will probably get back to it eventually. Best wishes to all for a victorious new year!

October 3, 2003: Aaron Oliver (aka: Mr. Reaper) has sent an updated version of his game instructions, with some corrections.

October 3, 2003: Version 0.4 is available for download, thanks to Josh Albright. He has implemented an in-game menu system, and updated a lot of configuration issues. Excellent work, Josh! Also, he has provided a very nice looking installer program. He has also put together a Linux port with all of his upgrades. Please try this out, and post feedback in the forum. [Stuart Cunningham sent me a Linux port of Version 0.3.1 about one day before Josh sent his. If you'd like to look at Stuart's, I'm sure he'd be grateful also. I will try to find time to consolidate all the different strands of development in the near future. I know I say that all the time, but this time I'm serious. :)]

May 20, 2003: I've updated the Graphics page, with Vision Scroll images of the five levels, rather than the crappy text maps I had there before.

May 17, 2003: Wow, that was quick! Version 0.3.1 has been posted for download. I inadvertently did the last build in debug mode, which made it go out and look for a debug version of a DLL that most people don't have. This one should solve that problem. Also, I've added an icon which Ken Thompson has graciously supplied.

May 16, 2003: Version 0.3 has been posted for download. Many thanks to Dan Gendreau for doing these enhancements!!!

May 14, 2003: Great news! Dan Gendreau has added several enhancements to the port, including hi-res and vector graphics, stereo sound, and some "cheat" options. We're working together right now to get the next revision posted. I think you will all be impressed with his work. I hope to get it posted by this weekend, in time for the CoCo-Fest in Chicago.

April 4, 2003: Just letting everyone know that I haven't abandoned the project. I've just been way too busy lately to work on it. In a couple more months, however, I hope to have more free time, and plan to carry it forward some more. Sorry about the delay. There is one bit of good news: this project page is finally being indexed by Google. It only took them about a year! I think what finally did the trick was that someone on one of the CoCo pages added a couple links to this page, which added that extra little bit of interconnectivity to push us over Google's minimum level of popularity. I don't have the referring page on hand right now, but I'll try to get it. If anyone knows off hand, please post the info to the forum.

November 19, 2002: Tim Lindner created an AVI movie (6.3MB) of the Daggorath in-game demo from his CoCo3.

November 14, 2002: I've posted Version 0.2.2, which will only interest people who use Dvorak keyboards. Nothing else hase changed.

November 13, 2002: I've posted Daggorath PC-Port Version 0.2.1, which has a buf fix for the turning animation, as well as some other improvements.

November 12, 2002: I've restructured these pages. The Design page has become the Documentation page, and I've added a Change Log, and a Downloads page, where project builds will be placed. I've also updated some of the descriptive sections on this page and made major additions to the Task List below.

November 9, 2002: Here it is: Daggorath PC-Port Version 0.2. I've started a new thread in the forum for feedback. Enjoy!

November 7, 2002: The sounds have been added -- finally! Version 0.2 will be posted shortly.

November 4, 2002: I've added a section to the internals page on Creature Speed.

October 31, 2002: Happy Halloween! Great news! Jim Thomas, one of the original Daggorath programmers has found us! He has posted several informative comments in the Developers forum. Let's hope this is a good omen. With his contributions, maybe this project will actually see the light of day.

September 12, 2002: The first pre-release testing version is ready! All feedback, both good and bad, is very much desired. Please post all comments in the forum.

September 10, 2002: I've finally posted an Internals Page. I hope you enjoy it. Please post responses in the forum.

August 26, 2002: The port is getting very close to having all the core game functionality complete. There will very soon be another pre-release testing version. See paragraph below in the Task List section. I'm also putting together a page of game internals, which I hope to post shortly.

August 6, 2002: I've linked to some images from Spence's archives of the source code listing and of Spence's CoCo 2 (or is it 3) and DoD cartridge.

July 16, 2002: I've posted some level maps in response to a request on the forum.

July 15, 2002: I'm about half-way through implementing the player commands (see Task List below). I've also implemented the data compression of the original (see Data Compression paragraph below).

July 8, 2002: Just posting this here to let you know I'm still working on the project. I got really busy on other tasks for a month or so, but I'm progressing into the actual game play routines now. The command parser is essentially done, so now all the commands are being implemented one by one.

May 22, 2002: The walk-through demo is ready. Any and all feedback is greatly appreciated. Please post comments in the forum.

April 29, 2002: Tim finished creating the WAV files from the emulator: Demo Audio & Sound Effects.

April 28, 2002: Tim Lindner, co-maintainer of the CoCo MESS driver, has begun working on generating sounds from MESS's CoCo DAC port !!!


Objective of Project:

The main objective is complete: Port Dungeons of Daggorath to a modern language to run on current hardware. We want it to eventually run on lots of platforms (and already have a Mac version compiling, and have begun talking about Linux). However, the Windows platform is the main target (since, for better or worse, it is ubiquitous). Nonetheless, the code is purposely avoiding the use of Windows-specific API calls, so that it will the more easily run on other systems.

Target Language:

C/C++: The natural structure of the game lends itself very much to object-oriented design and programming, but at present, the code is really a mixture of C and C++, making very little use of O-O design. Originally it was thought that using C++ would help make a future Java version (like possibly a web applet) much easier to generate. I believe this is true, and have begun experimenting in that direction. Although at the moment, the code base does not exhibit a great deal of object-oriented design (due to its close tie with the 6809 source), I hope to evolve it in the O-O direction.

Development:

The C++ code is using SDL and OpenGL, two platform independent libraries, to handle all operating system interfaces. By using these two in combination, the port is to a large degree platform-independent, and can itself be more easily ported to other platforms.

This port is using the same text compression algorithm used in the original 6809 code. The main intent originally was to save space to fit on the 8K cartridge. This isn't an issue for us now, but there is another benefit that we gain. All the strings are compressed, so it makes it much more difficult for someone to hack into the binary and discover the game's secrets. And in fact, even reading through the source code doesn't reveal the ring incantations, because they only exist there in compressed form. There may actually be people who will play this version who have never played the original, so I thought this was important.

Since the release of version 0.2, which includes the C++ source code, I have begun some documentation of the code. I haven't spent much time on creating design documents, but you can look at a basic list of the classes/objects being used, along with some explanatory text. This will grow with each release (as time permits).

Project Participants:

This project is open to all who are interested in helping. In order to port actual code from the original 6809 source, you will need to purchase a copy of the source listing from Douglas Morgan. He basically charges for photocopying and shipping, and can be contacted through Louis Jordan.

There will be other types of coding that will not require having a copy of the source, and these will be open to anyone willing to write the code. Other types of tasks will be available to people who are not programmers. No single person is in charge of the project, but some priority should be given to those who have received a license from the author (which you will get if you purchase the source code from him) to replicate, emulate, or translate the source. Everyone should feel free to offer comments and suggestions for the project and/or this web page. This can be done in the Daggorath Developers Forum.

If anyone is interested in helping to code, please contact me or post to the forum.

Task List:

Tasks yet to do:

Comments and Suggestions:

Again, please post comments and suggestions in the Daggorath Developers Forum.


August 25, 2011
Richard Hunerlach (Personal Page)
(Animated GIFs created by Bruce)