Doomdark's Revenge (DOOMDARK_MANUAL.TXT)


FAQ: Site
FAQ: Archives

RSS Twitter Facebook


Beyond Software

Mike Singleton


A sort of role-playing game in which you control characters as
they fight against evil, rescue a prisoner and/or search for
magical objects.  As you move characters around the land of
Icemark you are presented with views of the landscape which they
can see.

R=Check Place 
T=Check Battle 
Y=Check Army 
U=Check Person

The background story is explained in the instruction manual,
which we don't have at the moment, but it goes something like
this: Doomdark has been defeated, but his successor Shareth the
Heartstealer has struck back and kidnapped Morkin the Free, son
of Luxor the Moonprince.  He is being held in the Plains of
Anvaril, surrounded by the frozen wastes at the North of Icemark.

His heart has been turned against Luxor and only Tarithel the Fey
can break Shareth's spell and bring him back to the side of good.

Shareth, meanwhile, is intent on gathering together an army to
defeat Luxor.

Your mission, should you choose to accept it, is to rescue Morkin
the Free, to defeat Shareth the Heartstealer in battle and to
search for the Runes of Finorn - an ancient and magical message
which may be read by Rorthron the Wise.  When this has been done
you must return Luxor and, if they survive, Rorthron, Morkin and
Tarithel to the Gate of Varenorn and at nightfall your task will
have been completed.  If this proves too difficult you may opt
for just one or two of the above: if Shareth is defeated or
Morkin is free you have gained a partial victory.  Should Morkin
or Tarithe be killed you can still achieve this but Luxor's
overwhelming grief could well be his downfall.  If Luxor is
slain, however, then Shareth has won victory.

Apart from the Runes of Finorn there are three magical items
scattered around Icemark to help you.  They are Luxor's Crown of
Varenand, Tarithel's Spell of Thigrorn and Morkin's Crown of
Carudrium.  Each warrior also has a weapon bearing his name which
he may find and pick up for extra strength.  The special power
of each of these items may be used once, although carrying any
weapon will always give an advantage in battle.

The land of Icemark contains several kinds of terrain: plains,
forests, hills and mountains, as well as the frozen wastes which
are impossible to cross.  The speed at which a character can
travel depends on the terrain; for instance, travelling through
mountains takes longer and is more tiring than travelling through
plains.  Each race of people has a favourite kind of terrain
which they find easier to travel through; for instance the Fey
people can travel faster through forests than other people
[however, at least in my copy of Doomdark, this was not so due
to an identifiable bug in the code].  Travelling can be made more
difficult by the strength-sapping mist rolling across the country
which was created by Shareth the Heartstealer, and by dragons and
other wild creatures travelling across the land.  However, should
your trusty steed be killed you can sometimes find stray horses
to replace it.  Losing your horse of course makes you slower and
more quickly tired.  To kill wild creatures or to change horses
you just walk through them.

Beneath the land of Icemark is an extensive set of underground
tunnels.  You can enter and exit from the tunnels at certain
places described below.  The underground system is the only way
to reach Morkin who is surrounded by the Frozen Wastes.  In a
tunnel you are safe from attackers but there will be dragons,
skulkrin and trolls to delay your journey.

Icemark also has several kinds of landmark.  They are as follows.

City:      Provides a fortified dwelling place for recouperation
for commanders and armies friendly to those who own it.  May be
taken with enough force.  A commander may recruit men from the
city guards or post men from his army to guard the city.  The
population of a city slowly grows as time progresses.

Fortress:  Similar to a city, but slightly less fortified.

Fountain:  Provides respite.  A person who arrives at a fountain
will usually be refreshed by the Springs of Life, but some are
inhabited by skulkrin.

Gate:      Provides an entrance to underground tunnels.  Dragons
can sometimes reside here, or you may find a magic spell.

Hall:      Provides a home for the night.  You could find shelter
or new courage by staying here, but sometimes you will find that
trolls have taken up residence.

