Digger - back and digitally remastered
                     ======================================

                    The really long digger file - 18/10/2000

                                by Andrew Jenner

This text file contains the same information as the official Digger Remastered
website, which can be found at "http://www.digger.org".


Contents
--------
Introduction
Files at the Digger website
About Windmill Software
About AJ Software
Frequently Asked Questions
Command line options
Hall of fame
Running on other platforms
The future
About remastering
What's new?
Digger pages on the web and other versions of Digger
Mailing lists
Contact us


Introduction
------------
Digger was originally created by Windmill software in 1983 and released as a
copy-protected, bootable 5.25" floppy disk for the IBM PC/XT. As it requires a
genuine CGA card, it didn't work on modern PCs. In 1998 a new version was
created by Andrew Jenner which runs on all PCs with CGA or better and, whilst
retaining all the atmosphere and playability of the original, has many new
features, including:

* Exit button
* Optional VGA graphics
* Recording and playback
* Real time speed control
* Keyboard redefinition
* Gauntlet mode
* Two player simultaneous mode


Download
--------
The following files can be downloaded at http://www.digger.org:

The latest version of Digger Remastered for DOS. The download is 78K.

The Digger Remastered extras pack (195K), containing the level editor, extra
levels, icons, Windows 95 file associations, the hall of fame games, and a
screensaver. Please read the EXTRAS.TXT file first.

Windig, the Windows 95 version of Digger Remastered by Tim Draper (104K).

The SDL version of Digger Remastered by Maxim Sobolev (108K) - see "ports"
section of website or digger.txt for building instructions.

The RiscOS port of Digger Remastered (52K).

The DJGPP/Allegro protected mode port (298K).

The C source code to Digger (177K). Please read the DIGSRC.TXT file first.

The Java version of Digger in downloadable form (45K).

The Source code to the Java version of Digger (32K).

The graphics from Digger in .BMP (24K) or .GIF (35K) format. Note that the .BMP
files do not have the correct transparency information. These files have been
ZIPped twice (the first time with compression off) to reduce download time.
This is a handy technique for improving compression performance if you have
lots of similar files in an archive.

Styx Remastered, another Windmill Software that Andrew has fixed (25K).

The source code for Styx remastered in Assembler (43K).

The ripped version of Digger (23K).

The ripped version of Styx (19K).

The ripped version of Rollo and the Brush Bros (19K).

The ripped version of Conquest (25K).

The ripped version of Moonbugs (22K).

The ripped version of The Exterminator (18K).

Floppy Frenzy.

The archives from the old Digger Chat mailing list. Now as complete as they're
ever going to be (probably).

GETSCORE - utility to extract the high scores from an old Digger floppy disk
and convert them to a DIGGER.SCO file.


Play Java Digger
----------------
There is now a Java version of Digger at "http://www.digger.org/java.html". It
is 46K long.

The keys are as the default Digger keys - arrow keys to move, F1 to fire. Press
F9 (not F10 as in other versions) to abandon a game in progress and return to
the title screen. Press + or - to change speed, and Esc on the main menu to
switch between 1 and 2 player mode. Click on the Java applet to give it focus
if it does not respond.

Sound and many of the "Remastered" features such as VGA graphics, keyboard
redefinition, gauntlet mode, 2-player simultaneous mode and recording have not
yet been implemented.


About Windmill Software
-----------------------
Windmill software is based in Canada and run by Jo-Anne Kempe. They no longer
publish games, but now specialize in software for property management systems
and custom management information systems (MIS) software. If you would like
more information about Jo-Anne's company and its international capabilities in
housing and building/facility management in custom MIS projects, contact her at
Canada 905 639 4515.

Windmill published at least seven games between 1982 and 1984: "Floppy Frenzy",
"Moonbugs", "The Exterminator", "Styx", "Digger", "Conquest" and "Rollo and the
Brush Brothers." I have also heard mention of "Video Trek 88" but have not been
able to get hold of copy of this. If you have a copy of this game, or you know
of any other Windmill Software games not mentioned here, please get in touch.

I have written to Jo-Anne but she has not yet replied. Rest assured that as
soon as I hear anything you'll be able to read it here first.


