After a while in development I have released my first complete game in QuickBASIC for the public, Thy Dungeonman for DOS! This is a clone of the original Thy Dungeonman flash game on the homestarrunner.com website written purely in QuickBASIC 7.1 and x86 assembly.
This game was a bit of a challenge to get complete because in the original flash game the display is about 45ish characters wide, but there is no real text mode that supports this weird number of characters! To get around this my friend helped me develop an assembly routine and custom font format to display a 14x8 font on the screen in SCREEN 2 (640x200) so that when it gets squished back to a 4:3 display it looks just like the original flash game did.
I chose to use SCREEN 2 for this game because I wanted the game to be able to run on as much DOS-compatible hardware as possible and being as SCREEN 2 will work on any CGA compatible card I thought it was the perfect choice. The only issue here is that SCREEN 2 is a 1 bpp graphics mode so instead of one byte being one pixel one byte actually holds 8! This normally is not an issue for font drawing routines because an 8x8 font just needs to write one byte to draw each row of the character and a 16x8 font just writes two per row.
Sadly 14 doesn't split evenly into 8, the number of bits in a byte, so each character would overlap weirdly over multiple partial bytes. This required us to do some complex calculations so that when you call the draw function it knows which bit of each byte it needs to start writing to in order to draw the character correctly on the screen.
After getting that assembly routine to draw the font complete and adding a small call absolute frame around it, it was fairly smooth sailing to the end of the game. I followed the Homestarrunner wiki carefully and made note of how the flash game played to make my clone play as closely as possible to the original. I have pretty well everything implemented into the game now including all the funny easter eggs!
Fell free to check out and download the game from my website:
Note that to run the game you'll need a PC with a 286 or newer CPU, CGA compatible graphics, and MS-DOS 3 or newer... or you can just use DOSBox hehe
If the game hangs at the start screen your PC may not have interrupt 33h hooked (the mouse driver) and has it pointing to a random location in memory causing it to hang. If this is the case just run the game with the /NOMOUSE switch and it won't check for a mouse driver and should fix your problem.
I don't have a public download for the source code currently but if you contact me directly I'll surely let you have a copy so you can see all the work that went into creating this awesome game.