Hut:       Similar to a hall, but smaller.  Skulkrin or wolves
may live here.

Palace:    Provides an entrance to underground tunnels.  You may
find a spell here, or if you are lucky some horses.  If you are
unlucky you will find dragons.

Pit:       Provides an entrance to underground tunnels. 
Creatures and spells from the underworld may emerge here, but if
you are lucky you will receive the Springs of Life.

Stones:    A mystical place where you may find a spell for good
or evil or occasionally some dragons.

Temple:    A mystical place where you may find a spell for good
or evil and an underground entrance.

Tower:     The dwelling place of the Wise.  You will receive a
word of guidance upon arriving at a tower.

You control each character independently using the person select
keys.   The four main protagonists have their own keys (although
the Morkin key does not work until he is back on the side of
Luxor); the others can be selected by pressing the 'select' key. 
The 'more' key can be used to page through the options if there
are more than ten of them.  Each character has eight hours in
which to travel or rest.  Any character who still has hours
left in the day can be moved at any time.  You can look around
by using the direction keys.  The 'look' key is used to give a
view if one is not currently on the screen (because some
information is there instead).  To move forward, press the 'move'
key.  Moving in the 'diagonal' directions takes up to 1.5 times
as long as moving North, South, East or West.  In order to do
something other than moving, such as resting for the remainder
of the day, attacking an enemy or entering an underground tunnel,
press 'choose'.  Information about the location (including
whether there is an object on the floor and information about any
person who might be standing just ahead of you) can be viewed
with 'check place'; similarly, 'check battle' provides
information about the previous night's battles, 'check army'
displays information about the character's army and 'check
person' displays information on the character's personality.

When all characters have done all their moves for the day, press
the 'night' key.  There will be a delay while the computer moves
all of Shareth's forces and the independent characters,
calculates the results of battles, and refreshes the spells and
wild creatures which may be found at various locations in
Icemark.  Eventually, dawn breaks and you can resume the game by
pressing the 'dawn' key.

When you are standing before an enemy - or anyone that is not
your friend - you have two choices: to approach them for
negotiations or to attack them.  Either choice may be made by
pressing the 'choose' key (as long as it is still daytime).  If
you approach them and fail then they will attack you.  If this
happens, or if you attack, then the rest of the day will be used
up in fighting; the result of the battle will be decided during
the night.  If enemy characters are still alive and occupying the
same locations by the time dawn breaks then you have the choice
of moving away or continuing the fight by remaining in the same
place.  In order to approach a character he must be standing by
himself.  If you approach him and succeed then you will be given
control of that character and be able to move for the rest of
the day.  You are more likely to succeed in recruiting a
character if you choose someone to approach him whose personality
is similar to his.  However, it goes without saying that you will
never manage to turn Shareth the Heartstealer away from evil, and
only Tarithel will successfully be able to approach Morkin.

This game is the sequel to Lords of Midnight




Hacks (various programs which can tell you more about the current
state of the game, print out a map, etc)

End of Game

If Shareth is killed and all four of the main characters gather
at the Gate of Varenorn then an overwhelming victory will have
been won and the watchwords of Midnight will be revealed.
Otherwise, to end the game, Luxor must be at the Gate and either
Shareth must be killed or Morkin must be with Luxor.  A worthy
victory can be won if Shareth is still alive; a noble vitory is
won if she is dead.  How worthy or noble the victory is depends
on how many of the four characters are assembled and how many of
them are carrying their magical items.

Magical Items
Use of a crown summons all the Moonprince's forces to your
location.  Use of the Spell of Thigrorn transports you to
Morkin's location.  Use of the Runes of Finorn gives a very
refreshing rest to all the Moonprince's forces.  Also, merely
carrying the Runes of Finorn will protect you from being killed
in battle, and carrying any of the four magical items will
make you more persuasive when approaching people for
negotiations.  Using any weapon gives yourself a refreshing rest.

