• Please review our updated Terms and Rules here

Wolfenstein 3D CGA edition

jhhoward

Member
Joined
Sep 1, 2019
Messages
39
demo.gif

I have converted Wolfenstein 3D to play in CGA! Source and binaries are available on the Github page here:

Here is an overview of features I have added to this version
  • Mode 5 black/red/cyan/white palette version (selected by default)
  • Mode 4 black/magenta/cyan/white palette (selected by using the command line option 'classic')
  • Composite CGA mode (selected by using the command line option 'composite')
  • Experimental Tandy 160x200 16 colour mode (use 'tandy' on the command line. Not tested on real hardware yet!)
  • Inverse monochrome mode for LCD displays on palmtops and laptops (use 'lcd' command line option)
  • Widescreen mode for wide aspect ratio 640x200 LCD panels like those found on DOS palmtops like the HP 200LX. (use the 'wide' command line option)
  • Timedemo benchmark - use the 'timedemo' command line option to play the demo as fast as possible and have the average frame rate reported.
  • 8088 compatible so no 286 required!
 
That's some juicy dithering. What kind of framerate do you get on a 5150?
 
Here is some footage of it running on a Tandy 1000HX that RetroTech Chris took:

I haven't tried on a 5150 as I don't have access to one. I did ask someone with a setup with a 9.55MHz 8088, IBM CGA (new) and SoundBlaster to run the timedemo and with the largest viewport size it averaged 3.1 FPS. Putting the viewport size down a few notches helps to make it more playable on these systems!

If someone has a 5150 and wants to try it out, I'd love to hear how it plays! :)
 
Awesome, much better than what I made years ago.

"Okay, now for the CGA version . . ." YES!

wolf3dquote.png

I tried to find that quote in this CGA shareware version, but F1 is now a boss key and when I press Esc the screen gets corrupted.
 
Oops I forgot to compile in the 'Read This!' part when building the shareware version. There is a #define that needs to be changed at compile time to make this work. Love the quote from Adrian Carmack on a CGA version :biggrin:
 
Certainly the CGA deserves more love :biggrin:. I don't blame Carmack, after all he did an incredible job with the CGA on the Commander Keen saga. It would be great he knew about this port.
 
Many thanks to you, @jhhoward! Something I have previously tried (and failed to do) is now possible.
IMG_0001.JPG

On another note, here's a tip for anyone like myself running this on a machine where every bit of HDD space counts: if you plan on only running the game in regular 4 color CGA mode, and don't plan on using any of the other video modes, then keep only these files in your WOLF3D directory. This reduces the size of the game to under 5 MB (even less space than the shareware version, interestingly!):
  • AUDIOHED.WL6
  • AUDIOT.WL6
  • CGADICT.WL6
  • CGAGRAPH.WL6
  • CGAHEAD.WL6
  • COMGRAPH.WL6
  • COMHEAD.WL6
  • CONFIG.WL6
  • CSWAP.WL6
  • GAMEMAPS.WL6
  • LCDGRAPH.WL6
  • LCDHEAD.WL6
  • MAPHEAD.WL6
  • WOLF3DC.EXE
  • WOLFPAL.PNG
  • XSWAP.WL6
 
I'm glad to have fulfilled your dream to play Wolfenstein 3D on your old Toshiba! I actually remember coming across your post before I started this endeavour as I googled 'Wolfenstein CGA' to see if it had already been done, and your post cropped up. Thanks for sharing a photo, always good to see it running on real hardware, and it looks great on the orange gas plasma screen.
I need to update the Github README file, but there are different asset files for the different CGA modes. If you're only using one mode (which most people will be) then you only need one set of assets.
CGAHEAD, CGAGRAPH, CSWAP - CGA RGB mode
COMHEAD, COMGRAPH, XSWAP - Composite mode
LCDHEAD, LCDGRAPH, LSWAP - LCD inverse mono mode
TGAHEAD, TGAGRAPH, TSWAP - Tandy mode
You'll need CGADICT with any configuration though. You'll of course still need the audio and game map files too. WOLFPAL.PNG is only needed when running the cgaify converter program.

@Frenkel That is an interesting anecdote, thanks for sharing. I'll have to dig around in the Blake Stone source code and see how it changes things up. A couple of things that first spring to mind:
- Blake Stone, DOOM and ROTT all have distance based lighting, which Wolf3D does not. Perhaps it was referring to how the lighting effect was coded.
- For CPUs with instruction caches, the Wolf3D method of generating big unrolled loops can actually be slower than a tight loop as it causes more cache misses. I think this is mentioned in the Wolfenstein 3D Black Book.
 
Thats really impressive work. I remember installing this on my girlfriends old pc back in high school.
 
demo.gif

I have converted Wolfenstein 3D to play in CGA! Source and binaries are available on the Github page here:

Here is an overview of features I have added to this version
  • Mode 5 black/red/cyan/white palette version (selected by default)
  • Mode 4 black/magenta/cyan/white palette (selected by using the command line option 'classic')
  • Composite CGA mode (selected by using the command line option 'composite')
  • Experimental Tandy 160x200 16 colour mode (use 'tandy' on the command line. Not tested on real hardware yet!)
  • Inverse monochrome mode for LCD displays on palmtops and laptops (use 'lcd' command line option)
  • Widescreen mode for wide aspect ratio 640x200 LCD panels like those found on DOS palmtops like the HP 200LX. (use the 'wide' command line option)
  • Timedemo benchmark - use the 'timedemo' command line option to play the demo as fast as possible and have the average frame rate reported.
  • 8088 compatible so no 286 required!
Any plans to port this to Hercules? This was an amazing port but if you are already this far.. why not go all the way?
 
Yes I've been working on a Hercules mode. I've been experimenting with 720x348 letterboxed, and also 640x400 (which is what FastDoom uses). I don't have real hardware to test on but I've had some people testing for me. I'll post a new release once it's confirmed to be working and stable.
 
Here's my attempt on a real 5150 w/ CGA.. Stock 8088 CPU.. I have an 8087 installed but I'm sure Wolf3D doesn't utilize it..

Framerate: 1.8 FPS 😭

But hey, it's pretty cool that it runs at all!

 
Hmm is it any better with the screen size reduced ("change view")?
 
Hmm is it any better with the screen size reduced ("change view")?

Yeah it makes a difference, I'd say it brings the fps up to maybe the 3-4 range.. But then of course it's hard to make out anything and I'm basically playing the game from memory :D
 
Back
Top