Dangerous Dave
Levels? | Editable |
---|---|
Tiles? | Editable |
Sprites? | Editable |
Fullscreen? | N/A |
Sound? | Not editable |
Music? | N/A |
Text? | Not editable |
Story/cutscenes? | N/A |
UI/menus? | Not editable |
Demos? | Not editable |
Dangerous Dave is the first installment in the popular Dangerous Dave series, preceding Dangerous Dave 2 (And DDiCI.)
In this installment Dave navigates the lair of his nemesis, looking for the ten special trophies he needs to steal, and get out alive. The game features ten levels plus bonus areas and separate CGA, EGA and VGA graphics.
Tools
The following tools are able to work with this game.
Name | Platform | Group/archives | Levels | Graphics | Music | Sounds | Text | Saves | .exe patch | Notes |
---|---|---|---|---|---|---|---|---|---|---|
Camoto | Linux/Windows | N/A | Edit | Edit | N/A | No | No | N/A | No | |
Wombat | Windows | N/A | View | View | N/A | View | No | N/A | No |
File formats
File name | Description |
---|---|
dave.exe | See below for details. |
egadave.dav | EGA tiles in Dangerous Dave Tileset Format. |
scores.dav | High scores in Dave Score format. |
dave.exe
When decompressed with UNLZEXE, dave.exe contains the following data:
Offset | Length | Format | Description |
---|---|---|---|
0x0b510 | ? | ? | Unknown data - UINT32LE count, UINT32LE[count] len, ... |
0x0c620 | 0x5AD0 | Dangerous Dave Tileset Format | CGA tiles |
0x120f0 | 0xA3F0 | Dangerous Dave Tileset Format | VGA tiles |
0x1c4e0 | 0x12A0 | Inverse Frequency Sound format | PC Speaker sound effects |
0x1d780 | 0x12C0 | ? | CGA font + menu graphics |
0x1ea40 | 0x2480 | ? | EGA font + menu graphics |
0x20ec0 | 0x4800 | ? | VGA font + menu graphics |
0x2583a | 0x14 | UINT16LE array | Mapping between normal levels and Warp Zones |
0x25b66 | 0x320 | Dangerous Dave Level format | Monster properties for each level |
0x25ea4 | 0x46 | Dangerous Dave Level format | Small 10×7 level shown on title screen |
0x2643f | 0xE | NUL-terminated ANSI string | Intro screen title |
0x26451 | 0x17 | NUL-terminated ANSI string | Intro screen sub-title |
0x26ea9 | 0x21 | Raw 8bpp pixel data | Gradient border shown above and below level, with trailing 0x00 |
0x26b0a | 0x300 | VGA Palette | 6-bit RGB |
0x26e0a | 0x3200 | Dangerous Dave Level format | Game levels (10 @ 1280 bytes each) |
There are a number of variables stored in the .exe:
Offset | Type | Description |
---|---|---|
0x92B5 | UINT16LE | Pixel offset of top map border (0 = first line, 320 = second line, etc.) |
0x92BE | UINT16LE | Pixel offset of bottom map border |
0z265D1 | UINT16LE[8] | Which row and column the F2 control panel elements appear on |
0x26A99 | UINT16LE[10] | Initial horizontal scroll position of map at level start (only viewport though?) |
UINT16LE[10] | Something to do with the offset where the game looks for the tiles | |
UINT32LE[10] | Additional map data, unknown purpose |
Some EGA graphics are stored internally and use the Commander Keen EGA Header.
Notes
Dave can use CGA, EGA and VGA graphics, with the default being the best card available. All of the CGA and VGA graphics are stored internally, while the EGA graphics are stored in an external file, and have no relation to the CGA/VGA graphics (i.e. the game will work fine in CGA or VGA mode even if EGADAVE.DAV is missing.) The font and menu graphics (for CGA/VGA and EGA) are all stored in the main .exe file (as it is still possible to press F2 to change in and out of EGA mode with a missing/corrupted EGADAVE.DAV file.)
Related links
- MaiZure has an excellent video tutorial series on how to write the game from scratch in C: maizure.org
- StepS started a disassembly of the .exe with Ghidra which Malvineous continued with, and many of the game's functions are now documented. The project file is available for anyone who would like to continue the work, or use it to make patches for the game.
- Gamer's Edge Sampler on archive.org, archived version of the original floppy on which the game was released as freeware.
- yo-yo-yo-jbo has an analysis on the game as well as a parser and crude level editor: https://github.com/yo-yo-yo-jbo/dangerous_dave