Spells and Creatures
Each morning except possibly the first, creatures occupy
approximately one in every four land locations, and a spell or
creatures occupy every landmark, apart from those occupied by
people.  Which creatures or spells you find is indicated by the
following table.

Place    | code 0 | code 1 | code 2 | code 3
Plains   |dragons |skulkrin|wolves  |horses
Mountains|dragons |dragons |trolls  |wolves
Forest   |dragons |skulkrin|wolves  |wolves
Hills    |dragons |trolls  |wolves  |wolves flames=Flames of Dawn
Gate     |dragons |claws   |flames  |blood  claws =Claws of Night
Temple   |flames  |thorns  |blood  |languor blood=Blood ofCourage
Pit      |trolls  |wolves  |thorns|springs thorns=ThornsofDespair
Palace   |dragons |horses  |claws   |blood springs=SpringsofLife
Fortress |dragons |wolves |shelter|shelter languor=LanguorofDeath
Hall     |trolls  |shelter |shelter |blood
Hut      |skulkrin|wolves  |shelter |shelter
Tower    |guidance|guidance|guidance|guidance
City     |dragons |shelter |shelter |springs
Fountain |skulkrin|springs |springs |springs
Stones   |dragons |flames  |flames  |languor
Tunnel   |dragons |skulkrin|trolls  |trolls

The code number can be obtained either from the location by the
formula [444(x+64y) MOD 6151] MOD 4 or from the last part of the
name of the landmark using the following table.

 code 0 |  1  |  2  |  3
    orn |  il | iel |  im
     uk | ium |  ia | eon
     ay |  ak | arg | and
    ane | esh |  ad |  un

If you get "guidance" then the program chooses a random character
and selects one of the following.

 - If the character is not loyal to the Moonprince and is alive
then the guidance is the location of this character.
 - If he does not have his own weapon or magical item then the
guidance is the location of this object.
 - Otherwise the guidance is the location of Shareth the

Travelling time

The time taken in hours for a person to advance one position is
the sum of T1, T2 and various adjustments defined as follows.

T1 is a constant depending on the terrain type of the destination
location, taken from the following table.

  Plains    1/4
  Mountains 2
  Forest    1
  Hills     3/4
  Any other 1/2

T1 is instead [in theory] set to zero if the terrain is the
person's favourite, as listed in this table.

  Luxor      city
  Morkin     plains
  Rorthron   tower
  Tarithel   forest
  Shareth    plains
  Feys       forest
  Barbarians hills
  Iceguards  plains
  Giants     mountains
  Dwarves    tunnels

T2 is a constant depending on the speed of the individual, as

          riding     walking
  Luxor      3/4        1 1/2
  Morkin     3/4        1 1/2
  Rorthron   1/2        1
  Tarithel   1/2
  Shareth    1/2
  Feys       3/4        1 1/2
  Barbarians 1 1/4      2
  Iceguards  3/4        1 1/4
  Giants                1 1/4
  Dwarves               1 1/4

The adjustments are half an hour each for:
 - walking into mist (except Shareth and the Iceguards)
 - diagonal moves
 - killing creatures,
and also 1/4 hour if the person is not swift or 1/2 hour if he
is slow.

Each person has 7 3/4 hours initially, and can move until the
last quarter is used up.


