Wolfenstein 3D for CGA and Tandy

On Friday, January 20, 2021, a new version of Wolfenstein 3D was released for really old hardware. Indie developer James Howard revised the 30-year-old id Software title to function on CGA and Tandy graphics and an 8088 CPU. So now Wolfenstein 3D joins the ranks of about 900 known titles to use Tandy graphics and/or sound.

Bringing Wolfenstein 3D to CGA

Wolfenstein 3D on Tandy 1000
Hobbyist James H. Howard ported Wolfenstein 3D to the Tandy 1000 and other XT-class PCs with CGA graphics, so you can get your low fidelity 3D gaming on.

The new revision uses the standard 4 color CGA mode, a hacked 4 color mode with red instead of magenta, NTSC composite mode with artifact color to get 16 colors, and 160×200 Tandy mode with 16 colors. It also supports a monochrome mode.

The original required at least a 286 processor and really ran better if you had a 386. But CGA was much more common on XT-class machines, so the developer, James H. Howard, revised the code to work on an 8088 CPU too. I didn’t say “as well,” because not going to work as well on sub-286 processors. It’s going to be slower. But the wonder is that it works at all, and I have to applaud him for trying.

How’s it run on the Tandy 1000?

Howard warned that he didn’t have real Tandy hardware to test on, only emulation. But hobbyists tried it out within hours, if not minutes, reporting it mostly worked on various Tandy 1000s. I will note it doesn’t use Tandy sound, only graphics. But that’s probably just as well. When I ran the benchmark, I got 3.6 fps on average on my 1000EX with a V20 CPU. Shrinking the screen to about 60% increased it to 5.8 fps. Having the additional overhead of sound wouldn’t have helped the framerate.

And for whatever it’s worth, I was bad at the original and I’m no better at this one. I guess this time I can blame the framerate? But even though I wasn’t a big fan of the original, I really wanted to see how it ran with only 7.16 MHz and less than 624K of RAM to work with.

And in 1990 we totally would have played this, don’t get me wrong. Perhaps future optimizations can make it more practical. It will be interesting to see what the retro community comes up with.

I don’t have a 1000TX to test it on but I would expect it to be more playable on the 286-based Tandy 1000s, though probably still not ideal. I have seen one video of it running on a 1000TL and it seemed to be approaching 15fps though he didn’t run a benchmark.

The original was a whole lot better at a minimum of 16 MHz and I argue it was the killer app for 386 PCs for home use. But a large part of the fun of retro computing is seeing just how far you could push the limits of their hardware. And this game does a nice job of pushing whatever CGA-class display you have to get better results than we generally associated with CGA in the 1980s.

If nothing else, we have a fun new benchmarking tool for low-end retro PCs. To benchmark, run the command wolf3dc timedemo, adding other options to configure the video mode you want.

How to play Wolfenstein 3D on your XT or 1000

You can download the build from James Howard’s Github page. You can play a direct port of the shareware release as-is. Download the 1.87MB build, transfer it to your XT, and play the first level all you want.

If you want to play the full game, download the registered version, which is just 352K in size. That’s because you’ll need to own a copy of version 1.4, then use the included cgaify.exe tool on a Windows system to convert the sprites and textures from VGA to CGA. Then copy it all to your XT.

And at this point, you’re either getting ready to type a comment asking what’s the point, or you’ve already raced off to the Github page to download it. There’s not much in between.

If you found this post informative or helpful, please share it!