Capstone source archive

I came across this fun page, which has the source code for a variety of games from the now defunct Capstone Software company.

For a while they licensed the build engine to pump out a few games, namely:

Pretty cool!

Corridor 8 was never finished so this is more so in the Alpha stage using many DooM assets.

I haven’t had time to try them out, but I thought I’d share the links as it were.

OpenNT – Windows NT 4.5

(This is a guest post from Tenox)

Just stumbled across this: someone has forked Windows NT 4.0 and created an open source version of it. But wait, forked what? Windows source code doesn’t live on Github. Is it ReactOS? No! Upon some digging, it was apparently born from the leaked source code of NT4.0, some W2K bits and 2003 WRK.

Enter NT version 4.5:

NT45Test-2015-04-27-18-20-37More screenshots here:

The main project site:

Looking at activity the project seems to be alive and well. There is some background information and discussion going on BetaArchive for those interested.

I wonder what Microsoft has to say about this 🙂

So yeah, sourceforge is still down

sourceforge down

Kind of annoying when I wanted to expand something with mingw, and all their download mirrors are… sourceforge.  And since I finally got around to putting Cockatrice on git but where did I put it? sourceforge.

Seems everyone has a good outage from time to time.  What to do?  Trust more of the cloud?

On Saturday 11AM BST the pages and downloads are back online!

Project pages and downloads back online!

Project pages and downloads back online!

re-vamping source code cvs depot

I think it is kind of funny in a way I had set up years ago, but moved hosts a few times, and it broke all the CGI functionality.  But all the static pages still worked, so when googling around for internal stuff related to Quake, I would actually find my old site in the top five.

#5 for Sys_FileOpenWrite

#5 for Sys_FileOpenWrite

So, I thought I’d take some time, and get it working again.  I use two programs CVSweb, and src2html.

CVSweb let’s you easily explore multiple revisions, do comparisons between the versions, and just look all around great. I keep a copy of the following:

  • Net/2 This also includes Net/2 derived OS’s 386BSD 0.0 and 0.1, and NetBSD 0.8/0.9
  • DOOM Includes, Heritic, and Hexen
  • truecrypt, the popular disk encryption tool
  • Synchronet the BBS software for MS-DOS, OS/2, Win32 and Linux/BSD
  • Quake, the popular game from iD.
  • QuakeWorld, the multiplayer version of Quake
  • Quake II, the successor to Quake.

I also like how the src2html program parses out the code so you can search for symbols in the code.  However src2html works with static versions of the code, not CVS, so I selected various programs to be available, some from above, and:

So it may not be worth much to most users, but when looking to see how various code works, it’s really useful.  Of course none of this compares to Visual Studio’s search database, but google has to learn from somewhere.

I should also point out that upgrading perl as part of a move from Debian 7 to Debian 8 broke CVS web.  Thankfully the NetBSD folk had a simple 2 line fix!

— cvsweb.orig 2013-12-24 09:58:09.333520125 -0500
+++ cvsweb 2013-12-24 09:58:50.222171067 -0500
@@ -1194,7 +1194,7 @@

General options