A character gets more tired every time he makes a move.  The
amount by which the tiredness is increased is one unit (described
below) except when:

 - he encounters wild creatures (2 units)
 - he walks through mist and is not Shareth or an icelord (2
 - he walks into mountains and is a giant (2 units)
 - he walks into mountains and is not a giant (3 units).

A unit is the sum of two numbers, the first being 2, 4 or 3
according to whether the character is strong, weak or neither,
and the second being from the following table.

          riding  walking
  Luxor           1        2
  Morkin          2        4
  Rorthron        0        1
  Tarithel        2        3
  Shareth         2        4
  Feys            1        2
  Barbarians      1
  Iceguards                2
  Giants          0
  Dwarves                  3

A character becomes more despondent by 6 every time he makes a
move in mist and is not Shareth or an icelord, and by 32 every
time he is kicked out of a battle (see battles).


When character A approaches character B, a count is made of the
number of attributes (such as 'good' or 'loyal') which A and
have in common, excluding 'swift' and 'slow'.  This number
then adjusted as follows.

 - add 1 if the B is not loyal
 - double the number if B is treacherous
 - add 3 if A is the liege of B
 - add 2 if A is carrying any of the magical items.

If the total is 4 or more then the approach succeeds.


When a group of people who are not all friends are gathered
together in one place, each of those people in turn becomes
person A against a person B who is chosen at random from A's foes
at that location.  If a city (or fortress) contains a person or
people who are unfriendly with its owners then the city's army
becomes "person" A against a random person B from A's foes at
that location.  The results of a battle between A and B are
calculated as follows.

 - If A is a person, let K = (2*reckless+despondent+tired)/4. 
If RND<=K (where RND is a random number between 0 and 255) or if
A is carrying any weapon, then A will attack B personally:

   * if B is carrying the Runes of Finorn then B is unharmed.
   * with 25% probability, B will lose his horses (unless B has
no horses or is Shareth or Tarithel).
   * if the RND calculated earlier is both odd and more than the
     recklessness of B then B will be killed, unless B has a
weapon, in which case he has 69% chance of surviving.

 - The army of A then attacks the army of B, followed by the army
of B attacking the army of A. Each battle between army 1 and army
2 is calculated as follows.

   * A value C for each army is calculated from
(tiredness+constant)/2, where the constant is taken from the
following table depending on the type of army.

           riders  warriors
     Moonguard    220
     Fey          200     150
     Barbarian    180     140
     Iceguard     220     180
     Giant                180
     Dwarf                160

This constant is divided by 2 if the army belongs to a city (or
fortress).  Then the number of warriors lost by army 2 in the
battle is ((N1*C1)/C2)*(RND/256) where N1 is the size of army 1.
If this number is more than half of the size of army 2 then army
2 and its commander will be 'kicked out' and placed in a nearby
location (the commander of army 2 will then be said to have won
a victory).  If a city loses its whole army then it will change
ownership.  If a commander loses his whole army then as well as
being kicked out he will be attacked by 'the sword'; the rules
of this battle follow those for people described above.

Enemy Strategy

Bits 4-7 of each element of table 13 describe the movement of a
character with a number from 0-3, as follows.

0: Move towards the character's liege (if this person is dead
then find his liege, and so on.  If all the lieges are dead then
move towards Luxor instead).
1: Move towards the character's foe (if this person is dead then
find his liege, and so on as per (0)).
2: Move towards the character's weapon or magical item, if it is
on the ground, otherwise move towards the character's fortress
or city.
3: Move towards the character's fortress or city, except Shareth,
who moves towards the City of Glireon.

During the night all forces not loyal to the Moonprince are moved
according to this pattern, but first the number is changed as

 - if a character has a liege who is moving with code 0 or 1 then
he will move with code 0.
 - otherwise, if a random number from 0-15 is less than 4 then
the character's code is changed to this number.  If it equals 4
then the character is not moved.

A character will walk in the direction specified, picking up any
item that he sees on the ground, until nightfall or until he gets
very tired or meets a foe, at which point he stops.  The
character will always attempt to approach the foe if they are the
only two people in the location.  If when dawn arrives the
character is still in the same location as a foe then he will
move on with 50% probability.



I=Icelord               Example: G Imgarorn: Fortress/Citadel of
G=Giant                 Imgarorn the Giant. Exceptions noted

All site names are created algorithmically from the map. There's
a fixed seed at the upper left corner of the map, and the game
traces recursively you position to this point, creating unique
names (the name tables will be shown later) for each zone
(plains, forest and so on). A citadel or fortress stands as a
zone, and it gets its name the same way. There are 128 such
sites, and 124 owners. The first 5 sites are special; their
owner is not the character with the site name (as in all the
others).  There are 5 persons which receive special treatment:
Luxor the Moonprince, Morkin the Free, Tarithel the Fey, Rorthron
the Wise and Shareth the Heartstealer. Shareth owns the City of
Imiriel. The other four are foreigners.