Frequently Asked Questions
--------------------------
Q: What are the keys you need to play the game?
A: They are (by default): Down, Left, Right, Up (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 or N to toggle
one or two player mode, or F8 to save the last game if you forgot to give a
name on the command line. To exit from the game to the title screen or from the
title screen to the operating system press F10. To increase the game speed
during play, press +. To decrease it press -. Each press of these keys
corresponds to an increase or decrease in the command line speed parameter of
5. The default keys for the second player in two player simultaneous mode are
W, A, S, Z and Tab to fire. All these keys except Esc, N and F8 can be
redefined with the /K option.


Q: How does the scoring system work?
A: As follows:

* Emerald: 25 points.
* Eight consecutive emeralds (octave): Extra 250 points.
* Gold: 500 points.
* Killing a Nobbin or a Hobbin by shooting or hitting with a bag: 250 points.
* Bonus: 1,000 points.
* (In bonus mode) Eating a Nobbin or a Hobbin: 200 points for first, 400 for
  2nd, etc. (doubling each time) - still 250 for other methods of killing,
  though.
* At every multiple of 20,000 points you get an extra life.


Q: What's the most you can score?
A: The maximum possible score on completion of level 1 is 8,650 plus 3,900 for
every life used. I can repeatably obtain 8,650. The maximum possible score you
can have by the end of level 2 is 19,925 if you don't die, so it is not
possible to start level 3 with more than 2 lives in reserve. I have got maximum
score on the first two levels a few times.

I haven't bothered to calculate similar statistics for the other levels, but I
can if anyone's interested...


Q: What's the music that plays in the background?
A: 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.popcornsong.com".

The background music for the bonus is the William Tell Overture by Rossini.

The music which plays when you die is "Funeral March" by F. Chopin.


Q: What other interesting things do you know about Digger?
A: In my explorations of the code of the game, I have discovered lots of things
which might be of interest to someone.

On each new level up to level 10:

* The monsters arrive more frequently.
* There are more monsters in total.
* The number of monsters on screen at once increases.
* 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 followed by the sequence 5-6-7-8
repeated 247 times. If you complete level 8 249 times, all the subsequent
levels use the layout from level 5.

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 used to flash 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 removed it.

You can't collect more than 4 spare lives unless you use the /U option.

There are no more extra lives to be had at or after the 1 million point mark.
Although this was a bug in the original Digger (a kludge really - Windmill
software never counted on anyone getting that far) I've kept it on in Digger
Remastered to give an extra little bit of difficulty to anyone that good.


Q: Help me! It runs too fast (or too slow)
A: 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 (for a
given speed setting), 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. You can also adjust the speed whilst the game is in progress
using the + and - keys.

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.


Q: Can you send me this other game I used to play called...?
A: No, try Gangsters (http://www.gangsters.org) or Altavista
(http://www.altavista.com) . I haven't got time to go searching the web for you
if you can't be bothered to work out how to do it yourself.


Q: Can I send you this other game I used to play called...?
A: No! Please, whatever you do, DON'T send me games over email - half the time
I have to download my email over a very slow modem and an expensive telephone
line, and the other half of the time I have very limited mailbox space. Sending
large binaries over email is known as mail-bombing and is extremely rude. If
you want to send something, email me first describing exactly what it is and
ask me if I want it. If I do, I'll tell you the best way for you to get it to
me.


Q: I have found a bug in Digger. Can you fix it?
A: First download the latest version from http://www.digger.org and see if your
bug still happens with that. If it doesn't, I already fixed it. If it does,
please send me details of the bug, the operating system you are using, the
command line parameters you gave to Digger and a .DRF file if you can make one
which reproduces the bug.

If you're having problems with the Windows version not going at constant speed,
I'm investigating and hope to have a fix soon.


Q: My computer does not know how to run .ZIP files. What do I do?
A: If you're using Windows, download Winzip at "http://www.winzip.com" and
learn how to use it. If you're using a Mac, see the next question. If you use
some other sort of computer, you really ought to know how to unzip files. I
won't send you an unzipped version. Unzipping files is a skill you really need
to learn if you're going to be downloading programs from the internet: it is an
industry standard format. Give a man a fish and he will eat today, teach him to
fish and he can eat forever.


Q: My Apple Mac won't run Digger. What do I do?
A: Go and buy a real computer, Macs are horrible! (See
http://homepages.enterprise.net/berrypark/andrew/computer/macs.html for
details) :-) Or you could, if you are so inclined, try to run it on a PC
emulator. Some people have reported limited success in doing so. You could also
try the Java version. Hopefully sometime soon a Mac programmer will write a
native version.


Q: I like Apple Macs and want to write a nasty message to you about that last
comment. Where should I send it?
A: To the wastebasket.


Q: How do I specify command line arguments?
A: This depends on how you load the game. If you load it from a DOS prompt by
typing the command "DIGGER" and pressing enter, then it is as simple as typing
the options after the word "DIGGER", i.e. "DIGGER /C 20" to play in CGA at
double speed.

If you're running it by double-clicking on an icon in Windows 95 or above,
right-click the icon, select properties and there will be a command-line box
which you can change in the same way (although instead of saying just "DIGGER"
it may say something like "C:\Games\Digger\Digger.exe" but it's the same
principle. In Windows 3.x press Alt-Enter whilst the icon is highlighted to get
a box with the command line.

Hopefully in the future there will be user friendly menus which will mean you
never need to use the command line.


Q: Where can I get the original version of Digger?
A: I don't know. It is impossible to download it from the internet because it
is hardware, not software (a copy protected floppy disk, as opposed to the
program on it). If you had that disk you'd still need an XT with genuine CGA
graphics and a 5.25" floppy disk drive to run it.

However, many people played the old Digger without the original disk. It is
possible to extract the program from its disk, a process known as "ripping". If
you do this, it still doesn't work because because the game is copy protected.
It is possible to remove the copy protection (a process called "cracking").
After these steps, the game will run but it will run too fast unless you have
an XT, and you won't be able to see it unless you have CGA. Also, if you were
to get a high score, it would try to save it on the disk in drive A, possibly
wiping out some of the information on any such disk.

The ripped copies of Digger, Styx, Moonbugs, Conquest, Rollo, The Exterminator
and Floppy Frenzy which you can download at http://www.digger.org have been
cracked and modified not to save their scores. Nothing else has been done to
them, however, so you they run too fast and the graphics are broken in some of
them.

A more original (although less useful) downloadable version of one of these
games would be an "image" of the original disk (not a picture but a file
containing all the data from the disk: boot sector, file allocation tables and
all.) I don't have any disk images of Windmill games, however (nor do I want
any - I have no use for them, except to put on this website, and I won't do
that unless there is sufficient demand for it).

If you actually want to play Digger, I suggest you download Digger Remastered.
It plays and sounds exactly the same as the original did, looks the same if you
use the /C option, and works on all the same computers as well as more modern
ones.


Q: Is this legal?
A: Strictly speaking, no. According to intellectual property law, a work
copyrighted by a company continues to be copyrighted for 75 years.

I have no moral objections to violating Windmill software's copyright by
re-releasing the game, and I feel you should have no moral objections to
playing it (unless you're doing it when you should be doing something else).
Copyright exists to protect intellectual rights, not to prevent people from
having access to software. I can think of two reasons why Windmill software
would want to protect their intellectual rights:

* To ensure that they are recognized as the true authors of Digger.
* To ensure that they make as much money as possible.

I have retained the original copyright messages in the game and I take pains to
ensure that Windmill are credited properly whereever possible so the first of
these concerns is taken care of. As for the second - Windmill hasn't made any
money from Digger for a long time, and if they insist I will relinquish all
rights to Digger to them to do with as they wish. Having Digger restored and
working on modern computers, they would be in a much better position to make
money from it than they would if I hadn't remastered it.

In conclusion, therefore, I think that Digger Remastered follows the spirit of
the law, if not the letter. And since laws, being so rigid, can never be
perfect, the world works much better this way (as any Digger fan must concur.)

For more information about abandonwarez and the associated legal problems, have
a look at http://www.mobygames.com/featured_article/feature=7/.


Q: Why doesn't the unlimited lives option work?
A: It does, it just doesn't do what you think it does. Unlimited lives does not
mean infinite lives. Unlimited lives means you can collect as many extra lives
(you get one every 20,000 points by default) as you like, not that you can die
as much as you like without the game being over. If you don't enable the
unlimited lives option, you can only collect 4 "spare" lives, as you could in
the original Digger.

If you want to live forever, try using the option /G:3599, which will give you
an hour's play with as many lives as you like, after which time you will
probably be bored anyway.


Q: Has Jo-Anne Kempe of Windmill Software replied to your email yet?
A: No. As soon as she does I'll let you know via the website or the Digger Chat
mailing list.


Command Line Options
--------------------
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 noticeable 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.
  /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.
  /O      = Go back to the beginning of the command line and start again. Handy
            for playing recorded games as screensavers.
  /K      = Redefine keyboard. To redefine all the redefinable keys, use /KA.
  /G:time = Gauntlet mode.
  /2      = Put two diggers on screen at once.
  /?      = Display this list.
  /A:1,port,irq, dma,rate,length
          = Use SoundBlaster sound, e.g. /A:1,220,7,1,20000,128.
  /V      = Synchronize timing to screen refresh.
  /U      = Allow unlimited lives.
  /I:level= Start on the specified level instead of level 1. You can't go on
            the hall of fame if you use this option.

/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.DLF").

/Q and /M don't completely disable sound and music, you can still toggle them
with the F9 and F7 keys.

/K lets you choose the keys you want to use to play the game with. Normally,
the program will let you redefine the keys to move Digger around and fire, but
if you override another key (by making the space bar fire, for example) other
keys will be redefined. If you specify the /K option, the program enters
keyboard redefinition mode before the title screen appears. In keyboard
redefinition mode, the name of each action which needs a key comes up on the
screen in red, and changes to green once you've pressed the key for that
action. Note that the name of the key does not appear on the screen: it would
be too complicated to program Digger with knowledge of all known keyboard
layouts. However, I may program it with knowledge of some of the keys in a
future version. I do not recommend redefining N, Esc or F8 as anything else, as
these keys cannot currently be redefined so this could cause confusion. To
return all the keys to their defaults, delete the DIGGER.INI file.

/G starts Gauntlet mode: infinite lives but only finite time. You can specify a
time on the command line, for example "DIGGER /G:60" for one minute play. If
you don't specify a time it defaults to 2 minutes. You can have anything up to
1 hour. Countdown stops when you pause and between levels, but not when you die
(so you get a time penalty of 5 seconds or so (depending on the game speed)
each time you die). Instead of an extra life at 20,000 points you get 15 extra
seconds. When playing back a recorded Gauntlet game be sure to play it back
with the same speed it was recorded, or the timer will be wrong. If you play it
back at a slower speed it will timeout before it's supposed to. High scores in
Gauntlet mode are saved in the same file as the normal scores, but are
separate. This same table is used no matter what Gauntlet time is used.
Gauntlet mode is currently one player only. Thanks to Marek Zgadzaj for this
idea - he played a hacked version of the original Digger to do the same thing.

/2 starts two player simultaneous mode. The first time you do this you will
probably want to use the command line "DIGGER /2 /K" as the default player 1
keys use both sides of the keyboard and you will probably want them to be only
on one side. Two player mode can be used with Gauntlet mode. The scores are
saved separately from the one player modes. The two player simultaneous game
has not quite been finalised yet - the rules may change slightly. Recording
works, but games recorded with this version might not play back with future
versions. When one digger dies the other can continue, and after a while the
digger that died will be reincarnated (if he has any lives left). He will flash
for a short time after being reincarnated. During this time, he is invincible.

/A may eventually be used to enable many different sound cards. However, the
only one currently supported is SoundBlaster, but most sound cards seem to be
able emulate this one. If you do not have a genuine SoundBlaster card, ensure
that your sound card is set up to emulate SoundBlaster before you run the game.
How you do this will depend on your card. If you've set up games before, you
should know how to do this. You should also know the port address, IRQ number
and DMA channel that your card uses. Factory defaults are usually 220,7,1. To
enable SoundBlaster sound, use the /A option as follows:
/A:1,220,7,1,20000,128. The first "1", after the colon, means SoundBlaster. No
other values for the first option have any meaning at the moment. The second
"1" (the fourth option) is the DMA channel, so if you use port 210, IRQ 5 and
DMA channel 3, the option is /A:1,210,5,3,20000,128. The 20000 is the sample
rate (this means 20,000 samples per second). You can change this: higher
numbers give better sound quality, but if this number is too high the sound may
break up. The last option is the buffer length. If the sound is breaking up you
can try increasing this instead of decreasing the sample rate. If the sound
seems to "lag" behind the action, decrease this value.

/U gives you the ability to save up as many lives as you like. Digger
originally only let you have up to 4 reserves. If you use this option, save up
more than 4 lives and get a score eligible for the hall of fame, the score you
obtained on the last few lives won't count (the score will be added up by the
original rules, and the game will end earlier).

There are two ways to record your game: either give Digger a filename when you
load it, or press F8 once your game is over. The filename used if none is
specified on the command line is composed of your score and the initials you
entered if you got a high score. 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). You can take control of a game that is playing by
pressing Ctrl-T. However, you will not then be able to record that game (that
would be cheating).

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.


Hall of Fame
------------
Welcome to the hall of fame. Your name could be here! All you need to do is
send me a recording of a game you played where you got more than 406,000
points. Recordings of all the official top scores are available in the
DIGEXTRA.ZIP file at http://www.digger.org


Rank Name                    Country         Score   Level Speed

  1  Karen Grigoryan         Armenia       1,561,475  127  40-120
  2  Kalin Savtchev          Bulgaria      1,206,875  139  60-110
  3  Plamen Babushcov        Bulgaria      1,092,525  122  60-100
  4  Stoian Dimitrov         Bulgaria      1,058,800  117  110
  5  Nikita Lukish           Russia        1,037,125  134  40
  6  Dror Bohrer             Israel          903,750  105  30-130
  7  Tomek Stochel           Poland          865,750  117  40-75
  8  Roman Tomczyk           Poland          823,650   99  30-200
  9  Batzorig Begzsuren      Mongolia        737,925   82  80-115
 10  Mike Wang               Australia       406,000   49  40

If the hall of fame games don't work, try the ones in the DIGEXTRA.ZIP file -
your web browser is corrupting them. I'll fix it soon so that Digger plays back
files even if they've been corrupted.

Karen Grigoryan does like to do something special with the first level of his
games. With his previous record he recorded thevoid.drf. Johnny Veliath did
this even more spectacularly in thevoids.drf - completely clearing 6 of the 8
levels. Johnny also designed a new, ultra-challenging set of levels ("Challenge
of the Nobbins") which can be found in the Digger extras pack.

Please note that games recorded with the /I option are not eligible for the
hall of fame, and that if you use the /U option, your fame score may be lower
than the total score from the game. See the "Command line options" for more
details.

If you can beat 406,000 you can get into the hall of fame. To save your game,
wait until you are back at the title screen (after the "Enter your initials"
screen, or when the "Game Over" screen has disappeared) just hit F8. Then exit
the program in the normal way. This will create a file with the extension DRF
and a name composed of your score and the initials you entered. You can then
send this to me.

If you have access to email, this is the best way to send it: simply attach the
DRF file to an email and send it to "fame@digger.org". If you don't know how to
attach a file to an email, simply open the DRF file in a text editor (such as
Notepad in Windows), select the whole thing, copy it and paste it into the
email message. If you don't have access to email, you can still send in your
DRF - put it on a floppy disk and snail-mail it to me at the address at the end
of this file. If you want your disk back send a suitable SAE as well.

For some more information on recording and playback, see the "Command line
options" section.

When sending scores, please check the website first to make sure that your
score is good enough. Also, please tell me your full name, nationality and
whether or not you want your email address published on the website.


About Remastering
-----------------
(Or "How the deed was done")

Remastering is a very long and complicated process, involving a deep
understanding of both C and assembly language, and how one is translated into
the other.

There are four main stages to the process:

* Disassemble
* Decompile
* Deshroud
* Rewrite

The disassembly stage is reasonably automatic. I use Microsoft's DEBUG utility
to dump the code and data segments into a text file, and lots of QEdit macros
to make the code more reasonable. I don't use a more complicated disassembler
such as Sourcer because the extra layer of complexity it uses actually makes
the code more difficult to understand at a fundamental level.

The decompilation stage is slow and boring, and I haven't yet worked out how to
do it automatically, so I use a "wetware" decompiler - i.e. my brain. I am
currently experimenting with automatic decompilation techniques which may open
up whole new realms of Remastering possibilities.

After the decompilation stage, the program is in the form of C source, but all
the information about variable and function names has been lost - this is
effectively "shrouded" source. The next stage is deshrouding, which is
sometimes extremely satisfying and sometimes extremely frustrating. During this
stage you get to find out all the hidden secrets of the program and exactly how
it works.

The rewriting part is the most fun bit. As PC technology has changed so much,
huge sections of the code have been made redundant and can be deleted or
substituted with much simpler lines. For example, 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. This is also where new features get added and
bugs eliminated. This is also the part that is never quite finished...

The other tools I used were Borland's Turbo C 2.0 to write simple utilities for
mundane tasks such as extract the graphics data and putting 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. Some
parts of Digger are still written in Assembler, and these are assembled with
A86. The whole caboodle is now compiled with Borland's C++ 4.52 compiler and
compressed using PKLITE.

I am always on the lookout for the next game to remaster, but it has to have
some particular properties:

* It must me free or abandoned by it's copyright owner.
* There has to be a good reason for remastering. In the case of Digger, it was
  to get the game working again. In the case of Sopwith, it is to get the
  network game working. Updating the graphics isn't a good reason if I don't
  actually have any replacement graphics (I'm not good enough at drawing to do
  them myself).
* It has to be a real unique or the definitive version of the game. For
  example, if you were to ask me to remaster Pacman I wouldn't even know
  exactly which game you are referring to because there were so many versions.
  There are also lots of good versions which work on modern machines, so I
  would refuse anyway.
* I have to enjoy playing the game! Since I don't have much patience with
  games, it therefore has to be one that I can pick up and don't have to learn
  - it must be fun to play straight away.
* It must not be too big or remastering will take forever!


Running on Other Platforms
--------------------------
Running DOS Digger under Windows 3.1
This works fine, expect for the sound, which cases the game to crash when you
complete the first level. To solve this problem, either use the /Q option to
turn all the sound off, or the /A option to use the SoundBlaster card if you
have one. Better still, exit Windows (by selecting "Exit Windows" from the
program manager's File menu) before you play the game - the timing will be more
accurate.


Runing DOS Digger under Windows 95 or 98
To use PC speaker sound, create a shortcut to Digger.exe, right-click the
shortcut, click "Properties", "Program", "Advanced..." and ensure that "Suggest
MS-DOS mode as necessary" is unchecked. Better still, run the game in MS-DOS
mode - the timing will be more accurate. To do this, press "Start", "Shut down"
and select "Restart in MS-DOS mode". You can then run Digger from the MS-DOS
prompt. You can also set up a shortcut to run Digger in MS-DOS mode ("Use
default settings" will usually work). When running Digger in MS-DOS mode, be
sure to exit using F10 and not Alt-Ctrl-Del, otherwise your computer will
always load Digger when it starts. If you find this is happening and F10
doesn't make any difference, boot your computer in Safe mode and remove any
lines referencing "Digger" from your AUTOEXEC.BAT and CONFIG.SYS files.


Running DOS Digger under OS/2
Digger can be run under OS/2 in a full-screen DOS session, but the music may be
a little distorted. To fix it, set:

HW_TIMER         ON
IDLE_SENSITIVITY 100
INT_DURING_IO    ON
SESSION_PRIORITY 32

OS/2 displays the Windows icon with no problems. Thanks to Mariusz Borkowski
for this information.


WinDig
To run WinDig you need to have Windows 95 or 98. It will also run on Windows NT
4.0 if you have service pack 3+. (I'm not sure about previous versions of NT.)
DirectX 6 is especially recommended as without it there will be no full-screen
mode and a possible performance penalty. DirectX 6 can be downloaded from the
Microsoft website at "http://www.microsoft.com/directx/download.asp" if you
don't already have it but beware: it is a large download (7Mb).

You'll need at least a 486 to play WinDig, but a Pentium is recommended. A
sound card is also recommended (or you won't be able to hear the sound) as is a
display capable of 256 colours or more.

Things that are working

* Single player / 2 player game
* 2 player simultaneous mode
* Gauntlet mode
* Change speed with /S switch, +/- keys on num pad, and with menu
* Recording with F8 and with menu
* Playback of recorded files with /E and /P switches and also with menu (use T
  instead of CTRL-T)
* VGA/CGA graphics
* Switch between Windowed and Fullscreen mode using Alt-Enter or Graphics menu)


Known problems
for version (TD WIN 19990717)

Graphics

* Changing your screen resolution/color depth or starting a full-screen DOS
  session while WinDig is running will cause WinDig to crash.
* Colors are a bit strange when the game is running in full-screen mode and the
  menus are activated or a dialog box is displayed.
* If Windows is running at 256 color depth and you run WinDig in full-screen
  mode, the colors in the main menu screen may occasionally be wrong.

Keyboard & Joystick:

* Keyboard remapping doesn't work yet. (Unless you want to manually edit the
  Digger.ini file...)
* No joystick/game controller support yet.

Sound:

* The sound might break up/skip a bit more than the DOS/SoundBlaster version.
* The end-of-level tune plays too slowly on some computers (when the music is
  on).
* Other programs cannot use the sound card while WinDig is running, even if the
  sound in WinDig is turned off.
* If no version of DirectX (DirectSound) is installed on the computer but a
  sound card is installed, you will still hear sound and music, however, the
  sound may lag behind the action more than it would if DirectSound was
  installed.

Other:

* Using the /R switch causes WinDig to crash at the end of the game. Use the F8
  key or the menus to record your game instead.
* The game continues to run and accept keyboard input even when it is in the
  background.
* If WinDig cannot find the level-file specified in the digger.ini file, it may
  tack on the .DLF extension (even if the filename already has an extension).
  This may eventually cause WinDig to crash at startup. If this happens, erase
  the LevelFile= line from the DIGGER.INI file.

This hasn't been tested on very many computers, so I'm sure there are many,
many more problems that I don't know about yet. I apologise if the program
crashes, or locks up your computer or something. But if it does do something
like this, please let me (Tim Draper) know and I will try to fix it as quickly
as possible.

If you change the sample rate or buffer size in the dialog box, you must
restart the program for the changes to take effect. Don't put anything
unreasonable as the sample rate, since this may cause the program to crash on
start-up. (You can edit the INI file if this happens.)

The 'Asynchronous' option improves the performance of the game while in
Windowed mode only. You may notice that when this is checked, some of the
flashing sprites that you normally see (when pushing bags, etc.) don't flash.
This option has no effect when in Full Screen mode.


RiscOS Digger
This port works quite well, but there are a few rough edges: the sound is
rather coarse and there are no CGA graphics. It's also quite thoroughly out of
date - a number of the newer features are missing.


SDL Digger
This works with FreeBSD (using the console graphics driver) and SDL (a graphics
API which has been ported to many platforms: Gnu/Linux, Win32, FreeBSD, BeOS,
MacOS etc.).

This distribution does not include binaries but there are makefiles for various
platforms. For questions, comments and suggestions on this version, email Maxim
Sobolev.

Building Mini-HOWTO
If your system is already supported by the Digger/SDL (currently FreeBSD, Linux
and Windows with Cygwin toolkit) then do the following:

* Download Digger's source tarball.
* Unpack it.
* Edit Makefile.sdl to uncomment appropriate "ARCH = your OS" and comment all
  others.
* Make sure that you have the SDL library installed, if not then install it.
  The SDL library can be found at http://www.devolution.com/~slouken/SDL/
* Build it using "make -f Makefile.sdl".
* Have fun with Digger. To enable sound start it with "/A" option.

NOTE: If you are using FreeBSD, then it would be mach easier for your to check
official ports collection first, as it is likely that when you are reading this
words Digger's port is already there.

Porting mini-HOWTO
It should be fairly easy to port Digger/SDL to any platform which supported by
the SDL library and has GNU Make, GNU C compiler and libz comression library on
it.

* Edit Makefile.sdl to replace "FooOS" with actual name of your system.
* Define additional flags necessary for compiler to find various include files,
  libraries etc., and fill where appropriate.
* Edit def.h:

*   If your system is a UNIX-like (API's, filesystem layout, memory management
    etc), then replace "YOUR_UNIX_LIKE_ARCH_GOING_HERE" with actual name of
    your OS.
*   If your system has a flat memory model (most modern protected-mode system)
    then add its name to the list of OSes for which FLATFILE should be defined.

*   If your system doesn't have strup() function then add its name to the
    section where "fbsd_sup.h" being included and make sure that you have added
    fbsd_sup.c to the list of object files for your system in the Makefile.sdl.

*   If your system doesn't have stricmp() and strnicmp() string-comparing
    functions, but instead has strcasecmp() and strncasecmp() then add the name
    of your OS to the appropriate section of Makefile.sdl.

* Try to compile Digger. Do not give up if something will go wrong, try to
  resolve the problems instead - it should not be very difficult to sort out.
* If you have succeded please report your progress to Maxim Sobolev or Andrew
  Jenner


Protected mode Digger
Currently this doesn't do much more than Real Mode Digger. Notable additions
include title-screen keyboard commands and configuration menu, support for
joysticks (and other game controllers), a different sound engine which supports
more soundcards than Real Mode Digger and enhanced 256 colour graphics. The
author, David Down, has big plans, though, and there may be lots more exciting
new features in the future. A 386 and VGA are required, SVGA is required if you
want high-res graphics. Note: this version still has a few rough edges and is
currently completely unsupported by AJ Software.


Emulators and virtual machines
Digger has been successfully run under a PC emulator on the Mac and using
VMWare on Linux. It is not supported on these platforms, however.


The Future
----------
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 8088).
* I'm planning to separate the VGA graphics from the executable file and make
  CGA graphics the default mode. This will allow easy addition of extra sets of
  graphics in the future.
* Updates to the sound routines - better quality sound through sound cards and
  in non-DOS versions, WAV output.
* Updates to speed routines which should fix the speed bugs which seem to
  happen on some computers.
* Option to use cyan/magenta/white graphics as the original did on some CGA
  cards.
* Improve the playback routines so they are less sensitive to problems with the
  line endings.
* Separate keys for 1 player mode and 2 player simultaneous mode
* Improvements to website:

*   Testimonials section
*   Screenshots section

* Graphics editor
* Background music editor
* Changes to two player simultaneous mode. Is it too easy? Should some monsters
  reappear when only one digger dies? Separate keys for one and two player
  modes? No friendly fire option? Team total score?
* Network play (Null modem, modem, network, internet).
* More than two players, perhaps with an expanded play area.
* Digger 3D - a true 3D game with 3D playing field and 3D characters.


Links
-----
http://www.digger.org
The latest version of this document is available at my own site, redesigned by
Aycan Gulez. Various other bits and pieces, including recorded games are also
available here. Check back here often for updates. The 80s Server's "Totally
Awesome site of the day" on January 25th, 1999.

http://www.digger.org/styx
The Styx site is dedicated to another great Windmill game which is in the
process of being remastered.

http://www.sopwith.org
Sopwith dot org is the home of the latest greatest remastering project,
Sopwith.

http://rainbow.mimuw.edu.pl/~maf/digger/
Marek Futrega has a copy of his Digger Java applet on his site and it's better
than the one here because it saves the high score table.


rg/rustic/rustic.shtml
The Rustic Classics version of Digger is a very amusing Digger clone not based
on the original Digger source. The guy who wrote it, Philip Hassey, doesn't
want any money for it, just marbles (I guess he's lost his...)

http://www.geocities.com/SiliconValley/Horizon/9754/
SteppenWolf has written another Windows/DirectX version of Digger. It looks
good but isn't nearly as fun to play as the original. It's also a 6Mb download.

http://www.geocities.com/TimesSquare/Maze/1723/
Andy Skyman created this shrine to Digger. There are some bits of information
and programs about getting the original Digger to run on modern machines as
well, if you're interested.

http://www.geocities.com/SunsetStrip/Underground/3842/Digger/
Chris's Digger page was somewhat out of date last time I looked at it.

http://conradie.tmfweb.nl/Digger/Main.htm"
This site is a blatant rip-off of www.digger.org but I'm not bitter. I just
wish I had his email address so that I could tell him to put a link back to
here so that visitors to his site knew where to go for the latest versions.

http://home.worldonline.nl/~terdudio
Reinder Kraaij of Holland started a rewrite of Digger in Java before being
beaten to it by Marek Futrega.

http://www.digger.subnet.dk
I barely understand this site at all, but it's obvious what it's about!

http://www.hole.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 - neither the speed nor the background music is
quite right. The levels from Digger's Loader are available for use with this
version of Digger - see the "Extra levels" section of this file for more
details.

http://klyatskin.da.ru
Constantine Klyatskin of Russia has created a version of Digger for the
Palmpilot. It is shareware and costs US$12.

http://dmoz.org/Games/Video_Games/Titles/D/Digger/
Check out the Digger category in the Netscape Open Directory.

http://kkolding.8m.com/digger.htm
Kenneth Kolding's Digger page.

http://metu-alumni.org.tr/bonus/eylul/digger.html
Here is a review of Digger written for a Turkish computer magazine.

http://www.doka.ru
Doka are soon going to release (commercially) a game called Digger 2000. I'll
let you know more details when I have them. For now, though, there are some
nice screenshots at that site.

http://www.oldskool.org
The Oldskool PC used to host the Digger site and is an invaluable reference for
anyone interested in old games or demos and running them on modern PCs.

http://www.gangsters.org
Gangsters is a great place to go if you want to download a computer games that
is too old to be found in the shops. There are no actual downloads on that
site, just links to sites that do carry the games.

http://www.mobygames.com
Mobygames is the ultimate online encyclopedia of computer games. Go there and
vote for your favorite computer game!

http://www.popcornsong.com
Popcorn has everything you ever wanted to know about the song "Popcorn" and
lots more, including lots of versions of the music in various playable formats.

Know of any more? Get in touch!


What's New?
-----------
18 Oct 2000: Two new links added to the sidebar - Styx and Sopwith are the
latest games to get the remastering treatment.

13 Apr 2000: Score saving bug in SDL Digger fixed.

7 Apr 2000: Maxim Sobolev's SDL version released, allowing users of FreeBSD and
GNU/Linux to play Digger natively.

8 Feb 2000: Minor bug in level editor fixed (thanks for Mariusz Borkowski for
finding it).

29 Jul 1999: Marek Futrega's Digger Java Applet added to the website.

18 Jul 1999: Major new version of WinDig: CGA graphics, DLF and DRF files on
the menu. The source code to the changes has not been uploaded yet.

11 Jul 1999: Major website redesign and updates to many versions. New level
editor.

24 May 1999: The source code is now available from the website.

6 May 1999: Minor bugfix release. Protected mode version released.

16 Apr 1999: Minor bugfixes in WinDig.

8 Apr 1999: WinDig now doesn't need DirectX at all. DOS Digger will now record
and playback really huge DRF files correctly.

3 Apr 1999: Update to Windows version: now runs correctly in 256 colour mode
and without DirectDraw 6.

2 Apr 1999: More slight bug fixes in DOS version.

1 Apr 1999: Slight bug fixes in both DOS and Windows versions.

28 Mar 1999: Windows 95 version added, thanks to Tim Draper. SoundBlaster music
now works. Various other tweaks and bug fixes.

30 Jan 1999: Bug fix: Recording two-player simultaneous games with the music
off now works properly. If you have any two-player simultaneous recordings
which you want to keep but which now do not playback, send them to me and I'll
see if I can fix them.

28 Jan 1999: Bug fix: You can't lose all your lives in Gauntlet mode any more.

21 Jan 1999: Bug fix: In old-style two-player mode, player one doesn't get all
the points for bags killing monsters.

18 Jan 1999: Bug fix: Digger doesn't stall if you pause for too long.

15 Jan 1999: Unlimited lives (/U) and start at different level (/I) cheat
switches added to Digger at the request of players.

13 Jan 1999: SoundBlaster cards using IRQ numbers 8 to 15 should now work. Bug
with more than 4 spare lives fixed. Vsynch option restored for those with
serious timing problems.

12 Jan 1999: The SoundBlaster sound should now work on genuine SoundBlaster
sound cards. Thanks to Tomer Gabel for finding the cause of this bug.
Recommended extension for level data files changed from .DAT to .DLF.

9 Jan 1999: Yet another bug fix: You now don't die twice if you die whilst
completing a level.

8 Jan 1999: More bugs in old two player mode and keyboard redefinition fixed.

5 Jan 1999: SoundBlaster sound added, although it may not work properly and
there's no background music yet. Bug fixes: Old two player mode now works, and
some bugs in the keyboard redefinition routines have been fixed.

15 Dec 1998: Bug fix: keyboard redefinition in two player simultaneous mode now
works.

13 Dec 1998: Two player simultaneous mode (/2 option) added.

9 Dec 1998: Digger level editor added. This is a Windows program and should be
pretty self explanatory to use, so there isn't any information about how to use
it here.

7 Dec 1998: Bug fix for Gauntlet mode high score table, added /V and /T command
line options to help with timing problems.

25 Nov 1998: Gauntlet mode added.

20 Nov 1998: Minor bug fixes to do with the high scores, playback and taking
over.

18 Nov 1998: Minor timing bug fixed. Major timing bug caused by fixing minor
timing bug fixed.

14 Nov 1998: Hall of fame revamped.

13 Nov 1998: Keyboard redefinition (/K option) added.

4 Nov 1998: New URL: "http://www.digger.org". Minor bug fix for /O option.

21 Oct 1998: Minor changes so you can playback a recording as a screensaver.

18 Oct 1998: Another minor bug fix: you can't score twice for killing one
monster.

17 Oct 1998: Update to RiscOS version: minor bug fixes and sound added.

16 Oct 1998: RiscOS version added. Minor bug fix to DOS version making the
keyboard work more like it did in the original. Speed control and playback
cheat added.

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.

13 Oct 1998: Digger chat mailing list added. You can subscribe at
"http://www.onelist.com/subscribe.cgi/diggerchat".

22 Sep 1998: Four new sets of levels added in the extra level pack.

8 Sep 1998: Trivia section added in the FAQ list.

7 Aug 1998: If you liked Digger, try Styx, the latest game from Windmill
Software / Andrew Jenner.

28 Jul 1998: DRF compressor program (now obsolete) and DRF files added.

25 Jul 1998: Digger should now run on slower computers.

21 Jul 1998: Minor changes to website and documentation, added counter (see
"http://w116.hitbox.com/Stats?hb=W42904163261" for our statistics.)

20 Jul 1998: Website was redesigned and "What's New?" section was added.


About AJ Software
-----------------
Andrew Jenner is a third year undergraduate at Queens' College, Cambridge, UK.
He studies Physics and tinkers with old computer games in what he laughingly
calls his "spare time".

Andrew has been messing about with computers since he was knee-high to a
grasshopper, and his written many programs, the best of which can be downloaded
from his website at "http://homepages.enterprise.net/berrypark/andrew".

Andrew has always enjoyed playing Digger and, some years ago, designed some new
high-resolution 16 colour graphics for it. It took 3 years before he got around
to disassembling the game and making it work with the new graphics. He had no
idea what he was starting - Digger became an unexpected success and spawned
ports, level editors and new features galore. In fact, it's now got completely
out of hand.

Digger was his first "Remastered" game, but he has since remastered Styx and is
now working on Sopwith.


Mailing Lists
-------------
There are two Digger mailing lists, one to receive information about new
versions and one to chat about Digger, swap DRFs etc. Note that updates are
sent to the Chat mailing list as well as the update list, so there's no need to
subscribe to both.

To subscribe to the Digger Update mailing list, go to
"http://www.onelist.com/subscribe.cgi/diggerupdate" and sign up there. To
unsubscribe or change your settings, you need to visit "http://www.onelist.com"
and login.

To subscribe to the Digger Chat mailing list, go to
"http://www.onelist.com/subscribe.cgi/diggerchat" and sign up there. To
unsubscribe or change your settings, you need to visit "http://www.onelist.com"
and login.

The archives from the old Digger Chat mailing list (which was destroyed due to
a misunderstanding) are available at http://www.digger.org


Contact Us
----------
If you have access to email that is the best way to contact me - my address is
andrew@digger.org

If not, you can snail-mail me at:

Andrew Jenner
Queens' College
Cambridge
CB3 9ET
ENGLAND

You can also visit my personal website 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".

Many thanks to Matthias Wermann (matt@digger.org) for the very generous
donation of the digger.org domain name and web server. Matthias runs an ISP,
the URL of which is "http://www.emsnet.de".

Thanks also to Avi Ben Zev for setting up the original Digger Chat mailing list
and for getting in touch with Windmill Software.

The Windows 95 version of Digger is by Tim Draper, who can be contacted on
"tdraper@trytel.com". Let him know if you have any problems with that version.

The Unix version is by Maxim Sobolev, whose email address is
"sobomax@altavista.net".

Julian Brown (jules@digger.org) is guilty of the RiscOS port - if you use it
write to him and encourage him to update it.

David Down (faeries@mpx.com.au) did the Protected Mode version. Any comments
about that should be directed to him.

Marek Futrega (marek.futrega@students.mimuw.edu.pl) created the Digger Java
Applet.

Finally, many thanks to Jim Leonard (trixter@oldskool.org) for all his advice
and encouragement.