Digger - back and digitally remastered ====================================== The really long digger file - 7/6/1998 by Andrew Jenner with thanks to Windmill Software Included in the distribution is the game itself, this document, and a Windows icon (but see Known bugs and issues for information about running Digger under Windows). Contents -------- The story so far... How to play Digger Frequently Asked Questions Extra levels Hall of Fame Technical details Known bugs and issues Ideas for future enhancement Digger pages on the web and other versions of Digger What's New? Feedback The story so far... ------------------- Finally, after 3 years of (on and off) hacking, Digger is back! This game, for those who don't know it, was one of the best games available for the XT - the CGA graphics were beautifully drawn and animated, and the sound effects and music were state of the art. It wouldn't run on modern PCs, of course. The CGA graphics directly accessed hardware registers that the VGA didn't have (and wouldn't have looked so hot on today's high resolution monitors anyway), the background music and sound effects just didn't sound right and the whole thing just ran far too fast. Also, you probably didn't want the game to access the disk directly and save your high scores in an arbitrary place (probably overwriting some other file) or to reset your computer just to exit the game. I was extremely disappointed to discover all these things when we replaced the family PC1512 with a brand new multimedia 486, so I set about re-writing it. It was a big job - all the code had to be disassembled, the necessary routines re-written and the whole thing put back together again. I finally finished the project in easter 1998, having decided not only to fix all the compatibility problems but also to convert all the graphics to VGA standard, redrawing them. Since then, I have almost completely rewritten Digger in C to make it easier to add new features and move it to other plaforms. This is the result! Unfortunately, I have not been able to contact the original author of the game, as all I know is the copyright message on the title screen "(C) Windmill software 1983." I have head one rumour that the author died shortly after completing the game, but if you know otherwise, or, indeed, if you are the author, please get in touch. How to play Digger ------------------ The keys you need to play the game are (might be considered spoiler): Left, Right, Up, Down (or 2, 4, 6, 8 on the numeric keypad) to move Digger, F1 to fire, Space to pause, F7 to toggle background music and F9 to toggle all sound. On the title screen press Esc to toggle one or two player mode. To exit from the game to the title screen or from the title screen to the operating system press F10. The command line options are: /S:n = set speed to n /L:name = use level file "name" /C = Use CGA graphics - these are faster than VGA but this is only really noticable if you have a slower computer or are playing at high speeds. /B = Use CGA graphics with BIOS palette functions (try this if the palette doesn't work properly with the /C option, but be warned: it might cause a crash if you get a high score) /Q = Quiet mode (no sound at all) - use this if you're running under Windows. /M = Turn background music off. Curiously, if you complete a level and no music has been played since you started the program, if makes a different noise. Who knows what other mysteries Digger holds... /R:name = Record game to file "name" /P:name = Playback game file "name" and restart program /E:name = Playback game file "name" and exit program /? = Display this list /S and /L are optional (you can just specify a name and/or number) but are harmless, and will help to prevent confusion (especially if you have a level data file called something like "20.dat") /Q and /M don't completely disable sound and music, you can still toggle them with the F9 and F7 keys. Record and playback could hardly be easier to use. There are two ways to record your game: either give Digger a filename when it starts, or press F8 once your game is over. The filename used if none is specified on the command line is DIGGER.DRF. Bear in mind that any previously saved games in this file will be overwritten unless you rename or move the file first. To automatically save your game once it is finished, simply start Digger with a command such as "DIGGER /R:DIGGER.DRF" Then, the last game you play before exiting to DOS will be saved to this file (in this case, DIGGER.DRF, although it can be anything you like). The recommended extension is .DRF (Digger Recorded File). Again, remember that only the last game played before exiting is kept. To playback the file, use either the /P or the /E option: "DIGGER /P:DIGGER.DRF" or "DIGGER /E:DIGGER.DRF". The only difference is that when the playback is finished, the /P option restarts the program so you can play normally, and the /E option exits to the operating system. If you specify both /P and /R (or /E and /R) on the command line (/R first), the playback itself is recorded, so some elementary editing of recorded game files can be done. Not enough to make it look like you've done better than you have, of course. To playback a file at a different speed, put the speed on the command line first. Command line arguments are processed in order. You can even play back multiple files at different speeds with the same command, such as "DIGGER 20 /P:DATA1.DRF 10 /E:DATA2.DRF" (plays DATA1.DRF at speed 20, then DATA2.DRF at speed 10, then exits). No information about the speed at which the recording was made is kept, nor whether it was recorded with CGA or VGA graphics, so any file can be played back at any speed or resolution. Recorded files are very small (only a few kilobytes) and are formatted as text files, so they can easily be transported on floppy disks or sent over email. Please send me your recorded files to put on the website! Unfortunately, the DRF format completely changed on the 15th of October 1998, so any old DRF files you have won't work any more. I'm afraid that no converter is possible, you'll just have to make new ones. However, the new format is much smaller and more versatile. Frequently Asked Questions -------------------------- Scoring system (may be considered spoiler material) * Emerald: 25 pts. * Eight consecutive emeralds (octave): Extra 250 pts. * Gold: 500 pts. * Killing Hobbin or Nobbin by shooting or hitting with gold: 250 pts. * Bonus: 1,000 pts. * (In bonus mode) Eating Hobbin or Nobbin: 200 pts. for first, 400 for 2nd, etc. (doubling each time) - still 250 for other methods of killing, though. * At every multiple of 20,000 pts. you get an extra life. This is different in some of the extra levels (see below for more information on these). The maximum possible score on completion of level 1 is 8650 plus 3150 for every life used. I can repeatably obtain 8650. I haven't bothered to calculate similar statistics for the other levels, but I will if anyone's interested... The background music for the main part of the game is called "Popcorn", and was a hit for the group "Hot Butter" in the 70s. There's more info at http://www.cam.org/~lafranc/popcorn/origin.html. The background music for the bonus is the William Tell Overture by Rossini. In my explorations of the code of the game, I have discovered some things I didn't know. On each new level up to level 10: * The monsters arrive more frequently. * There are more monsters in total. * The number of times nobbins have to cross to become hobbins decreases. * The monsters move slightly faster on average (their speed is actually random). * The monsters less frequently stop chasing you (they always chase you on level 6 and above). * Hobbins stay hobbins for longer. * Gold hangs around for less long. * Fire takes longer to recharge. * Bonus mode lasts for less long. Levels above 10 use the same variables as level 10 but different layouts. The level plan is 1-2-3-4-5-6-7-8-6-7-8 then the sequence 5-6-7-8 repeats 247 times. You you complete level 8 249 times, all the subsequent levels use the layout from level 5, but I doubt anyone will be both good enough and have time to do this. Gold (as in a broken bag) disappears very quickly if you dig underneath it. Monsters going up change direction when there is a bag falling on them, but they do the same thing even if the bag is below them in the same column. Player 2 (in two player mode, obviously) doesn't get the extra life until after multiples of 20,000. Player 1 (in either mode) gets it *at* multiples of 20,000. The noise made when you complete a level is polyphonic if no background music has been played since the game was started. The program allocates enough resources for 6 monsters, but only 5 are on screen at any given time. By changing a single byte in the executable, you can make all 6 appear at the same time. When you get a game over and no high score, the screen flashes between its two colour schemes for a while, but the original didn't do this on my 8086. Apparently it did on some other people's computers, though, so it must have been a hardware oddity. It was taking ages to get back to the title screen, so I changed the number of times it flashes from 20 to 10. This version of Digger now uses your computer's internal timing chip for all its timing, so it should run at exactly the same speed on all machines, no matter what how much action is happening on the screen. The only exception is that if there is more action on screen than your computer can handle, it will run too slowly (as happened with the original game on a 4.77MHz machine). You won't notice this effect unless you have a very slow computer or are running Digger at an extremely high speed. Using the CGA graphics rather than the VGA ones will speed things up in this case. You can speed up or slow down the game depending on your personal preference. To do this, simply specify the speed on the command line. The default is 40, higher numbers give slower speeds, lower numbers (1 being the lowest) give faster speeds. If you're good at the game you might like to try playing it at a faster speed. If you use a really slow speed like 500, you may have to hold the keys down for longer to get it to do anything. Note that the music and sound effects are independent of this speed setting. If you are used to playing Digger on a slower computer, you might notice an apparent increase in speed as more monsters appear on screen. This is a psychological illusion! If you notice this, it means that your subconscious has been counting the number of monsters on the screen and adjusting the apparent speed to compensate! This effect will disappear after playing the new version for a while. However, if there is demand I could put in a feature to actually slow down the game more when there is more action on the screen. Extra levels ------------ An extra 35 sets of levels are available from my website at http://fly.to/digger/diglev.zip. To use these, unzip the file into directory where you installed Digger, and make sure that this is the current directory when you run the game. To play a different level set, just specify its name on the command line when you play the game. Note that the scores are now saved in the same files as the level data, not in separate .SCO files as in the previous version (although the DIGGER.SCO file is still used if no .DAT file is specified). If you have old .SCO files, email me for the conversion utility. Most of the levels in the pack were designed by Mikel Lavrentyev and his friends. The files VALYA123, VALYA2 and VALYA3 were designed by Valentina Borisenko, a schoolgirl from the Irkutsk (Russia). The file ANTON was designed by someone called Kalmykow Anton, who hacked into Digger in 1987 and made several changes. His version of Digger (ANTONDIG.EXE) displayed the graphics better than the original on non-CGA displays and had a whole new set of levels but there were still many problems with it. Hall of fame ------------ Welcome to the brand new hall of fame. Your name could be here! All you need to do is send me a recording of your best game. Recordings of all the official top scores are available on the website. My highest score is 47,025 - I reached level 6 using the default speed. My unoffical highest score is 68,575. Here are some more unofficial high scores to whet your appetite until there are more offical ones. Aleksi Muukkonen from Finland got 51,500 points and sent me his high score table file to prove it. Marc West of Sydney, Australia piled up 88,025 points. Vincent Nunes of Brooklyn, New York City has achieved 91,850. Maarten Kramer of Holland got 97,825. Elaine Henderson of Australia made 99,700. Norman Smart of South Africa collected 104,000. Aycan Gulez of Turkey (who has also reviewed Digger in the "Shareware World" section of the Turkish edition of Ziff Davis' PC Magazine, as well as redesigning this site) reached 119,975 (1 emerald away from an extra life!) John 'Top Dig' Robinson's top score is about 157,000. Mikel Lavrentyev of Russia claims to have mastered the game and beaten the maximum possible score of 999,975 in 7 hours of continuous play. I'm planning to make this feat impossible in a future version, by making the game faster as it progresses. If you've got a new high score (or even any score at all, since there are currently some 0 entries on this table), just hit F8 once the game is over and you're back at the title screen. This will create a file called DIGGER.DRF which you can attach to an email and send to me. If you don't know how to attach a file to an email, simply open the DIGGER.DRF file in a text editor (such as Notepad in Windows), select the whole thing, copy it and paste it into the email message. For some more information on recording and playback, see the "How to play Digger" section. Technical details ----------------- The dissassembly was done using Microsoft's DEBUG utility and lots of QEdit macros. The new code was completely written by me, from scratch. Most of the old code was subsequently converted from assembler to C line by line, by hand. I wrote utilities in Borland's Turbo C 2.0 to extract the graphics data and put it into a format I could use with CHARDES, my personal favourite sprite editor. I used this program to redraw all the graphics in glorious 16 colour 640x400 VGA. With more utilities I wrote, I turned the new sprites back into C code so it could be easily linked with the code. Finally, I assembled everything with A86 and Turbo C, linked it all with Borland's TLINK and compressed it with PKLITE (it's now smaller than the original!) Note: the high scores are now saved in an actual file, DIGGER.SCO, and *not* on an arbitrary sector of the disk in drive A:, as the original did. If you're clever, you can hack into this file and make your scores apparently arbitrarily large. Please don't do this, it's very antisocial. Don't do it on Minesweeper or Freecell, either. Known bugs and issues --------------------- Most of these have arisen because of the way the original game uses the hardware, and I that want to keep it as similar to the original as possible, in terms of sound and gameplay). However, with the latest version this list is looking a bit depleted... * Crashes on level completion when running under Windows (3.1 enhanced mode or 95) when sound is on. I consider this to be a bug in Windows, not a bug in the game, the music just wouldn't be right if I didn't reprogram the timer. MS-DOS mode under Windows 95 is okay, though ("Use default settings" will usually work). Some people say Windows NT is fine, though. * The screen goes all speckly when you get a high score. Let me know if this is a problem for anyone. Ideas for future enhancement ---------------------------- Please get in touch and tell me which of these you'd particularly like/hate or if you have any better ideas. * Analogue joystick support (this was in the original game, but didn't work unless you were running the game on a 4.77MHz 8086). * Level editor, graphics editor, background music editor etc. * Simultaneous two player mode, either split screen or both on the same screen (so two diggers can help or fight each other as they see fit) - perhaps wil an option for network play. * Change game speed during game * Windows version (don't hold your breath!) * Cheats, for example save your position and score in the game and then restore it later. There are currently no cheats you can do without a hex editor. * More than two players Which other classic games would you like to see restored? I have three other Windmill software games ("Conquest", "Rollo and the Brush brothers" and "Moonbugs") and heard of another two ("Floppy Frenzy" and "Video Trek 88"). I mentioned here previously that I'd like to restore Datasoft's 1983 masterpiece "Bruce Lee", but it had already been done and only needed a minor speed patch. Email me for further information. If there are any Windows programmers out there who would like to have a go at converting Digger to run in a window or even making the Digger screensaver, email me and I'll send you the source code and all the graphics you need in the format of your choice. I'd also be interested in hearing from anyone who would like to port Digger to other platforms such as Unix, Mac and Atari. An Amiga version has already been started. I have converted most of the source to C code to aid portability. A version for RiscOS will be ready very soon. Digger pages on the web and other versions of Digger ---------------------------------------------------- http://fly.to/digger The latest version of this document is available at my own site, redesigned by Aycan Gulez. Various utilities and recorded files are also available here. Check back here often for updates. http://home.worldonline.nl/~terdudio Reinder Kraaij of Holland has started a rewrite of Digger in Java. The graphics are as in the original, but the game itself is being rewritten from scratch. What is there is playable, but it's just not the same as the original -- yet. Work on the project has restarted, so watch this space! (Or that one...) http://www.wynde.com/~steve/perl/wwwboard/messages/30.html The Cheesy Software Discussion Group have been having a lot of discussion about Digger and the arcade game Dig-dug, which it may or may not have been based on. ftp://ftp.torget.se/pub/games/reader_files This game plays nothing like the original Digger, although it does have certain game elements in common. Don't be fooled by the 4Mb installation or deliciously rendered title screen, the game itself is simple, slow and fairly boring. It does, however, attribute itself to the original Digger so I include it here. To download, get both digger_1.zip and digger_2.zip and use PKUNZIP with the -d option. http://www.rinet.ru/~mikel Mikel Lavrentyev of Russia has written a "patcher" for the original Digger which fixes most of the problems. The loader also has a level editor and many sample levels. This package is highly recommended, although the patcher does have some unwanted side effects - the controls seem "sticky", the background music isn't quite right, and the speed seems to be always either too fast or too slow. The levels from Mikel's version of Digger are available for use with this version of Digger - the "Extra levels" section of this file for more details. http://www.oldskool.org The Oldskool PC hosts the Digger site and is an invaluable reference for anyone interested in old games or demos and running them on modern PCs. Know of any more? Get in touch! What's new? ----------- 15 Oct 1998: Major new version! Most of the changes are invisible but will help with future development. However, there are some major new features, including a greatly improved recording/playback feature, which you will need if you want to get on the new Hall of Fame. 22 Sep 1998: Four new sets of levels added in the extra level pack. 8 Sep 1998: Trivia section added in the FAQ 7 Aug 1998: If you liked Digger, try Styx (http://www.oldskool.org/shrines/styx). 28 Jul 1998: DRF compressor program and DRF files added. 25 Jul 1998: Digger should now run on slower computers. Feedback -------- That's about all I can think of to put in the the really long Digger file for now. Let me know if there's any other Digger information you urgently need, you want the source code or you want to be put on an email list to be told whenever a new version comes out. If you have access to email that is the best way to contact me - my address is amj25@cam.ac.uk If not, you can snail-mail me at: Andrew Jenner Queens' College Cambridge CB3 9ET ENGLAND You can also visit my site at http://homepages.enterprise.net/berrypark/andrew if you're interested. If you liked the Digger website and want Aycan to design your site, you should email him at gulez@rorqual.cc.metu.edu.tr