This is the full character table:

 0 S Luxor    32 I Berudrarg  64 D Torormarg  96 B Thorthak
 1 S Morkin   33 I Imgudrur   65 I Ushangrane  97 F Thormand
 2 S Tarithel  34 I Talorthane  66 I Fangrorn   98 B Anvorthun
 3 S Rorthron  35 I Morangrim  67 I Carangresh  99 F Imgormand
 4 S Shareth   36 G Obortharg  68 G Anvildrak  100 F Carorthorn
 5 G Imgarorn  37 G Glortheon  69 I Anvarorn  101 B Imgorad
 6 G Ingormad  38 I Ulfangruk  70 D Hagudril  102 F Tororthane
 7 I Malisane  39 I Malarorn   71 G Ganigrorn  103 F Imorthorn
 8 I Anvireon  40 I Ganormarg  72 D Berangrorn 104 F Berormorn
 9 I Talormane  41 G Berorthim  73 G Fenorn   105 B Firak
10 I Imildrorn  42 I Firim    74 G Sildrorn  106 F Morildrane
11 I Carorthad  43 I Glireon   75 D Carorthay  107 F Thigrand
12 I Ushudrarg  44 I Kahangriel  76 B Glortharg  108 B Kahudrarg
13 G Glormeon  45 I Kahudruk   77 B Thortheon  109 F Lorangriel
14 G Thormuk   46 I Lororthane  78 D Glormane  110 F Carorthane
15 I Imgaril   47 I Malirane   79 D Gloruk   111 F Thorthand
16 G Obularg   48 I Kahudrun   80 D Gludreon  112 F Berormane
17 I Thigrim   49 G Ulformane  81 D Thudrun   113 F Ingormiel
18 I Lorelorn  50 D Hagildrorn  82 D Torelorn  114 B Careneon
19 I Kagangrorn 51 I Thildresh  83 D Thatruk   115 B Varangrand
20 I Malirarg  52 I Glormarg   84 B Carormand  116 F Imgorthand
21 G Imatrorn  53 I Carorand   85 D Lorangrarg 117 F Lorangrim
22 G Asorthane  54 G Carangrane  86 D Thelak   118 F Tharand
23 I Imasharg  55 G Thangrorn  87 D Imangruk  119 B Torinarg
24 I Torangrorn 56 I Malormun   88 D Glidril   120 F Imorthesh
25 I Sortharg  57 I Varormane  89 B Thangrad  121 B Anvortheon
26 I Zarashand  58 G Imgenarg   90 D Imulorn   122 F Obireon
27 I Glororn   59 G Thorarg   91 D Thigrak   123 G Obigrorn
28 I Malorthand 60 I Thirium   92 B Lorangrorn 124 I Imgasharg
29 G Varangrim  61 I Fenarg    93 B Varatrarg  125 I Thangrarg
30 I Sigrorn   62 D Imgorarg   94 D Imelorn   126 B Kahudrak
31 I Hagudrak  63 H Torelak   95 D Ulfangrak  127 F Carorthand

The sites are in North-South order. This may serve as well as a
clue to the distribution of the races.


All the addresses shown from now on are decimal. The saved data
starts at Spectrum address 39933, and is 9219 bytes long. This

- Character index                  1
- Day counter                      2
- 24 tables (128 bytes each)    3072
- Map (64*96)                   6144

Address 39933 holds the number of the character you are using.
Addresses 39934-5 hold the number of days 'since the Moonprince
rode forth into the Icemark'.

The map and several tables are included here. That's the reason
why when you get killed, you must load a saved game to restart
(there was no room for two copies of all these data). I will now
list all of this. The tables are 128 bytes long, and are indexed
by site or character number, as for the above table.

TABLES 0/1 (39936/40064): Site coordinates