– for my $v qw(hidecvsroot hidenonreadable) {
+ for my $v (qw(hidecvsroot hidenonreadable)) {
$v, $input{$v} || 0);
@@ -2953,7 +2953,7 @@
print ”

print ‘‘;
– if (defined @mytz) {
+ if (@mytz) {
my ($est) = $mytz[(localtime($date{$_}))[8]];
print scalar localtime($date{$_}), ” $est
} else {

So it’s working again.

I saw this git/Unix archive mentioned on TUHS

And I thought that I should broadcast it to the world. Diomidis Spinellis has gone through the hard work of going through all the old legacy Unix source code, making it easily available here.  Even more fun it to just find somewhere with a couple of GB free, and clone it!

git clone

With that done, you can then ‘check’ out the repo from any of the major releases and get the source!  For example to see 4.4 BSD, you would type in:

cd unix-history-repo
git checkout BSD-4_4

Pretty cool!

And it goes up to FreeBSD 10.0.1  Release tags are:

  • Epoch
  • Research-V1
  • Research-V3
  • Research-V4
  • Research-V5
  • Research-V6
  • BSD-1
  • BSD-2
  • Research-V7
  • Bell-32V
  • BSD-3
  • BSD-4
  • BSD-4_1_snap
  • BSD-4_1c_2
  • BSD-4_2
  • BSD-4_3
  • BSD-4_3_Reno
  • BSD-4_3_Net_1
  • BSD-4_3_Tahoe
  • BSD-4_3_Net_2
  • BSD-4_4
  • BSD-4_4_Lite1
  • BSD-4_4_Lite2
  • 386BSD-0.0
  • 386BSD-0.1
  • FreeBSD-release/1.0, 1.1, 1.1.5
  • FreeBSD-release/2.0 2.0.5, 2.1.0, 2.1.5, 2.1.6,, 2.1.7, 2.2.0, 2.2.1, 2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8
  • FreeBSD-release/3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0, 3.5.0
  • FreeBSD-release/4.0.0 4.1.0, 4.1.1, 4.2.0, 4.3.0, 4.4.0, 4.5.0, 4.6.0, 4.6.1, 4.6.2, 4.7.0, 4.8.0, 4.9.0, 4.10.0, 4.11.0
  • FreeBSD-release/5.0.0 5.1.0, 5.2.0, 5.2.1, 5.3.0, 5.4.0, 5.5.0
  • FreeBSD-release/6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
  • FreeBSD-release/7.0.0, 7.1.0, 7.2.0, 7.3.0, 7.4.0
  • FreeBSD-release/8.0.0, 8.1.0, 8.2.0, 8.3.0, 8.4.0
  • FreeBSD-release/9.0.0, 9.1.0, 9.2.0
  • FreeBSD-release/10.0.0, 10.1.0

Coherent sources released under a 3-clause BSD license


Print ad for Coherent

For those of you who’ve been living under a rock, or just not that familiar with what Coherent is, it’s a clean room re-implementation of version 7 Unix. What is unique about Coherent is that AT&T sent a team, which included Dennis Ritchie to evaluate the source to make sure that they hadn’t stolen Unix, and they concluded:

“that looking at various corners I couldn’t find anything that was copied.”

So Coherent was free to continue to sell their discount Unix like OS for the bargain price of $99 USD. I had plans on buying a copy as the older versions even supported the 8086, and 80286 however by the time I finally got enough RAM and disk space to make the purchase worth while, Linux was freely available. I believe that Coherent was the first OS to be killed by the Linux juggernaut, followed by SCO Xenix.

So it’s a little late to the party, open sourcing may have helped back in the early 1990’s although it’d seem like an utterly crazy move at the time.
Better late than never, this includes source dumps, and some RCS data, along with random tgz’s and a binary distribution of version 4. Without any doubt this will either help emulators better emulate the machine state Coherent expects, or perhaps fixing Coherent to run on more modern machines.

Coherent was also famous for it’s large, and well documented manual. Luckily the sources to the manual are also available.

So without further ado, here is the pages with the sources to coherent.

On final note of interest is that the Mark Williams Company was founded by Robert Swartz, who’s son Aaron was quite influential until the time of his death.

The complete archive for DOOM for the 3DO is on GitHub!

Link to the archive is here.

It’s a sizable download, 287MB, the majority being the ‘movies’ and ‘music’ directory.


The complete archive for DOOM for the 3DO
Yes, this is the infamous port of DOOM for the 3DO. Firstly, this was the product of ten intense weeks of work due to the fact that I was misled about the state of the port when I was offered the project. I was told that there was a version in existance with new levels, weapons and features and it only needed “polishing” and optimization to hit the market. After numerous requests for this version, I found out that there was no such thing and that Art Data Interactive was under the false impression that all anyone needed to do to port a game from one platform to another was just to compile the code and adding weapons was as simple as dropping in the art.

Uh… No…

My friends at 3DO were begging for DOOM to be on their platform and with christmas 1995 coming soon (I took this job in August of 1995, with a mid October golden master date), I literally lived in my office, only taking breaks to take a nap and got this port completed.

Shortcuts made…
I had no time to port the music driver, so I had a band that Art Data hired to redo the music so all I needed to do is call a streaming audio function to play the music. This turned out to be an excellent call because while the graphics were lackluster, the music got rave reviews.

3DO’s operating system was designed around running an app and purging, there was numerous bugs caused by memory leaks. So when I wanted to load the Logicware and id software logos on startup, the 3DO leaked the memory so to solve that, I created two apps, one to draw the 3do logo and the other to show the logicware logo. After they executed, they were purged from memory and the main game could run without loss of memory.

There was a Electronic Arts logo movie in the data, because there was a time that EA was going to be distributing the game, however the deal fell through.

The verticle walls were drawn with strips using the cell engine. However, the cell engine can’t handle 3D perspective so the floors and ceilings were drawn with software rendering. I simply ran out of time to translate the code to use the cell engine because the implementation I had caused texture tearing.

I had to write my own string.h ANSI C library because the one 3DO supplied with their compiler had bugs! string.h??? How can you screw that up!?!?! They did! I spent a day writing all of the functions I needed in ARM 6 assembly.

This game used Burgerlib 2. My first “C” version of Burgerlib because Burgerlib was originally written in 65816 for the SNES and the Apple IIgs. If you check out Burgerlib 5 (The current version, also on github), you’d notice that some code is still in use.

I hope that everyone who looks at this code, learns something from it, and I’d be happy to answer questions about the hell I went through to make this game. I only wished I had more time to actually polish this back in 1995 so instead of being the worst port of DOOM, it would have been the best one.

And one more thing…
The intellectual property of DOOM is the exclusive property of ZeniMax. No transfer of the intellectual property of DOOM or any transfer of the ownership of the sounds, art or other game assets are given nor implied. If anyone wishes to release a version of DOOM 3DO commercially, contact ZeniMax for a license.

The source code… Go for it.

Rebecca Ann Heineman

Olde Skuul

Seattle, WA

Shoebill now has working Ethernet support!

Great news!  The excellent A/UX capable emulator Shoebill, now has working Ethernet support!  The sad news is that it only supports the TUN/TAP interface.  So Windows users are kind of left out in the fun.

Shoebill + Ethernet

Shoebill + Ethernet

Except, I’ve been here before with SIMH ages ago.  So I dusted off my source code, and injected it into Shoebill.  The first issue I had was that SLiRP was rejecting all the inputted frames, because of invalid frame length.  Even more weird is that ARP worked, and I could see the and virtual IP’s but TCP and UDP outbound wouldn’t work at all.

It took me longer than it should have but although this code worked great with GCC 2.7 and 3.0, 4.x breaks it.  And it’s the same reason why Shoebill originally didn’t work on Win32, the blasted packed structures!  So adding the ‘-mno-ms-bitfields’ flag to GCC is all it took, and now I could ping for about 5-7 pings until SLiRP would crash.  I tried all kinds of stuff trying to see if there was an issue with SLiRP, but I should have payed closer attention to the debugger, with all those threads flying around.  It turns out Shoebill was trying to read & write a the same time, which caused SLiRP to crash as it is not re-entrant.  I tried to place mutex’s on every SLiRP call but that ended up having SLiRP not process any packets.  Very strange.  I then reduced it to where I read the frame out of SLiRP and pass it to Shoebill, and where Shoebill write’s a frame out the SLiRP.  And much to my amazement I can run ‘worms’ just fine!

So after a minute of worming and pinging I called it ‘good enough’ and rebuilt a production binary, and packaged up my source code.

For anyone who want’s to play, my Win32 EXE is here, and the source code I am using is here.