February 3rd, 2017, 09:20 AM
I've spent November and the following months creating this new DOS game called Magenta's Maze. There is an announcement and download at MagsMaze.gibdon.com; 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!
February 7th, 2017, 01:24 PM
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).
February 7th, 2017, 02:43 PM
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.
February 8th, 2017, 01:39 AM
I wonder how it would work on my V30/87 equipped 1000 SL?