|Written in||Written for||Language||Graphics||Published||Size|
|Apple IIe||All Apple IIs||6502 & GraBASIC library||Hi-Res||UpTime||356 sectors|
Dave Was A Demo Game?
It was just after quitting Origin Systems and co-founding Inside-Out Software in June 1988 that I started working on Dangerous Dave at home in my spare time. At work I was busy porting the Apple II version of Might & Magic II to the Commodore 64. The original impetus behind making Dave was that I was a huge fan of Super Mario Bros on the Nintendo and I wanted to make a game like that for myself. It's that simple.
Now the way that Dangerous Dave got published was kinda different.
I actually named all the monsters in Alien Attack when I drew my first game ad (see below); I didn't name these guys when I made the game - I just made the shapes and programmed them. Let's see, I named Byte after one of my favorite games, Snake Byte by Chuck Sommerville. Mothra was named after Godzilla's nemesis, of course. For Birgan, I wanted to make up a name that sounded like a Godzilla movie monster, but Gremmin and Dyzzar were totally just pulled outta my ass. Oh, and the second ad I did, I spelled Dyzzar with only one 'z'. Nice!
At the time, I was writing a series of articles for UpTime Disk Monthly and the articles all explained how to use my 6502 graphics library that I had created named GraBasic.
GraBasic was the second generation Applesoft add-on library I had created, the first generation being called RBASIC which was never published. I still have my RBASIC manual and source code, in fact.
So, Dangerous Dave was a game I made to demonstrate how to use my GraBasic graphics language add-on!
Jay Wilbur at UpTime really liked my GraBasic add-on and we decided to publish the entire thing in three installments. Each installment would offer a different version of GraBasic with an accompanying article explaining (1) what's different about the version published, (2) a utility that created data for a feature of GraBasic (such as fonts, paths and shapes) and (3) a game that used GraBasic demonstrating some special feature. So basically there would be 9 programs published in 3 months, three programs per month (a version of GraBasic, a utility and a game).
The first installment of GraBasic included a version that ran at $8000 in memory, a shape editor (shifted-shapes), and the simple game Wacky Wizard (in AppleSoft BASIC using GraBasic).
The second installment of GraBasic included a version that ran at $D000 (language card area), a path editor and the game Neptune's Nasties that showed how to move monsters along a path created by the path editor.
And finally, the third installment had a 6502-only version of GraBasic for advanced coders, a font editor (GraBasic displayed bitmap fonts too) and a 6502-only game called Dangerous Dave!
The title screen says Episode 1, which means that I hoped this was just the start of several more years and several sequels to Dangerous Dave.
After playing Dave for a bit you might wonder how the hell I got the ideas for the monsters, dumb upside-down trees, the gun and the jetpack. Well, it was pretty natural back then seeing as all my time was spent creating crazy game stuff every day. I mean, the environmental hazards are called WeirdWeeds, FearsomeFire and WickedWater!
Mario never had a gun or a jetpack but man, I was determined to put them in my game! I didn't want Dave to look exactly like Mario - I wanted it to have my own style and strangeness. Ala Mario, I added secret areas if you could somehow get out of the level confines.
Now, Dangerous Dave didn't run at lightning speed on the Apple II. Hell, nothing did, but Dave was using GraBasic for all its drawing and I was limited by that. Otherwise I would have coded a lot of unrolled loops for the drawing code.
One of the cool things about the Apple II version of Dangerous Dave is that it used a graphic technique called "page-flipping" to make the animation flicker-free. Basically, while you were looking at the screen, I was drawing the next frame of the game on the second hi-res screen.
When I was done drawing to that screen, I displayed it then began drawing the next frame on the first hi-res screen you were looking at. And so on. Today, this is all handled transparently for programmers using DirectX or OpenGL. At least in Dangerous Dave I learned something new and used it, and that was page-flipping. Coincidentally, I was porting Tower Topple soon after doing my part on Might & Magic II and I was doing double-res page-flipping in that game. Now THAT was some crazy shit.
Dangerous Dave was the first game that I wrote a fully-fledged level editor for. It was all done in hi-res graphics and a couple years later it was something that impressed John Carmack when we first started working together - that someone would spend time to make nice tools for a game.
I remember when I finished making Dangerous Dave that people thought the game was pretty fun and looked good for an Apple II game. After Dangerous Dave, I was finished making games for UpTime. My UpTime chapter was closed. I had met Jay Wilbur, the Apple II editor of UpTime, in 1987 at the AppleFest in San Francisco, CA and later hired him as CEO of id Software in April 1992.
Internal Game Specifics
I created Dangerous Dave in ProDOS instead of the older DOS 3.3 which I used for most of my games. ProDOS was a fairly new operating system for the Apple II and it was far superior. I believe that DD was the first game I did in ProDOS. Above you see the CATALOG, or directory, of Dangerous Dave. Each block is 512 bytes or 2 DOS 3.3 sectors which were 256 bytes (one "page" of memory). So, if you add up all the blocks and convert them to KB you'll see that Dangerous Dave was 89KB. But 33KB of that size was in full screens for Help, Hints, Story, etc.
Let's see, the full screen graphics (help, instructions, etc.) are stored in raw screen format (no compression, not on anything in fact) in the DD.PICS and DD.PICS1 files. The level files are stored in the DD.LEVELS along with the graphics. The DD.OBJ1, I believe, is the GraBasic code and the DD.OBJ is the actual Dangerous Dave game code. The DANGEROUS.DAVE file just loads everything into memory and runs the DD.OBJ code. And if you were wondering, the PRODOS file is the operating system and BASIC.SYSTEM is there so you can interface with ProDOS and write Basic code.
The explosion sound is a favorite of mine. On the Apple II you can only make sounds by clicking the speaker. One memory access on the speaker port will make it emit one slight click. If you do them quickly they make a tone. Different delays between clicking produces these different tones. For the explosion, I made a bunch of random tones that were very short in length - and I got the tone data from the Apple ROMs: I just read whatever was in memory up there and used it for the tone value! Nice trick.
You might wonder how does the game know that Dave can climb something? Well, it's a little graphic trick. Dave's shape is made up of "lo-bit" colors only, that is: purple, green, white0, black0. When Dave encounters pixels that are "hi-bit" colors (red, blue, white1, black1), I make his code change the way he moves so you can jump and jump and get higher instead of letting gravity pull you down. On the PC version, I did climbing the correct way with no tricks.
You'll notice that I have a couple callouts on the main menu screen. "Dedicated to Kelly Romero for her support" was for my then-wife Kelly with whom I had two boys, Michael (1988) and Steven (1989). I was also good friends with Lane Roathe and wrote "Special thanks to Lane Roathe for his creative efforts and ideas". Lane and I co-founded Ideas From The Deep in 1989 and wrote some games with IFD. I got Lane to work at Inside-Out Software with me and I'd show him my progress on the game and he'd give me feedback.
There are two versions of Dangerous Dave: the UpTime version and the original stand-alone version - I'm including the stand-alone version here. When the Dangerous Dave stand-alone disk boots up, you'll see the screen flash some text quickly then the game comes up. Here's the text you see on that screen. The "DuoLoader" program is a fast-load program I wrote to get games into memory super fast and it works in both DOS 3.3 and ProDOS (hence the name DuoLoader).
Even from the beginning I had plans of making more Dangerous Dave games. The title screen says Dangerous Dave in The Deserted Pirate's Hideout. The sequel was named Dangerous Dave in The Haunted Mansion. Those are the only real, TRUE Dave games since Softdisk decided to make some shitty sequels that were just a mishmash of earlier graphics and crap. These are Dave's Risky Rescue and Dave Goes Nutz!
I've been doing screen captures of each level in Dave. I've only gotten to level 6 so here's what I have so far. If any of you know how and can do it, capture the rest of the levels so I can put them up here. Click on the graphic to display the full map of the level. Ok, here's some tips:
You only need ONE TROPHY to exit the level. If you see more than one trophy, you can't pick it up. Why did I do this? Don't ask me!
When you kill an enemy, don't be in the exploding fireball or you will DIE along with them. Wait for it to go away. And if an enemy kills you, your exploding fireball will kill them if they hit it!
This level is really simple and is where you should get the hang of jumping around. This is very important because you'll need to be in excellent control of your jumping by level 3. Make sure you get used to using the RETURN key to stop yourself from continuing your jump.
After getting the trophy, go to the door. There's no secrets on this level.
Very strange level because of the bizarre upside-down trees and the stars in the sky - which is the ground! It's like the level is upside down or in....The Twilight Zone! That was the inspiration for this level because the door looks like the door you see at the start of the Twilight Zone episodes!
And would you believe that 20 years later I would own a Twilight Zone pinball machine! Yes, insane but true!
Oh, so anyway, to finish this level you need to climb the trees by constantly holding down the SPACE (jump) and aim yourself onto a girder when you're near the bottom of the trunk.
Here's where things get tough. You need to have gotten good at jumping because you'll need the skills when you hop over the WeirdWeeds and get close to the killer spiders (there's two of 'em). The row of 3 weeds is particularly tough to get over - you have to be right next to them before jumping.
Get the gun. Get close to the spider and time it right and shoot it. Then, when you get near the end where the fire is, you need to get the backpack and fly up through the door.
The PC version has a lot more going on in this area - but here it's clear-cut and simple.
This one's where it gets tough. On the PC version, the one enemy on this level is everyone's bane. If you can spare the lives, go ahead and crash yourself into him if you can and when you come back he'll be gone and clearing the level is easy.
This one's a bit of a runaround because you have to get to the end door where the jetpack is, then come all the way back to the beginning to get the trophy, then go all the way back to the exit. All without a gun!
This level is tough right from the beginning with the enemies that fly in a vertical elliptical pattern - the first one is right next to the gun you need to kill it!
The second one is tough as well because it's over water. One hint about this level - if you can climb the tree at the beginning, you can jump off the screen to the left... I think this is a bad thing to do in the PC version but maybe not this one...
If you get the jetpack, fly to the top of the level and run all the way across - then fly off the right side of the level!
Right at the very beginning I'm evil. You get shot at pretty quickly but you can jump over it - you should be pretty spry by this point in the game. I'm not making it any easier on each successive level!
There's a MASSIVE treasure room on the right side of this level - and you get it by doing something completely non-logical. Get the jetpack at the start...then get to the exit door without the trophy. The exit door is useless without the trophy in hand so just fly up through it and go right until you reach the treasure room!
There's a trophy in the 2nd exit room so you don't have to go back to the beginning.
Yeah. I started you in free fall right at the start. As a homage to a favorite Mark Turmell game called Free Fall - i'm the only person in existence to get the reference.
This level isn't as difficult as the previous one but you do have to watch out for the water areas with the gumball monsters shooting at you.
There IS a curious second exit on the right side of the level. You can either get there by warping from another level...or by falling through one of the water tiles - only if one of them is fake. Don't blame me if you die!
This one's a little scary because you have to get the jetpack then fly past fire off the bottom of the level until you wrap-around to the top of the level into the next area. Maybe if you go off the left side of this level you'll wind up in Level 7's treasure area?
Incredibly, there are 3 jetpacks on this level. You'll need them at the end since there's two of the enemies guarding the trophy and exit door.
This is a level that Lane Roathe made - you can see his name at the end spelled out. Hence the credit I gave him on the menu screen.
Beware the girders that are fake - you'll fall through them! There's an area at the bottom where a couple fire tiles are missing - you can fall through them and reach the top of the level.
Yeah, this level is pretty tough. You have to reach the trophy but still be able to get to the door. And don't neglect Lane's treasure stash!
I actually like this level a lot as one of the best in the game - it's packed with hazards and is interesting to traverse.
The trophy is all the way in the rightmost corner of the level and it's an accomlishment to just reach it - nevermind the arduous trek to the exit door!
There's no secret areas on this level because I totally packed the entire map with gaming goodness. Most people won't see this map, alas.
Special thanks to Frenkel Smeijers for obtaining the game maps.
To play Dangerous Dave, I strongly recommend downloading AppleWin (Windows OS) and playing it in full screen mode! The link to download AppleWin is on the Emulation Zone page.
You are Dave. Your job is to get back all your trophies that the bully Clyde stole from your clubhouse. Grab coins and treasure along the way for points. Get the gun and backpack for more crazy fun! There are 10 levels - just try to beat them!
Use A, Z for up & down, left and right arrows to move. SPACE to jump. RETURN to stop (very important for precise control). S to shoot, J for jetpack on/off. You can also use the joystick to play.
There's lots of secrets - try to jump outside the confines of the level! Remember Mario...