Table 0 contains the X coordinates (in the map) for the 128
sites, and table 1 the Y coords. I will not list them as all of
you have the map or can get it easily using one of the PD

Each site belongs to the character with the same name.

0 Fortress of Varenand -> Lorangrim the Fey   (117)
1 City of Carudrium    -> Carorthay the Dwarf  (75)
2 Fortress of Thigrorn -> Lorangriel the Fey  (109)
3 Fortress of Finorn   -> Carangrane the Giant (54)
4 City of Imiriel      -> Shareth the Heartstealer

TABLES 2/3 (40192/40320): Object coordinates

As tables 0/1, for objects. Unlike tables 0/1, these are not
fixed, and are randomly set at the start of the game. Each object
has an owner, who can use it *once*. Anyone who has an object but
is not its owner, won't be able to use it, but will benefit from
some minor advantages. They can also be used to approach new
people (by giving some object to its true owner you can make him
more inclined to join your side).

Objects 5-128 are weapons, their power is in Battle, and belong
to the character with the same number. These are Spears (for
Barbarians), Bows (for the Fey), Axes (for Dwarves), Hammers (for
Giants) and Swords (for Icelords). All of them give advantages
in battle.

Objects 0-4 are special. Here are their major powers:

0 Crown of Varenand: Used by Luxor brings all of his men with
1 Crown of Carudrium: Used by Morkin brings Luxor and his men.
2 Spell of Thigrorn: Used by Tarithel takes everyone to the city
of Imiriel.
3 Runes of Finorn: Used by Rorthron... I don't remember!!!
4 Crown of Imiriel: Used by Shareth brings Luxor and his men.
The Spell simply takes the person who uses it (namely Tarithel)
to Morkin's location (of course she will then have to move away
from him if he is still captive or else they will get into a
fight).  The Runes give rest to each person who is loyal to the
Moonprince - which is the same as what an ordinary weapon does
for the individual who uses it.  This makes a person not at all
tired and not at all despondent.

Crowns have the minor power of Persuasion. They make easier to
approach others in peace.  It's worth noting that the Runes and
the Spell also have this power.

Spells have the minor power of Swiftness (more moves in a day

Runes have the minor power of Protection in battle.  It is
impossible to get killed when carrying these.

When an object is carried by a character, his number goes on
table 3, and table 2 holds 255.

TABLE 4 (40448): Enemies killed in the last battle.
TABLE 5 (40576): Men lost in the last battle.
TABLE 6 (40704): Campaign army size.
TABLE 7 (40832): Home army size (in city or fortress).

All of these tables store the number divided by 5. Thus, 15 means
75 men and 255 (the maximum) means 1275 men.

TABLE 8 (40960): Warrior type (based on table 13)

0-5: Moonguard
6-7: Fey
8-9: Barbarian

10, 11, 14: Iceguard

13: Giant
15: Dwarf

The remaining values are unused.

TABLE 9 (41088): Owner of each site

The initial owners are explained somewhere above. This table
holds the actual owners each time.

TABLES 10/11 (41216/41344): Character coordinates

X and Y respectively. Initially, each one is in his home site.

Luxor:    Gate of Varenorn.
Morkin:   City of Imiriel.
Tarithel: Forest of Fangrim.
Rorthron: Gate of Varenorn.
Shareth:  City of Imgaril.

TABLE 12 (41472): Miscellaneous I

a) The 5 upper bits hold the daytime left:

0:     Night
1:     An hour
2-9:   Two hours
10-12: Three hours
13-16: Four hours
17-20: Five hours
21-24: Six hours
25-27: Seven hours
28-30: Eight hours
31:    Dawn

Some people feel that this table is not correct.  I prefer
another interpretation that the number is simply the number of
quarter-hours left in the day.  When the value is printed it is
rounded up to the next hour (so that if 2.25 hours remain then
it will print 3).

b) The 3 lower bits hold the direction of sight:

0: North        2: East         4: South         6: West
1: Northeast    3: Southeast    5: Southwest     7: Northwest

TABLE 13 (41600): Character types

This table is used mainly to select a graphic representation:

 0: Luxor       (mounted)
 1: Luxor       (on foot)
 2: Morkin      (mounted)
 3: Morkin      (on foot)
 4: Rorthron    (mounted)
 5: Rorthron    (on foot)
 6: Fey         (mounted)
 7: Fey         (on foot)
 8: Barbarian   (mounted)
 9: Barbarian   (on foot)
10: Icelord     (mounted)
11: Icelord     (on foot)
12: Tarithel    (always mounted)
13: Giant       (always on foot)
14: Shareth     (always mounted)
15: Dwarf       (always on foot)

There are other codes which are not used in this table, but I
include them for completeness. See below for incident codes.

16: Dragon
17: Wolf
18: Troll
19: Skulkrin
20: Horse

TABLE 14 (41728): Miscellaneous II

Bits 0-2: Allegiance    0=Luxor
                        (6, 7 unused)

Bit 3:  Killed enemy in his last battle.
Bit 4:  Fought battle (bits 3 and 5 are meaningless if 4 is not
Bit 5:  Won victory in his last battle.
Bit 6:  In a tunnel.
Bit 7:  Used his object (only once allowed).

TABLE 15 (41856): How tired

Utterly:    000-031
Extremely:  032-062
Very:       064-095
Quite:      096-127
Somewhat:   128-159
Slightly:   160-191
Not:        192-223
Not at all: 224-255

TABLE 16 (41984): Last battle

In his last battle, this character fought whoever's number is

TABLE 17 (42112): Foe

This character's foe. If bit 7 is set, none.

TABLE 18 (42240): Liege

This character's liege. If bit 7 is set, none.

TABLE 19 (42368): How reckless

See table 15. 0 means DEAD.

TABLE 20 (42496): Object/Slayer

This table has two meanings:

a) If alive, then it holds the number of the carried object, or
255 for nothing.
b) If dead, then it holds the number of the character who has
killed him. If no character (i.e. dragons, trolls...), then bit
7 is set and the lower bits hold an incident code. See below for
incident codes.

TABLE 21 (42624): Positive attributes

Bit Meaning

7   Loyal
6   Swift
5   Brave
4   Stubborn
3   Generous
2   Forceful
1   Strong
0   Good

TABLE 22 (42752): Negative attributes

Bit Meaning

7   Treacherous
6   Slow
5   Cowardly
4   Fawning
3   Greedy
2   Reticent
1   Weak
0   Evil

( ...note that it's possible to be simultaneously good and evil!)

TABLE 23 (42880): How despondent

See table 15.

TABLE 24 (43008): MAP (this one is not 128 bytes long!)

The map is 64 squares wide and 96 squares tall. The position at
(X,Y) is in address 43008+64*Y+X. Every byte has the following

Bits 0-3: Surface attributes

   0 Plains       8 Fortress
   1 Mountains    9 Hall
   2 Forest      10 Hut
   3 Hills       11 Tower
   4 Gate        12 City
   5 Temple      13 Fountain
   6 Pit         14 Stones
   7 Palace      15 Frozen Wastes

Bits 4-7: Flags

   Bit 4: Incident
   Bit 5: Army (only graphical information: you could see an army
          which isn't really there, or vice versa, by poking this
   Bit 6: Mist.
   Bit 7: There's tunnel below. If the surface type is 4-7,
          there's a tunnel entrance.

So far the saved information. Other tables:

Table 29508: how does terrain (table 24) affect time (table 12a)

Plains:       1
Mountains:    8
Forest:       4
Hills:        3

(All the rest): 2

Table 29540: how does character type (table 13) affect time
(table 12a)


Luxor:      3/6
Morkin:     3/6
Rorthron:   2/4
Fey:        3/6
Barbarians: 5/8
Icelords:   3/5
Tarithel:   2/-
Giants:     -/5
Shareth:    2/-
Dwarves:    -/5

Table 29317: how does character type (table 13) affect tiredness
(table 15)


Luxor:      1/2
Morkin:     2/4
Rorthron:   0/1
Fey:        2/3
Barbarians: 2/4
Icelords:   1/2
Tarithel:   1/0
Giants:     -/2
Shareth:    0/-
Dwarves:    -/3

Table 29009: Four incident types for each possible terrain

(only on empty squares; repeated values increase probability)

Plains:     0,3,1,4     Fortress:   0,1,6,6
Mountains:  0,0,2,1     Hall:       2,6,6,10
Forest:     0,3,1,1     Hut:        3,1,6,6
Hills:      0,2,1,1     Tower:      5,5,5,5
Gate:       0,7,8,10    City:       0,6,6,12
Temple:     8,9,10,11   Fountain:   3,12,12,12
Pit:        2,1,9,12    Stones:     0,8,8,11
Palace:     0,4,7,10    Fr. Wastes: 0,3,3,2

Incident types:

 0  Dragons
 1  Wolves
 2  Trolls
 3  Skulkrin
 4  Horses
 5  Guidance
 6  Shelter
 7  Claws of Night      (time left =  0)
 8  Flames of Dawn      (time left = 31)
 9  Thorns of Despair   (despondent = 0)
10  Blood of Courage    (despondent = 255)
11  Languor of Death    (tired = 0)
12  Springs of Life     (tired = 255)


All names (except the first five, which are hardcoded) contain
three parts, which are fetched more or less randomly (with the
map as a seed) by the name generator from three tables. These

Prefixes (25):
Img Dol Lor Ush Mor Tal Car Ulf As Tor Ob F Gl
S Th Gan Mal Im Var Hag Zar Anv Ber Kah Ash

Midwords (16):
ar or ir en orth angr igr ash el in ul atr orm udr is ildr

Suffixes (16):
orn il iel im uk ium ia eon ay ak arg and ane esh ad un

The name generator has a fixed seed at position (0,0) of the map.
This position holds the fortress of Imgarorn the Giant. As you
can see Img-ar-orn is (0,0,0) in the tables above. Any other
position is recursively traced down to (0,0), generating a
pseudorandom seed for the three tables. The algorithm takes care
of any contiguous squares of the same terrain type having the
same name.

I find this explanation misleading.  The "pseudo-random" number
is simply calculated by evaluating N = 444(64y+x) MOD 6151 where
(x,y) are the coordinates.  Then the first part of the name is
taken from bits 8-12 of N, the middle part is taken from bits 4-7
and the last part from bits 0-3.

If the location to be named is an area rather than an individual
square, the algorithm traces around the border of the area to
find its northernmost point (if there are several northernmost
points then the most westerly one is chosen) and uses that in the
formula.  This is the only action that might be described as
"recursively tracing" and is the most complicated part of the

As you can see, the coordinates (0,0) give rise to N=0 and hence
the name (0,0,0).  This does not imply that the top left corner
is some sort of "seed" for the algorithm.

Note that the map has 6144 positions. 6144=24*16*16, so there is
more possible names than squares in the map. So the algorithm
also guarantees that there will be no different places with the
same name,

This is not guaranteed merely by numbers.  What if N were
444(64y+x) MOD 6144?  Then the only values of N which would
result would be the multiples of 12 and these would all be
repeated 12 times.  As it happens, 6151 is prime and therefore
each location gives a different value of N.

Note that since 6151 is so close to 6144 there is only one
location whose name starts with Ash: the tower of Asharil at

A special demo of Psytron was given away on side two of the
Doomdark tape.

When you are playing Doomdark on an emulator it helps if you set
it to a high speed setting to speed up the drawing of landscapes
and especially to make the nights shorter.

Partners: Abandoned PlacesAbandonware RingFree Games BlogGlenn's GuidesThe House of Games
Just Games RetroMacintosh GardenA Force For GoodRobot Ring