Image Map Image Map
Results 1 to 7 of 7

Thread: Magenta's Maze

  1. #1

    Default Magenta's Maze

    I've spent November and the following months creating this new DOS game called Magenta's Maze. There is an announcement and download at; this is a redirection that will be a site of its own in about a month.

    This was a journey to learn rudimentary 3D graphics programming within the constraints of the C language and a Tandy-1000-era CGA platform. I was inspired by the work being done by members of this forum and happily received much assistance from you. Unfortunately the limits of time and aged hardware (dang floppy drives and their "read errors"!) did hold some of the potential from reaching fruition. Besides raw speed for example, I was late and sloppy in adding the embedded WAV file loader and so it runs horribly slow and crashes on my Tandy 1000 HX. Thus even though the game supports PWM audio, you can't use it in floppy-based / low-memory machines!

    And of course, deathshadow will likely be the first to point out that writing C code is a fool's errand when it comes to optimal code on the 8088. This is very true! However, this was one of the limitations I set for myself (for THIS project) and I was happy to complete the entire thing within a predetermined schedule.

    The results of my process are present for posterity in the source code which I have donated to the public domain. It does not include the WAV assets or pre-compiled binaries. I had an unhealthy bias towards the Microsoft C 5.10 compiler such that Watcom, Power C, and Turbo C will produce executables but they will not function correctly. If you have a DOS machine setup that can run "CL" then unzip to a directory and run "BUILD.BAT". Your resulting EXE will not have PWM effects unless you attach your own WAV files to the EXE (I did this with the COPY /B FILE+FILE syntax).

    Thank you all very much for participating in this forum, it is an invaluable resource that will not go unmentioned!

  2. #2


    Wow, you've been busy! That's seriously impressive - to make a complete game in such a short time, with a level of polish that even many commercial games in the early 80s didn't achieve. Well done!

    My one criticism (and it's a fairly minor one) is the speed. It's a bit sluggish in DOSBox at 3000 cycles, which is at the high end of what real CGA machines would have been capable of, and downright unplayable on a 4.77MHz 8088 machine. I think with a bit of time spent rewriting the most critical routines in assembler, it could be playable on an 8088 and zippy on a 286. Do you have any interest in optimizing it? If not, I may have a go (but not for a while - I've got a lot of other projects on the go at the moment).

  3. #3


    Many thanks and yes, I am indeed working on an optimized version!

    In the fervor of this project I purchased and now own two full Tandy 1000 HX's and so that is my target platform.

    As I rewrite the key routines in assembler, I'll post them to have you experts here pick at it until we get it clean, happy, and blazing fast. So not to worry, you will get a chance to apply your skills without committing a lot of time. The end result will be both an open source game library for 8088/CGA/PC-Speaker and a nifty game to demonstrate it.

  4. #4
    Join Date
    Nov 2003
    Plattsmouth, Nebraska USA
    Blog Entries


    I wonder how it would work on my V30/87 equipped 1000 SL?
    Rick Ethridge

  5. #5


    Although I can use pascal, I've never been very good with of any sort of C.
    Neilobremski, I noticed that you can use Microsoft C 5.10.
    Would you convert this small project to C 5.10?

    Attached Files Attached Files

  6. #6
    Join Date
    Dec 2014
    The Netherlands


    Very nice!
    I like how it gives that retro-feel of games being developed by a single person, based on a unique concept.

    I see I have to attach some WAV files myself to get the PWM working.
    What format do I need to use for that? Or will it take any kind of bit-depth, sampling rate, channels etc?

  7. #7


    Quote Originally Posted by Scali View Post
    I see I have to attach some WAV files myself to get the PWM working. What format do I need to use for that? Or will it take any kind of bit-depth, sampling rate, channels etc?
    The embedded WAV's must be 8khz mono, under 12kb, and put in the following order attached to the end of the EXE:

    0.) Title
    1-9.) Cube placed sucessfully
    10.) You won!

    NOTE: the loader doesn't skip INFO blocks in the header but usually they're small enough to cause only a minuscule bit of noise. I used Audacity to clip the audio files down and then FFMPEG to convert them:

    ffmpeg -i 16bit.wav -ar 8000 -ac 1 -acodec pcm_u8 8bit.wav


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts