Bugs and Changes

WARNING: This page contains only bugs for Atari ST versions. Some of these bugs may also be present in other versions not listed here. Other versions may contain bugs not listed here (some are identified in the ReDMCSB Release 3 source code with the keyword BUGX_XX).

This document contains the list of all known bugs and the list of all changes between game versions (some of which are bug fixes). Each one is identified by a unique name containing two numbers:

For example, CHANGE3_07_FIX identifies the 7th change introduced in DM for Atari ST 1.2 EN.

For more details, please refer to the source code by searching for the identifier of the bug or change. Many text editors allow searching for a keyword like 'BUG0_00' or 'CHANGE1_00_OPTIMIZATION' in multiple files, my recommendation is Notepad++.

Bugs (93)

Bugs introduced in DM for Atari ST 1.0a EN (89)

BUG0_00

Symptom
No perceptible symptom while playing the game. These are not really bugs but rather useless statements in the source code that could be removed without changing the program behavior.
Cause
Useless code (variables, statements, fields, functions and parameters).
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
AMMO.C, BASE.C, BLIT.C, CEDT006.C, CHAMDRAW.C, CHAMPION.C, CHAMPRST.C, CHEST.C, CLIKCHAM.C, CLIKMENU.C, CLIKVIEW.C, COMMAND.C, COPYPRO3.C, DATA.C, DECOMPDU.C, DEFS.H, DIALOG.C, DUNGEON.C, DUNVIEW.C, ENDGAME.C, ENTRANCE.C, GROUP.C, HINTLZW.C, IO.C, LOADSAVE.C, LZW.C, MEMORY.C, MENU.C, MOVESENS.C, PANEL.C, PROJEXPL.C, READWRIT.C, REVIVE.C, SCRLMGMT.C, SOUND.C, STARTUP1.C, SYMBOL.C, TEXT.C, TIMELINE.C, TITLE.C, TOWNSGLB.H
Resolution
Only partly fixed in some versions (see CHANGE2_06_FIX, CHANGE3_19_FIX CHANGE5_01_FIX, CHANGE7_14_FIX). Useless code removed.

BUG0_01

Symptom
No perceptible symptom while playing the game. These are only coding errors without consequences, hence only visible in the source code.
Cause
Multiple causes including:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CEDT002.C, CEDTINCR.C, CHAMPION.C, CLIKMENU.C, CLIKVIEW.C, DUNGEON.C, DUNVIEW.C, EXPAND.C, GRAPH21.C, GRAPH538.C, IO.C, MENU.C, MOVESENS.C, OBJECT.C, PANEL.C, SPELFAIL.C, STARTGD.C, SWSH.C, TEXT.C, TIMELINE.C
Resolution
None

BUG0_02

Symptom
After playing a single game for hundreds of hours (in one row or across multiple save/load cycles) the game starts to behave strangely and then hangs.
Cause
Even though the game time is stored in a 32 bit value, event times in the timeline are stored on 24 bits so the maximum possible time value is 2^24 - 1 = 16777215 (around 850 to 1000 hours of actual play time). Issues occur because new events scheduled to occur in the future are actually scheduled in the past and then expire immediately. For example, if you use the 'Light' action of the Yew Staff or Sceptre Of Lyf when the game time is 16776500 then an event to remove the light will be scheduled at (16775000 + 2500) Mod 2^24 = 284 and will thus expire immediately so that the light will only be visible for a very short moment. When the game time reaches 16777200 (the largest multiple of 300 that is smaller than the maximum value of 16777216), the time of the next watchdog event is set to (16777200 + 300) Mod 2^24 = 284 and thus expires immediately. The timeline processing then enters an infinite loop where it constantly processes the same watchdog event, causing the game to hang.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GAMELOOP.C
Resolution
None

BUG0_03

Symptom
Graphical glitch. When the processor is under heavy load, a few lines at the top of the dungeon view may be drawn on screen with the wrong color palette. This is only visible for a very short amount of time and disappears on the next vertical scan.
Cause
If a vertical blank exception occurs before the previous vertical blank exception handler has completed execution then it is ignored. As the game implements palette switching to draw the dungeon view in the vertical blank exception handler, the appropriate palette is not configured at the right time and causes the top of the dungeon view to use the same color palette as the top of the screen. This is only visible when the palette used to draw the dungeon is not the same as the one used to draw the rest of the screen, which is when the light level in the dungeon is not at its maximum. The issue occurs when the processor is under heavy load because many other interrupts occur with a higher priority level than the vertical blank interrupt, such as sound and mouse processing.
How to reproduce:
  1. You need low light conditions in the dungeon: wait until all 'Torch' and 'Light' spells expire and remove any torches from champion hands. Also do not stay on the initial dungeon map where the champion portraits are available as light is always maximum there.
  2. Continuously bump into walls by using the arrows on the keyboard so that a sound is played while also moving the mouse very quickly around the screen. The graphical glitch should be visible from time to time.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
BASE.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_01_FIX). The vertical blank handler is changed so that no vertical blank interrupts can be ignored and the palette switching code always starts right on time.

BUG0_04

Symptom
Some creatures may be drawn with unexpected colors in Dungeon Master.
Cause
In the color palettes used to draw the dungeon view, two colors (9 and 10) are only used by creature graphics and each creature type can specify replacement colors to use instead of the default colors. Creature types that do not use these colors can specify that no replacement is needed. Each map in the dungeon has an associated list of allowed creature types. If multiple creatures with conflicting color replacements are allowed on the same map then each replacement color is defined by the creature type that appears the last in the list of allowed creature types. There are no such conflicts in Dungeon Master.
However, the side bitmap of 'Giant Wasp' uses color 10 but no replacement is specified. In the game, the actual color used is not the same on all maps where they are present: on map 3 the color is the one defined by 'Magenta Worm', on map 5 it is the color defined by 'Wizard Eye' and on map 10 it is the color defined by 'Water Elemental'.
All bitmaps for 'Swamp Slime' use both colors 9 and 10 but replacement is only specified for color 10. On the map where this creature is used, there are no other creatures defining color 9 so the default color is used which is appropriate. However, this color should be explicitly specified.
The front, side and attack bitmaps for 'Lord Chaos' use color 9 but no replacement is specified. On the map where this creature is used, the colors defined by the Demon are used, which are also appropriate for Lord Chaos. However, these colors should be explicitly specified.
How to reproduce:
  1. For 'Giant Wasp', in Dungeon Master go to maps 3, 5 and 10 to see them from the side: the color of the abdomen below the wings is different on each map:
  2. For 'Swamp Slime' and 'Lord Chaos', create a custom dungeon, add a creature that replaces colors 9 and 10 and then add one of these creatures in the list of allowed creatures. When playing the game, the colors of the first creature will be used instead of the expected colors.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
DUNVIEW.C
Resolution
None

BUG0_05

Symptom
A champion portrait sensor on a wall square is visible on all sides of the wall. If there is another sensor with a wall ornament on one side of the wall then the champion portrait is drawn over that wall ornament. This issue only affects custom dungeons. It does not exist in the original dungeons where all walls with portraits have only one visible side and no other sensors with wall ornaments.
Cause
Champion portraits are managed as a special case when drawing wall ornaments. They are always drawn after any other ornament and the sensor cell on the wall is ignored.
How to reproduce:
  1. Create a custom dungeon and place a champion portrait sensor on a wall that has more than one side visible.
  2. Add another sensor with a wall ornament on one of the visible sides of the wall.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None

BUG0_06

Symptom
Graphical glitch when drawing projectiles or explosions.
Cause
If a projectile or explosion bitmap is cropped because it is only partly visible on the left side of the viewport and the bitmap is flipped horizontally then a wrong part of the bitmap is drawn on screen. This issue does not apply to object bitmaps and to projectiles drawn with object bitmaps because those are only flipped horizontally when being drawn in the right half of the dungeon view.
How to reproduce:
  1. In Dungeon Master go to map 0 at coordinates 6,16 and face west.
  2. Move backward 2 or 3 steps.
  3. Cast a low power Fireball spell and immediately move one step to the right.
  4. When the projectile impacts the wall, the Fireball explosion may be drawn incorrectly, here are some examples where the bitmap looks cropped on the right side:

    The same issue occurs with large bitmaps but cannot be noticed easily.
  5. Examples with a 'Sword' projectile and a 'Throwing Star' projectile going from left to right (in both cases the right end is incorrectly cropped):
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None

BUG0_07

Symptom
Graphical glitch when drawing explosions.
Cause
If an explosion bitmap is cropped because it is only partly visible on the left side of the viewport and the bitmap is not flipped horizontally then a variable is not set before being used. Its previous value (defined while drawing something else) is used and may cause an incorrect bitmap to be drawn.
How to reproduce:
  1. In Dungeon Master go to map 0 at coordinates 6,16 and face west.
  2. Move backward 2 or 3 steps.
  3. Cast a Fireball spell and immediately move one step to the right.
  4. When the projectile impacts the wall, the Fireball explosion may be drawn incorrectly, here are some examples:
  5. You may need to cast multiple Fireball spells of varying power before seeing the issue.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
DUNVIEW.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_02_FIX) The variable is always set so that explosions are drawn correctly.

BUG0_08

Symptom
Objects disappear in the dungeon and data is corrupted in memory.
Cause
The game manages an array of limited size containing the first thing on each square where there is at least one thing. There is no check to stop adding things to this array when it is full and this causes data corruptions in memory. With the original Dungeon Master and Chaos Strikes back dungeons the array is large enough so that most players will not get into trouble, however it is still possible to fill it by placing one thing on as many squares as possible in the dungeon. The number of free slots to store first square things is 676 in DM for Atari ST 1.0a EN, 678 in DM for Atari ST 1.0b EN, 679 in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR and 1.3b FR, 690 in CSB for Atari ST 2.0 EN and 2.1 EN (each dungeon contains a number of free slots and the game adds 300 more when loading the dungeon).
How to reproduce:
  1. Collect all objects present in the dungeon and spread them on as many squares as possible. Do not place objects on squares where there is already a thing (doors, teleporters, floor sensors).
  2. Do not use Ven Potions and Ful Potions because there is no way to create potions in the game.
  3. Kill lots of groups so they drop new objects and place each object on a distinct square in the dungeon. You must repeat this operation with various types of creatures in order to create objects of each type (weapon, armor, junk) and until the groups do not drop objects anymore (meaning the maximum possible number of objects of each kind is reached).
  4. Generate as many groups as possible (and do not kill them) on multiple maps in order to maximize their total number in the dungeon.
  5. When there are too many squares with things on them, the things on the last squares with at least one thing in the dungeon start to disappear.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNGEON.C
Resolution
None

BUG0_09

Symptom
The game may trigger a sensor and cause an undesired effect when discarding a thing from a square.
Cause
When the game needs to create a new thing but has run out of storage for the corresponding thing type (for example when creating a Screamer Slice after a Screamer is killed) it will try to remove another thing of the same type elsewhere in the dungeon (except things that are explicitly marked as non discardable). If the square where the thing is removed contains a sensor, it may be triggered and cause an undesired effect. For example, discarding a Screamer Slice placed by the player on a pressure plate on the floor may close a door or open a pit which may block the party.
This issue is hard to reproduce because of all the conditions to meet.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
DUNGEON.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_17_FIX) Squares with enabled sensors are ignored when searching for a thing to discard.

BUG0_10

Symptom
No perceptible symptom when playing the game. Coding error without consequence.
Cause
The game reserves a pool of 3 things to make sure it can create 'Bones' objects for dead champions in the party. When the game creates a thing for a dead champion's bones then Bit 15 is set in the requested thing type to indicate that the pool of reserved things can be used. This bit is not cleared before using the thing type as an array index. No consequence because the machine code generated by the Megamax C compiler left shifts the 16 bits value by 1 bit and then keeps the least significant 16 bits, effectively truncating the original and unwanted bit 15. With other compilers or other platforms this may cause an out of bounds array index issue.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
DUNGEON.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_18_FIX) Clear bit 15 to get the actual thing type before using the value.

BUG0_11

Symptom
Data corruption in memory.
Cause
Each group located on the same map as the party has additional associated data but there is only provision for 60 instances. If there are more groups at the same time then some of them do not get their instance and when the game accesses this information it will corrupt other data in memory (either the instance of another group, parts of the timeline or events). This situation cannot occur in the original Dungeon Master and Chaos Strikes Back dungeons for the following reasons (but it may occur in custom dungeons if they are not designed carefully): there is no map with already more than 60 groups in the original dungeons and none of the following 3 possible ways to move a group into a map can increase the number of instances above the maximum of 60: How to reproduce:
  1. Create a custom dungeon.
  2. Place more than 60 groups on the same map.
  3. Alternatively, place teleporters and/or blinking pits that can move groups to a target map where there are already many groups. The creature type must be allowed on the target map. You can also place a group generator sensor on the source map to create up to 55 groups on the map.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GROUP.C
Resolution
None

BUG0_12

Symptom
An object is cloned and appears at two different locations in the dungeon and/or inventory. The game may crash when interacting with this object.
Cause
If a Giggler with no possessions steals an object that was previously in a chest and was not the last object in the chest then the objects that followed it are cloned. In the chest, the object is part of a linked list of objects that is not reset when the object is removed from the chest and placed in the inventory (but not in the dungeon), nor when it is stolen and added as the first Giggler possession. If the Giggler already has a possession before stealing the object then this does not create a cloned object.
How to reproduce:
  1. Open a chest containing several objects.
  2. Take one object that is not the last object in the chest and place it in the ready hand.
  3. Face a Giggler until it steals the object from the ready hand. If this is the first object that the Giggler steals, then he actually steals the object and the objects that followed it in the chest, which are now cloned: they are referenced both in the Chest and in the Giggler possessions.
  4. Kill the Giggler. The stolen object and the cloned objects are dropped on the floor. Cloned objects may crash the game and create other undesired effects.
  5. Place additional objects on the floor on top of the cloned objects. They will be linked to these objects which are also in the chest, which can result to a chest containing more than 8 objects. Open the inventory of a champion and place the chest in the action hand. Before version CSB for Atari ST 2.1 EN, this will cause graphical glitches and corrupt some memory as the game tries to display the additional objects:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GROUP.C
Resolution
Improperly fixed in CSB for Atari ST 2.1 EN, never fully fixed. The developers were aware of a cloning issue, but it looks like they thought it was related to opening an already open chest or closing an already closed chest so they became paranoid regarding chest management code and made changes that actually have no useful effect (see CHANGE8_09_FIX) and even reintroduced BUG0_48 that was fixed previously in CSB for Atari ST 2.0 EN (see CHANGE7_27_FIX). However, although the actual bug itself was not fixed, changes were made to fix some of its consequences:

BUG0_13

Symptom
The game may crash when Lord Order or Grey Lord cast spells. This cannot happen with the original dungeons as they do not contain any groups of these types.
Cause
Lord Order and Grey Lord creatures can cast spells (attack range > 1) but no projectile type is defined for them in the code. If these creatures are present in a dungeon they will cast projectiles containing undefined things because the variable is not initialized.
How to reproduce:
  1. Create a custom dungeon and place a 'Lord Order' or 'Grey Lord' group.
  2. When playing the game, move close to the group. It will cast random projectiles to the party and this may crash the game.
Affected versions
GROUP.C
Affected files
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Resolution
None

BUG0_14

Symptom
While life is frozen, creature reaction events are not ignored as they should. They accumulate and can saturate the timeline.
Cause
Creature reactions happen after seeing another creature in the group die, being hit by a projectile or a closing door and attacked or bumped into by the party. Each reaction creates an additional event in the timeline and these events are not removed from the timeline while life is frozen by using a Magical Box (except for Lord Chaos which is immune). When events are exhausted, new events are not added to the timeline which can cause many issues (see BUG0_18).
How to reproduce:
  1. Collect as many Magical Box (Green) as possible.
  2. Face a creature and use one Magical Box to Freeze Life.
  3. Keep bumping into the creature and periodically use other Magical Boxes to keep life frozen. Each time you bump into the creature, an additional reaction event is added to the timeline.
  4. If the timeline is full then new events are not created anymore. See BUG0_18 for possible consequences. Note: the maximum number of events in the timeline is 463 (in DM for Atari ST 1.0a EN and 1.0b EN) or 467 (in DM for Atari ST 1.1 EN).
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
GROUP.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_04_FIX) Code moved so that creature reaction events are ignored if life is frozen.

BUG0_15

Symptom
The game hangs when you close a door on Lord Chaos.
Cause
A condition is missing in the code to manage creatures and this may create an infinite loop between two parts in the code.
How to reproduce:
  1. Attract Lord Chaos on a door square.
  2. Close the door.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
GROUP.C
Resolution
Fixed in DM for 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_03_FIX) Condition added to prevent infinite loop.

BUG0_16

Symptom
An object disappears when it is thrown or shot by a champion or launched by a projectile launcher sensor. A spell cast by a champion or a creature is ignored.
Cause
If the game cannot create a projectile thing because it has run out of such things (60 maximum) then the object being thrown/shot/launched is orphaned. If the game has run out of projectile things it will try to remove a projectile from elsewhere in the dungeon, except in an area of 11x11 squares centered around the party (to make sure the player cannot actually see the thing disappear on screen). The issue does not occur in the original Dungeon Master and Chaos Strikes Back dungeons.
How to reproduce:
  1. Create a custom dungeon.
  2. Create a loop with 4 teleporters that only turn things in-place so that the projectiles will never impact on a wall and will perpetually move around.
  3. Next to one of the teleporters, place a projectile launcher sensor. Place another wall sensor that the party can use to trigger the projectile launcher.
  4. Make sure the whole system fits in an area of 11x11 squares around the party.
  5. Trigger the wall sensor enough times in order to create 60 projectiles. The game will slow down considerably.
  6. Throw an object. No projectile is created and the object disappears.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
PROJEXPL.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_00_FIX) Place object on the floor if the projectile cannot be created.

BUG0_17

Symptom
The game crashes after the Fuse action is performed while looking at a wall on a map boundary.
Cause
An explosion thing is created on the square in front of the party but there is no check to ensure the square coordinates are in the map bounds. This corrupts a memory location and leads to a game crash.
How to reproduce:
  1. Move to any square that is on a map boundary and face the direction of the map boundary. For example, in Dungeon Master go to map 13 at coordinates 46, 32 and face North.
  2. Use the Fuse action of the Firestaff.
  3. Turn around and the game crashes.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE
Affected files
PROJEXPL.C
Resolution
Fixed in DM for Atari ST 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE5_02_FIX) The Fuse action is aborted if the specified coordinates are outside the map bounds.

BUG0_18

Symptom
A projectile stays immobile in the air, an explosion remains forever on a square, a spell effect stays active forever (like Light, Shields, Footprints), a champion action icon remains disabled forever.
Cause
When events are exhausted and the timeline is full, new events are not added to the timeline which can cause various issues.
How to reproduce: See BUG0_14.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
TIMELINE.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_05_FIX) The game stops with message 'SYSTEM ERROR 45' instead of not adding an event to the timeline.

BUG0_19

Symptom
The game crashes when an object launcher sensor is triggered.
Cause
If a launcher sensor that launches objects on its square is triggered when there are no more objects to launch then the game may crash trying to launch an invalid thing. In the original Dungeon Master and Chaos Strikes Back dungeons, this bug is not possible because the number of times that these sensors are triggered is always controlled to be equal to the number of available objects (with a countdown sensor or a number of once only sensors).
How to reproduce:
  1. Create a custom dungeon and place an object launcher sensor in the dungeon but no object on the sensor square.
  2. Play the game and trigger the object launcher.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
TIMELINE.C
Resolution
None

BUG0_20

Symptom
Game crash when a launcher sensor is triggered.
Cause
The game crashes if the launcher sensor is on a map boundary and shoots in a direction outside the map. There are no such sensors in the original Dungeon Master and Chaos Strikes Back dungeons.
How to reproduce:
  1. Create a custom dungeon and place a launcher sensor in the dungeon on a map boundary and that shoots in the direction outside the map.
  2. Play the game and trigger the launcher.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
TIMELINE.C
Resolution
None

BUG0_21

Symptom
Projectiles created by launcher sensors never run out of kinetic energy and move until they impact something.
Cause
Projectile launcher sensors have a step energy value defining how much kinetic energy is consumed with each step of movement of the projectiles they create. This value is ignored and 0 is always used so that such projectiles always move until they impact something (wall, creature or party).
How to reproduce:
  1. In Chaos Strikes Back, go to map 1 at coordinates 17,28.
  2. Press the switch on the south wall to trigger the double lightning bolt launcher sensor located at coordinates 17,17. The values defined in this sensor are set so that the projectiles should stop one square before impacting the wall on the south end of the corridor.
  3. Move to the square at coordinates 16,28 and face east.
  4. In CSB for Atari ST 2.0 EN the lighning bolt projectiles move until they impact the wall with the switch. In CSB for Atari ST 2.1 EN the lighning bolt projectiles stop their movement and disappear one square before the wall with the switch, causing no explosion as there is no impact.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
TIMELINE.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_01_FIX) Projectiles created by launcher sensors use the step energy value stored in the sensor instead of 0.

BUG0_22

Symptom
When a teleporter or pit opens, the game hangs or some things are not moved correctly.
Cause
The program enters an infinite loop if there are at least two things on a closed teleporter or closed pit square and these things end up on the same square when the teleporter or pit opens. This occurs in these cases: Some things are not moved correctly if the list of things on the square contains a group followed by a projectile that impacts the group and then other things. When the group is processed, the projectile is removed from the list of things on the square, which breaks the loop and the next things in the list are not processed.
How to reproduce:
  1. In Dungeon Master, go to map 7 at coordinates 28,13.
  2. Press the button to open the wall at coordinates 29,12, revealing a second button that controls the teleporter at coordinates 29,13.
  3. Place two objects on the teleporter square at coordinates 29,13.
  4. Go to coordinates 29,12 and press the button. The teleporter is closed.
  5. Press the button a second time. The teleporter is opened and the game hangs.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
TIMELINE.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_22_FIX) If a group is on the square it is processed before all the other things on the square so that the removal of projectiles impacting the group or the removal of the group itself if killed do not break the processing of other things on the square. The loop was modified so that each thing on the square is processed only once, even if it ends up on the same square.

BUG0_23

Symptom
A Fluxcage explosion remains on a square forever.
Cause
If you open a pit or teleporter on a square where there is a Fluxcage explosion, the Fluxcage explosion is moved but the associated event is not updated (because Fluxcage explosions do not use the same event type as all other explosions) causing the Fluxcage explosion to remain in the dungeon forever on its destination square. When the event expires the explosion thing is not removed, but it is marked as unused. Consequently, any objects placed on the Fluxcage square after it was moved but before it expires become orphans upon expiration. After expiration, any object placed on the fluxcage square is cloned when picked up.
How to reproduce:
  1. In Dungeon Master, go to map 2 at coordinates 09,38 where there is a blinking teleporter.
  2. Use the Firestaff to place a Fluxcage on the teleporter square. The teleporter moves the Fluxcage to coordinates 15,38.
  3. Place one or more objects on the square at 15,38. Note that you can pick up objects normally on that square.
  4. Wait for the Fluxcage event to expire, at which point the objects on the floor disappear and become orphans. The Fluxcage is not removed from the square.
  5. Place an object on the Fluxcage square, then pick up that object. It is not removed from the square and can be picked up multiple times, creating clones. Manipulating cloned things can crash the game.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
TIMELINE.C
Resolution
None

BUG0_24

Symptom
Lord Chaos becomes invisible.
Cause
Lord Chaos may teleport into one of the Black Flames and become invisible until the Black Flame is killed.
How to reproduce:
  1. Fight Lord Chaos on map 13 near the Black Flames.
  2. Lord Chaos may teleport to a square where there is a Black Flame.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
TIMELINE.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_07_FIX) Additional code added to move Lord Chaos as soon as possible to an adjacent square.

BUG0_25

Symptom
When a champion dies, no bones object is created so it is not possible to bring the champion back to life at an altar of Vi.
Cause
Each time a champion is brought back to life, the bones object is removed from the dungeon but it is not marked as unused and thus becomes an orphan. After a large number of champion deaths, all 'Junk' things are exhausted and the game cannot create any more. This also affects the creation of 'Junk' things dropped by some creatures when they die (Screamer, Rockpile, Magenta Worm, Pain Rat, Red Dragon).
How to reproduce:
  1. Keep killing champions in your party and bringing them back to life at an altar of Vi until one champion dies and no bones are created.
  2. Kill a creature that should drop 'Stuff' things when dying: no objects are dropped.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
TIMELINE.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_03_FIX) Mark the thing data as unused so it is not orphaned anymore.

BUG0_26

Symptom
An explosion may fall in a pit.
Cause
If a pit is opened while there is an explosion above then the explosion falls into the pit. Explosions are not considered as levitating so they are moved when the pit is opened.
How to reproduce:
  1. In Dungeon Master, go to map 8 at coordinates 22,12.
  2. Cast a powerful Poison Cloud spell to the west on the square at coordinates 21,12.
  3. Quickly move to coordinates 22,14 (through the poison cloud) and pull the lever. The pit at 21,12 opens and the poison cloud falls through the pit.
  4. Jump in the pit to see the poison cloud on the map below.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MOVESENS.C
Resolution
None

BUG0_27

Symptom
The dungeon view is drawn during a fall while the party is sleeping.
Cause
If a pit opens under the party while it is sleeping then the dungeon view is drawn during the fall without the floor and ceiling, even though it should not be visible at all until the party wakes up at the end of the fall. The code does not check if the party is sleeping while deciding if the dungeon view should be drawn during the fall.
How to reproduce:
  1. Move to coordinates 24,18 on map 1 and get followed by the Mummy at 27,16.
  2. Wait until the Mummy steps on 25,17 which closes the pit at 24,19.
  3. Quickly move onto the closed pit square and sleep.
  4. When the mummy moves again the pit opens and the following viewport is drawn:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
MOVESENS.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_06_FIX) If the party is sleeping then the dungeon view is not drawn during a fall.

BUG0_28

Symptom
When falling through multiple pits the dungeon view is updated to show each traversed map but the graphics used for creatures, doors, wall and floor ornaments may not be correct.
Cause
The dungeon view is drawn for each map by using the graphics loaded for the map of origin. Therefore the graphics may not look like what they should.
How to reproduce:
  1. Play on a computer with at least 1 MB of RAM so that all graphics are stored in memory. If the computer has only 512 KB of RAM then the dungeon view is not drawn at all while falling through pits as this would be very slow because of many floppy disk accesses.
  2. In the Chaos Strikes Back dungeon, go to map 1 and jump into the pit at coordinates 19,28 while facing west.
  3. On map 2 below you see this in CSB for Atari ST 2.0 EN (wrong graphics):

    At the same location, you see this in CSB for Atari ST 2.1 EN (correct graphics):
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
MOVESENS.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_04_FIX) Appropriate graphics for each traversed map are loaded before drawing the dungeon view while falling.

BUG0_29

Symptom
An explosion can trigger a floor sensor.
Cause
Explosions do not trigger floor sensors on the square where they are created. However, if an explosion is moved by a teleporter (or by falling into a pit, see BUG0_26) after it was created, it can trigger floor sensors on the destination square. This is because explosions are not considered as levitating in the code, while projectiles are.
How to reproduce:
  1. In Chaos Strikes Back, go to map 2 at coordinates 20,10.
  2. Face north and cast a high power poison cloud spell so that it will last as long as possible. When the explosion is created on the square at 20,9, the floor sensor is not triggered.
  3. Turn around to face south and move one step backward into the poison cloud. The party triggers the floor sensor there which opens an invisible teleporter on the same square, moving the party and the explosion to coordinates 19,11.
  4. Immediately after this teleportation, move one step to the right so that the party is not teleported anymore. The explosion can be seen moving in the corridor, teleported from one square to the next because the explosion itself triggers the floor sensors on each square. If you move one step back to the left you can even 'follow' the explosion in the corridor.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MOVESENS.C
Resolution
None

BUG0_30

Symptom
A floor sensor is not triggered when you put an object on the floor if a levitating creature is present on the same square.
Cause
The condition to determine if the sensor should be triggered checks if there is a creature on the square but does not check whether the creature is levitating. While it is normal not to trigger the sensor if there is a non levitating creature on the square (because it was already triggered by the creature itself), a levitating creature should not prevent triggering the sensor with an object.
How to reproduce:
  1. Create a custom dungeon.
  2. Place a floor sensor triggered by objects that toggles a door.
  3. On the same square as the sensor, place a levitating creature.
  4. In the game, if you place an object on the floor while the levitating creature is present then the floor sensor is not triggered and the door does not open or close. If there is no creature on the same square then an object placed on the floor will trigger the sensor and the door will open or close.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MOVESENS.C
Resolution
None

BUG0_31

Symptom
Floor sensors to detect the party on a stairs square are never triggered.
Cause
A wrong variable is used in a condition in the source code. This has no consequence in the games as this sensor type is not used in the original dungeons.
How to reproduce:
  1. Create a custom dungeon and place a type 5 sensor on a stairs square to toggle a door.
  2. Play the game. When moving through the stairs, the sensor is not triggered and the door does not open or close.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
MOVESENS.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_05_FIX) The wrong variable is replaced by the correct variable in the condition.

BUG0_32

Symptom
The load of a champion with no objects in his inventory is not 0.
Cause
If you save the game with an object in the leader hand then when you resume or restart the game the weight of the object in the leader hand is permanently added to the load of the leader. When the game is saved, the weight of the leader hand object is substracted from the load of the leader. But when the game is loaded, the weight of the leader hand object is added twice to the load of the leader.
How to reproduce:
  1. Grab an object in the leader hand. Take note of the weight of this object.
  2. Take note of the load of the leader.
  3. Save the game.
  4. Restart the game and resume the saved game.
  5. The load of the leader has increased by the weight of the object in the leader hand.
  6. If you remove all objects from the champion inventory, the load is not 0 but the weight of the object that was in the leader hand when the game was saved.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPRST.C
Resolution
None

BUG0_33

Symptom
The highlighted box around the acting champion's action hand is not cleared when clicking on a champion mirror.
Cause
There is no code to clear the acting champion before opening the inventory of a candidate champion in a mirror.
How to reproduce:
  1. Start a new game.
  2. Resurrect or reincarnate a champion with a weapon in the action hand (Iaido for example).
  3. Click the weapon icon in the menu but do not click on an action name.
  4. Resurrect or reincarnate another champion. The action hand of the first champion is still highlighted.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
REVIVE.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_08_FIX) Clear the acting champion before drawing the action icon of the candidate champion.

BUG0_34

Symptom
Graphical glitch when you quickly move the mouse into the action area after clicking on a portrait.
Cause
If you quickly move the mouse pointer over the action area where the action icon for the candidate champion will be drawn after clicking on a portrait and before the inventory is drawn on screen then there may be a graphical glitch where the mouse pointer erases a part of the action icon with a black rectangle in the action area 'behind' the mouse pointer. This is because the mouse pointer is not hidden while drawing the action icon. When the mouse pointer is moved over the action area, it captures the black pixels behind the pointer. The action icon is drawn and when the inventory is open, the mouse cursor is hidden which causes the captured black pixels to replace part of the action icon.
How to reproduce:
  1. Click on a champion portrait.
  2. Quickly move the mouse pointer over the action area where the action icon for the candidate champion will be drawn before the inventory is drawn.
  3. A black rectangle is visible over the action icon where the mouse cursor is located.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
REVIVE.C
Resolution
None

BUG0_35

Symptom
The closed chest icon is drawn when the chest is opened.
Cause
If you open the inventory of a champion and place a Chest in the action hand, the closed chest icon is drawn instead of the open chest icon. If you place a Chest in the action hand before opening the inventory (in the champion status box on top of the screen) then when you open the inventory the open chest icon is drawn correctly in the action hand. Code is missing to change the icon when a chest is drawn in the action hand while in the inventory.
How to reproduce:
  1. Open the inventory of champion.
  2. Put a chest in the action hand. The closed chest icon is drawn even though the chest contents are drawn in the panel.
  3. Close the inventory and open it again. The open chest icon is drawn correctly.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
CHAMDRAW.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_10_FIX) Code added to change the icon of the Chest and Scroll when in the action hand and in the inventory. This fix causes BUG2_00 for scrolls.

BUG0_36

Symptom
A champion icon may be missing in the upper right corner of the screen after loading a saved game where at least one champion is dead.
Example where the green champion icon is missing:
Cause
When a dead champion is reborn at a Vi Altar, the champion cell is set to the first available cell where there is no champion alive. It is then possible that the cell of the reborn champion is the same as the cell of another dead champion in the party. If the index of the dead champion is higher than the index of the reborn champion and the game is saved then when restarting the game from the saved game the icon of the reborn champion will not appear on screen. This is only a graphic glitch and you only need to click on the black area where the missing icon should be to make it appear again. When the game is loaded, the state of each champion is drawn. For a dead champion, this erases the champion icon according to the cell of the dead champion, even if another champion is at the same cell.
How to reproduce:
  1. Start a new game and reincarnate or resurrect 3 champions.
  2. Kill the first champion.
  3. In the top right corner of the screen, move the icon of the second champion to the location previously occupied by the first champion icon.
  4. Kill the second champion.
  5. Bring the first champion back to life at a Vi Altar. The icon will take the cell previously occupied by the second champion. Both the first (alive) and second (dead) champions now refer to the same cell in the party.
  6. Save the game.
  7. Restart the game and resume from the saved game. The icon of the first champion is not visible.
  8. Click on the missing icon location to make the icon appear on screen.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
CHAMDRAW.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_07_FIX) The champion icon is erased when the champion is killed and not drawn anymore when drawing the state of a dead champion.

BUG0_37

Symptom
The contents of a chest are refreshed when grabbing or putting a Rabbit's Foot anywhere in the inventory. An object in a chest may disappear when grabbing a Rabbit's Foot from a chest. A champion may have a permanent bonus or malus to the (hidden) Luck statistic.
Cause
The Luck modifier of the Rabbit's Foot is applied when it is inside a container while it should not. This causes the following issues: How to reproduce:
  1. Open a chest containing at least two objects and move objects in the chest so that there is at least an empty slot followed by at least one object.
  2. Grab a Rabbit's Foot from any other location in the inventory. The chest contents are immediately reorganized so that there are no empty slots between objects.
  3. Click on the object in the first slot in the chest to swap the Rabbit's Foot in the leader hand and the first object in the chest. Take note of the object that follows the Rabbit's Foot in the chest.
  4. Click again on the Rabbit's Foot to swap it with the object in the leader hand. The object that followed the Rabbit's Foot in the chest disappears.
  5. Put the Rabbit's Foot in the chest (this gives a Luck bonus to the champion) and close the chest.
  6. Move the chest to another champion, open his inventory, remove the Rabbit's Foot from the chest and put it in the dungeon. The first champion now has a permanent Luck bonus (although he does not possess a Rabbit's Foot anymore) and the second champion has a permanent Luck malus. This cannot be seen in the game but can be seen by decoding a saved game.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
CHAMPION.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_25_FIX) The Luck modifier of the Rabbit's Foot is not applied if it is in a chest.

BUG0_38

Symptom
A champion is much luckier than expected during combat when equipped with at least 4 cursed objects.
Cause
Champion statistic values are stored as one byte unsigned integers which can store values between 0 to 255. Each champion has a minimum, a maximum and a current value for each of the statistics. When an object modifier is applied to a statistic, all three values are modified but there is no check to make sure the new values stay in the bounds of 0 to 255. This is not an issue in most cases because nearly all modifiers are positive and with relatively small values so that any combination of champion statistic value with these modifiers will result in valid values. The only issue is with the hidden luck statistic and the modifier for cursed objects which is the only negative modifier in the game (-3). The minimum luck value for all champions is set to 10 at the beginning of the game and is only changed by object modifiers. If enough cursed objects are equipped (between 4 and 6) then the minimum value 'wraps around' and becomes a large value (254 with 4 cursed objects, 251 with 5 cursed objects and 248 with 6 cursed objects). The first time that the luck of the champion is tested after the cursed objects are equipped, the current luck value is set to its minimum value (248, 251 or 254) because the game detects that the current value is smaller than the minimum allowed. During the following luck tests: As a consequence, while the cursed objects are equipped, the current luck value can only have two possible values: either its maximum value, or its minimum value (which is even larger at 248, 251 or 254) so the champion is always luckier than he should be.
How to reproduce:
  1. In the game, kill an Animated Armour/Deth Knight and collect the 6 cursed objects dropped (4 pieces or armor and 2 weapons).
  2. Equip the four pieces of armor and place the weapons in both hands of a single champion. Make sure the champion does not have a Rabbit's Foot in his inventory which would add 10 to his luck statistic.
  3. The luck of the champion is modified by 6 * -3 = -18. The minimum value for luck is now set to 248.
  4. From now on, each test of the champion's luck will have a higher probability of success (it may still fail because of the random nature of the test). Luck is tested when a creature attacks a champion, when a champion attacks a creature and when a Giggler tries to steal objects from action hands. During combat, the champion will hit creatures more frequently and be hit by creatures less frequently.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPION.C
Resolution
None

BUG0_39

Symptom
In the leader inventory, the Food/Water/Poisoned panel is briefly drawn when replacing a scroll or chest by another scroll or chest in the action hand. This does not occur for champions other than the leader.
Cause
When swapping the objects between the action hand and the leader hand, the program first removes the object in the action hand. If the removed object is a chest or a scroll then this sets a flag in the champion data to refresh the panel. Then the object in the leader hand is removed. The weight of the object in the leader hand is part of the load of the leader, so this sets another flag in the champion data of the leader to refresh the Load value and then calls the function to draw the leader champion state. If the champion is not the leader, nothing is drawn. If the champion is the leader, the Food/Water/Poisoned panel is drawn because at this point the action hand is empty. Then the object that was removed from the leader hand is put in the action hand and this draws the panel again, this time showing the chest contents or scroll text.
How to reproduce:
  1. Open the inventory of the leader.
  2. Put a chest or scroll in the action hand.
  3. Grab another chest or scroll and replace the one in the action hand.
  4. The Food/Water/Poisoned panel is briefly drawn before the panel is updated to show the chest contents or the scroll.
  5. Repeat steps 2-4 with another champion that is not the leader. The Food/Water/Poisoned panel is not drawn before updating the panel.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPION.C
Resolution
None

BUG0_40

Symptom
If a champion has The Firestaff in the action hand then skill modifiers from other objects (Pendant Feral, Ekkhard Cross, Gem of Ages and Moonstone) are ignored.
Cause
Wrong code causes the skill modifier of the Firestaff not to be cumulative with other modifiers.
How to reproduce:
  1. Press the eye with an empty hand in the inventory of a champion to check his Wizard level.
  2. Put a Pendant Feral around the neck of the champion. His Wizard level is increased by one.
  3. Put the Firestaff in the action hand of the same champion. The champion Wizard level is back to its previous value, the modifier of the Pendant Feral is ignored.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
CHAMPION.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_09_FIX) The skill modifier of the Firestaff is cumulative with other modifiers.

BUG0_41

Symptom
The Antifire and Antimagic statistics are completely ignored. The Vitality statistic is ignored against poison and to determine the probability of being wounded. Vitality is still used normally to compute the defense against wounds and the speed of health regeneration.
Cause
The Megamax C compiler used to develop the game contains a bug that produces wrong machine code for the function that adjusts an attack value based on the value of a champion statistic. No matter the actual value of the statistic, it is always considered to be 0 and consequently the specified attack values are always affected in the same way.
How to reproduce:
  1. Gather a party containing champions with very different values for antifire.
  2. Face a wall and cast multiple fireballs of a given power.
  3. The damage inflicted to each champion is partly randomized so they never get exactly the same damage. However after casting many fireballs, you cannot see any difference between champions regarding the efficiency of a high value for the antifire statistic.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPION.C
Resolution
None

BUG0_42

Symptom
The action icons are not drawn in the action area after you unfreeze the game.
Cause
The variable defining what to draw in the action area is not set in the right function in the code.
How to reproduce:
  1. Place any weapon in the action hand of a champion and face a creature.
  2. Click the weapon icon in the action area then click on an action name to cause damage to the creature.
  3. Immediately after clicking the action name and while the damage caused to the creature is still visible in the action area, press the ESC key to freeze the game.
  4. Unfreeze the game. The weapon icons in the action area are not drawn:
  5. You can sleep and wake up to force the icons to be drawn again.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
CHAMPION.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_10_FIX) The variable defining what to draw in the action area is set in the appropriate function.

BUG0_43

Symptom
The game does not end if the last living champion in the party is killed while looking at a candidate champion in a portrait. The 'Ghost' champion can still move around the dungeon and even move through walls and closed doors in some versions.
Cause
The condition to end the game when the whole party is killed is not true because the code considers the candidate champion as alive.
In earlier versions (Atari ST, Apple IIGS, Amiga 2.x and Dungeon Master for FM-Towns), an incidental coding error with no other consequence (an undefined return value that should be 0 but is not) prevents the 'Ghost' champion from moving through walls and closed doors. In later versions (Amiga 3.x, PC, PC-9801, X68000 and Chaos Strikes Back for FM-Towns), the coding error was fixed (the return value is set to 0) and this has the unexpected consequence of not blocking movement through walls and closed doors for the 'Ghost' champion.
How to reproduce:
  1. Resurrect or reincarnate a champion that has some mana and wizard skills.
  2. Bump into a wall until the champion's health is close to 0.
  3. Face the portrait of another champion and cast a poison cloud spell.
  4. Click on the portrait. When the first champion dies because of the poison cloud, the game does not end as it should:
  5. Click cancel. The spell area of the candidate champion is still visible, and you can still move around in the dungeon:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPION.C, CLIKMENU.C
Resolution
None

BUG0_44

Symptom
A champion may take much more damage than expected after a Black Flame attack or an impact with a Fireball projectile.
Cause
If the party has a fire shield defense value higher than the fire attack value then the resulting intermediary attack value is negative and damage should be 0. However, the negative value is still used for further computations and the result may be a very high positive attack value which may kill a champion.
How to reproduce:
  1. Cast two or more 'Fire Shield' spells with the highest power symbol so that they will have maximum efficiency and duration.
  2. Face a wall and cast a 'Fireball' spell with the lowest power symbol. Because of the randomness of damage computations, you may need to cast several fireballs before the issue occurs.
  3. The champions in the party may either take normal damage or a very high damage that will probably kill them.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
CHAMPION.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_12_FIX) The champion damage is 0 if the party fire shield value is higher than the fire attack value.

BUG0_45

Symptom
Champions with a high vitality are more likely to get wounded. This bug is present in all versions but Atari ST versions are not affected because of BUG0_41 that ignores Vitality while determining the probability of being wounded.
Cause
A higher vitality value causes the code to perform more iterations to try and wound the champion.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPION.C
Resolution
None

BUG0_46

Symptom
You can run into a projectile shot by a champion.
Cause
When a champion throws an object, movement is disabled for a short time in the direction in which the object was thrown to prevent the party from running into the projectile. However, when a champion shoots an object or casts a spell, movement is not disabled and the party can run into the projectile. This applies to the actions 'Shoot' (Bow/Claw Bow, Crossbow, Speedbow, Sling), 'Lightning' (Stormring, Bolt Blade/Storm , The Conduit/Serpent Staff), 'Dispell' (Yew Staff, Staff Of Manar/Staff Of Irra), 'Fireball' (Flamitt, Fury/Ra Blade), 'Spit' (none), 'Invoke' (The Firestaff) and to all projectile spells (Fireball, Lightning Bolt, Harm Non Material, Open Door, Poison Bolt, Poison Cloud).
How to reproduce:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
CHAMPION.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_07_FIX) Movement is disabled for a short time after shooting projectiles.

BUG0_47

Symptom
Graphical glitch when you open a scroll.
Cause
If there is a single line of text in a scroll (with no line feed character) then the code uses a pointer to undefined data. This may result in a graphical glitch and also corrupt other memory. This is not an issue in the original dungeons where all scrolls contain at least one line feed character.
How to reproduce:
  1. Create a custom dungeon and place a scroll with a single line of text and no line feed character.
  2. In the game, grab the scroll and place it in the action hand.
  3. Open the inventory. The game may show a graphical glitch when printing the scroll text:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
PANEL.C
Resolution
None

BUG0_48

Symptom
The contents of a chest are reorganized when an object with a statistic modifier is placed or removed on a champion.
Cause
When drawing the panel, the chest is always closed first and then reopened again.
How to reproduce:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.1 EN
Affected files
PANEL.C
Resolution
Fixed in CSB for Atari ST 2.0 EN (see CHANGE7_27_FIX) The chest is closed only if pressing the eye or mouth and opened only if it was not already opened.
Reintroduced in CSB for Atari ST 2.1 EN (see CHANGE8_09_FIX).

BUG0_49

Symptom
When examining an 'Empty Flask' the description string shows an undesired symbol.
Cause
The code contains an exception not to draw the power for 'Water Flask' potions but a similar exception is missing for 'Empty Flask' potions. These are processed like all other potions so that the power symbol is drawn.
How to reproduce:
  1. Grab an Empty Flask in the leader hand.
  2. Open the inventory and press on the eye. For an empty flask that was in the dungeon from the start and never contained a potion, the first character of the description string is an underscore '_':

    For an empty flask that previously contained a potion that was drank, the first character of the description string is the power symbol of the last potion it contained:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
PANEL.C
Resolution
None

BUG0_50

Symptom
When a champion is brought back to life at a Vi Altar, his current stamina is lower than what it was before dying.
Cause
Each time the party moves the current stamina of all champions is decreased, including for dead champions, by an amount that depends on the current load of the champion. For a dead champion the load before he died is used.
How to reproduce:
  1. Fill the inventory of a champion so that his load has a high value.
  2. Kill the champion and note the value of his current stamina before he dies.
  3. Move the party in the dungeon (at least ten steps).
  4. Bring the champion back to life at a Vi Altar. The current stamina value is lower than what it was before the champion died.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
CLIKMENU.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_10_FIX) Do not decrease stamina of dead champions when the party moves.

BUG0_51

Symptom
Throwing the object in the leader hand does not stop the wait for player input in the main loop.
Cause
Each time player input with the mouse or keyboard causes some meaningful activity in the game (like moving, performing an action, casting a spell, etc.) the main game loop stops waiting for more player input and proceeds with advancing the game time by one tick and managing everything else. Throwing the object in the leader hand is the only such activity inconsistent with all others.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN
Affected files
CLIKMENU.C
Resolution
Fixed in CSB for Atari ST 2.1 EN (see CHANGE8_11_FIX) Throwing the object in the leader hand stops the wait for player input in the main loop.

BUG0_52

Symptom
Graphical glitches and crashes. If you press the Escape key or CTRL-S on the keyboard while pressing the Eye or Mouth with the mouse then graphical glitches can occur and the game may crash.
Cause
Some keyboard commands (Freeze Game, Unfreeze Game, Save game) should be ignored but are not when pressing the eye or mouth.
How to reproduce:
  1. Open a champion inventory and either click on the eye, or place a chest or scroll in the action hand and then click on the mouth.
  2. While still pressing on the eye or mouth with the mouse, perform one of the following steps:
    1. Press the CTRL-S key combination on the keyboard to open the save game dialog then release the mouse button. When the save game dialog is drawn, the mouse pointer is not visible but it is still possible to move the invisible pointer over a dialog choice and click.
    2. Press the Escape key on the keyboard to freeze the game then release the mouse button. The panel is drawn over the freeze game screen. If you press Escape another time or click a mouse button the inventory is redrawn correctly.
    3. Press the Escape key on the keyboard a first time to freeze the game and then a second time to unfreeze the game. The dungeon view is drawn. Release the mouse button and then the panel is briefly drawn over the dungeon view.

      If you do not move the mouse and click again then the panel is drawn again as if you clicked on the eye but the panel content is incoherent. If you click the right mouse button to toggle inventory another graphical glitch occurs: the status box of a "fifth" champion is drawn over the champion icons in the top right corner of the screen, and overwrites parts of the leftmost champion status box. Crashes may occurs during these manipulations.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
COMMAND.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_02_FIX). A test was added to ignore some commands when the eye or mouth is pressed. The variables used in the test are not modified anymore directly by the mouse exception handler to prevent their value from changing while processing commands so that the test is reliable.

BUG0_53

Symptom
It is possible to sleep while the inventory of a candidate champion is open. When the party wakes up, it is possible to add a duplicate copy of the same champion to the party. All the champion possessions are then cloned objects. It is also possible to grab an object from the candidate champion before sleeping and this will clone that object.
Cause
The sleep icon is erased when the inventory of a candidate champion is opened but it is still possible to click on the sleep icon location on the top right of the viewport.
How to reproduce:
  1. Click on a champion portrait to open the inventory of a candidate champion.
  2. Click on the location of the sleep icon on the top right of the viewport.
  3. Click to wake up the party.
  4. Click again on the champion portrait. If you click Resurrect or Reincarnate you end up with two identical champions in the party (it is possible to have four identical champions in the party by repeating steps 1-3 three times).
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
COMMAND.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_15_FIX) The sleep action is disabled when the inventory of a candidate champion is opened.

BUG0_54

Symptom
The defense modifier of an action is permanent.
Cause
Each action has an associated defense modifier value and a number of ticks while the champion cannot perform another action because the action icon is grayed out. If an action has a non zero defense modifier and a zero value for the number of ticks then the defense modifier is applied but it is never removed. This causes no issue in the original games because there are no actions in this case but it may occur in a version where data is customized.
How to reproduce:
  1. Customize game data so that one action has a non zero defense modifier and a number of ticks set to zero.
  2. Perform the action multiple times. The defense modifier is applied multiple times to the champion and remains permanently. From now on, defense against creature attacks is much more efficient.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MENU.C
Resolution
None

BUG0_55

Symptom
A champion in the back row may perform a melee attack even if there is another champion between him and the target creature.
Cause
The code to detect if a champion has another champion in front of him is wrong. If there is a delta of 2 between the cell and the direction of a champion then the presence of another champion in front of him is ignored.
How to reproduce:
  1. Create a party with at least two champions located in the front right and back right cells on the party square.
  2. Find a creature to attack.
  3. While facing North, use a melee attack of the champion in the back right cell. The action should fail because there is another champion in the front right cell but it will succeed anyway.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN
Affected files
MENU.C
Resolution
Fixed in DM for Atari ST 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE3_14_FIX) The code to detect if a champion has another champion in front of him is fixed.

BUG0_56

Symptom
You can climb down a pit with the rope even if there is a group levitating over it.
Cause
The code does not check if a group is over the pit.
How to reproduce:
  1. Face a levitating creature (like Giant Wasp, Ghost, Flying Eye, Couatl, Vexirk, Materializer, Lord Chaos) that is over a pit.
  2. Use the 'Climb down' action of the rope.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR
Affected files
MENU.C
Resolution
Fixed in DM for Atari ST 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE6_00_FIX) The presence of a group over the pit is checked so that you cannot climb down a pit with the rope if there is a group levitating over it.

BUG0_57

Symptom
The object in the leader hand disappears after saving the game.
Cause
The object is removed from the leader hand before saving the champion data so that its weight is not permanently added to the load of the leader. Also the object name is not visible while saving. However the object is not put back in the leader hand when saving is complete, which creates an orphan. If the game is loaded, then the object is restored in the leader hand. If the game is saved a second time, the object cannot be recovered.
How to reproduce:
  1. Grab an object in the leader hand.
  2. Save the game and choose 'Save and Play'.
  3. After saving is complete, the object is not in the leader hand anymore.
Affected versions
DM for Atari ST 1.0a EN
Affected files
LOADSAVE.C
Resolution
Fixed in DM for Atari ST 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE1_02_FIX) The object is not removed from the leader hand anymore. Its weight is substracted from the load before saving and added afterwards. The object name remains visible while saving.

BUG0_58

Symptom
The game stops with message 'SYSTEM ERROR 41' when you click Resume on the entrance screen and then click Cancel.
Cause
If the game disk is not in the floppy disk drive when clicking Cancel then the game fails to open the graphics.dat file.
How to reproduce:
  1. On the entrance screen, click Resume.
  2. Remove the game disk from the floppy disk drive and insert a saved game disk.
  3. Click Cancel. The game stops:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
LOADSAVE.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_19_FIX) The game disk is required when clicking Cancel.

BUG0_59

Symptom
The game hangs when using the Fuse action on Lord Chaos.
Cause
If there is a Fluxcage on the square where Lord Chaos stands then it is not removed as it should and this hangs the game while processing the end sequence.
How to reproduce:
  1. Place a Fluxcage on the Lord Chaos square and also on all sides of this square.
  2. Use the Fuse action on the Firestaff. The game hangs.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
ENDGAME.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_20_FIX) Fluxcages are removed correctly from both the party square and the Lord Chaos square.

BUG0_60

Symptom
On the Reincarnate/Resurrect screen, the 'Arrow' mouse pointer is replaced by the 'Hand' pointer after you grab an object and put it back.
Cause
After an object is placed in the inventory, the mouse pointer is always set to the 'Hand' without checking if the Reincarnate/Resurrect buttons are on screen.
How to reproduce:
  1. Start a new game in Dungeon Master.
  2. Click on a champion portrait. The mouse pointer is the 'Arrow' while waiting for you to click on Reincarnate, Resurrect or Cancel.
  3. Grab an object in the champion inventory and put it back. The mouse pointer is changed to the 'Hand' pointer.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
STARTUP2.C
Resolution
None

BUG0_61

Symptom
The game stops with message 'SYSTEM ERROR 60' right after restarting from a saved game.
Cause
The game manages a watchdog event to detect issues with the timeline processing. Each time the watchdog event expires, a new watchdog event is scheduled to occur 300 ticks later. If at any point the watchdog event time is in the past compared to the current game time then the game is stopped with the error message. The issue is that the watchdog event time is not reset when restarting from a saved game so if you restore a game where the current time is in the future compared to the watchdog time then the game stops.
How to reproduce:
  1. Start a new game and save the game on floppy A.
  2. Wait for 5 minutes and save the game again on floppy B.
  3. Boot the game and resume the game from floppy A, then wait for 2 minutes.
  4. Kill your party (bump in walls or cast Fireballs while facing a wall).
  5. On the end screen, click on 'Restart this game' and resume from floppy B. Once the game is loaded, the 'SYSTEM ERROR 60' message is drawn and the game hangs:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN
Affected files
STARTUP2.C
Resolution
Fixed in DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE2_05_FIX) The watchdog event time is reset after the game is restarted.

BUG0_62

Symptom
The game stops with message 'SYSTEM ERROR 41' if the game disk is removed from the floppy disk drive after resuming from a saved game on the entrance screen and before clicking OK in the 'Game loaded, ready to play.' dialog. This does not occur when restarting the game after the party has died.
Cause
When the dialog box is displayed after loading the game, the graphics.dat file is still open while it should have been closed. The game then detects which disk is in the drive and this causes the file to be closed and opened again, but reopening the file fails if the game disk is not in the drive.
How to reproduce:
  1. On the entrance screen, insert the saved game disk in the floppy disk drive and click on 'Resume'.
  2. Insert the game disk when asked and wait for the message 'Game loaded, ready to play.'.
  3. Remove the game disk from the floppy disk drive and click OK. The game stops:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
STARTUP2.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_39_FIX). The graphics.dat file is closed before detecting the disk type and reopened after ensuring the game disk is in the drive.

BUG0_63

Symptom
The behavior of groups and the directions of individual creatures in groups are not restored when a saved game is loaded.
Cause
Each group on the same map as the party has additional data that other groups do not have. This additional data is stored as part of saved games and loaded when the game is restarted. However, after loading a saved game the function to initialize this data is called. This overwrites the data and thus the state of groups when the game was saved is ignored.
How to reproduce:
  1. Save the game while a group is fleeing from the party (after using War Cry or Blow Horn actions for example) or while all the creatures in a group do not face the same direction.
  2. Load the game. The group that was fleeing does not flee anymore. All the creatures in each group face the same direction.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
NEWMAP.C
Resolution
None.

BUG0_64

Symptom
Floor ornaments are drawn over open pits.
Cause
There is no check to prevent drawing floor ornaments over open pits.
How to reproduce:
  1. Create a custom dungeon and place a floor ornament over an open pit square.
  2. In the game, the floor ornament is drawn over the open pit.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None.

BUG0_65

Symptom
Torches created by object generator or projectile launcher sensors have no charges.
Cause
Charges are only defined if the Torch is lit which is not possible at the time it is created. This has no consequence in the original Dungeon Master and Chaos Strikes Back dungeons because there are no such sensors.
How to reproduce:
  1. Create a custom dungeon.
  2. Place an object generator or projectile launcher sensor configured to create Torches.
  3. Trigger the sensor and place the new Torch in the action hand: it does not produce any light.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNGEON.C
Resolution
None.

BUG0_66

Symptom
Smoke is placed on the source map instead of the destination map when a creature dies by falling through a pit.
Cause
The game has a special case to correctly drop the creature possessions on the destination map but there is no such special case for the smoke. Note that the death must be caused by the damage of the fall (there is no smoke if the creature is removed because its type is not allowed on the destination map). However this bug has no visible consequence because of BUG0_26: the smoke explosion falls in the pit right after being placed in the dungeon and before being drawn on screen so it is only visible on the destination square.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GROUP.C
Resolution
None.

BUG0_67

Symptom
A group that is not on the party map may wrongly move or not move into a teleporter.
Cause
Normally, a creature type with Wariness >= 10 (Vexirk, Materializer / Zytaz, Demon, Lord Chaos, Red Dragon / Dragon) would only move into a teleporter if the creature type is allowed on the destination map. However a variable identifying the group is not set before being used so the check to see if the creature type is allowed may operate on another creature type and thus return an incorrect result, causing the creature to teleport while it should not, or not to teleport while it should.
How to reproduce:
  1. Create a custom dungeon. Place a dragon on a map behind a teleporter targeting another map where dragons are not allowed.
  2. Place other creatures like Gigglers that are allowed on both the same map as the dragon and the destination map of the teleporter.
  3. Play the game and go to the map where the dragon is located so it that starts moving (groups do not move until you enter their map for the first time). As long as you stay on the same map as the dragon, it will never enter the teleporter.
  4. Go to the target map of the teleporter. The dragon may eventually be teleported to this map and die (you should see Dragon Steak on the target squere).
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GROUP.C
Resolution
None.

BUG0_68

Symptom
A group moves or acts with a wrong timing.
Cause
The behavior and animation of groups is managed with events. Each of these events contains the delay before the next event for the group. In some cases, this delay is left undefined when the event is added to the timeline. This happens when a group moves on another map than the party map or when a group has a reaction (after seeing another creature in the group die, being hit by a projectile or a closing door and attacked or bumped into by the party).
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GROUP.C
Resolution
None.

BUG0_69

Symptom
Memory corruption when you close a door on Lord Chaos.
Cause
The local variable containing the direction where Lord Chaos tries to move may be used as an array index without being initialized and cause memory corruption.
This bug can only be triggered in versions 1.2 and 1.3 because BUG0_15 hangs the game in earlier versions. The actual consequences depend on the value of the uninitialized local variable.
How to reproduce:
  1. Attract Lord Chaos on a door square.
  2. Close the door.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR
Affected files
GROUP.C
Resolution
Fixed in CSB for Atari ST 2.0 EN, 2.1 EN (see CHANGE7_19_FIX). When Lord Chaos senses danger on his square (because of a Poison Cloud, a closing door or 3 surrounding Fluxcages) he teleports in a direction initialized with a random value.

BUG0_70

Symptom
A projectile impact on a creature may be ignored.
Cause
The function to detect projectile impacts when a quarter square sized creature moves inside a group (to another cell on the same square) may fail if there are several creatures in the group because of an incorrect parameter value.
How to reproduce:
  1. Face a group of three mummies where two mummies are on the back and one is on the front.
  2. Throw an object or cast a spell on the side where there is only one mummy in the back.
  3. If the mummy on that side moves to the front cell of the square at the appropriate time when the projectile is on the same square then the projectile moves through the creature and does not impact. You may have to try several times until the issue occurs.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
GROUP.C
Resolution
None.

BUG0_71

Symptom
Some timings are too short on fast computers.
Cause
The following things happen on a fast computer because the execution speed is not limited:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MOVESENS.C, TITLE.C, ENTRANCE.C, ENDGAME.C
Resolution
None.

BUG0_72

Symptom
The party moves very slowly even though no champion 'Load' value is drawn in red.
Cause
When the Load of a champion has exactly the maximum value he can carry then the Load is drawn in yellow but the speed is the same as when the champion is overloaded (when the Load is drawn in red).
How to reproduce:
  1. Make sure the Load values of all champions are drawn in gray. Drop objects if necessary.
  2. Place as much objects as necessary in the inventory of a champion until the Load value is drawn in red.
  3. Remove small objects weighing 0.1 Kg from the inventory until the Load value is drawn in yellow. This is the maximum value that the champion can carry without being overloaded.
  4. Move the party. The movement speed is the same as if the party was overloaded but the Load color is not red.
  5. Remove one more object weighing 0.1 Kg from the inventory. The movement speed is now faster even though the Load color is still yellow.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMPION.C
Resolution
None.

BUG0_73

Symptom
A mouse click may be ignored.
Cause
A mouse command may be overwritten by a keyboard command in the command queue before being processed. The game can queue up to 4 mouse and keyboard commands and uses a semaphore to prevent concurrent accesses to the command queue data. However, the semaphore is a 2 bytes value. When regular functions manipulate the command queue, a flag is set in the least significant byte. When a mouse click occurs, this triggers and interrupt but the code checks and sets a flag in the most significant byte, thus ignoring any flag set in the other byte. Normally, if the command queue is locked, the program should buffer the mouse click in dedicated global variables until the command queue is available again. Because of the bug, the buffering is actually never used.
How to reproduce:
  1. Press the down arrow key on the keyboard to input a command.
  2. Click the left mouse button while the pointer is over the forward arrow to input another command.
  3. With the appropriate timing between these two operations (extremely difficult to achieve on purpose), the mouse click will be ignored.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
COMMAND.C
Resolution
None.

BUG0_74

Symptom
Creatures are drawn with wrong colors when viewed through a wall with the 'Thieve's Eye' spell.
Cause
In order to produce the visual effect of the spell, the engine has to compose several graphics. The game first captures a portion of what is visible behind the wall in a temporary location and then draws the 'hole in wall' graphic over it using transparency for the inner color, which is color 10 (at the center of the 'hole in wall' graphic):

Next, it draws the wall in front of the party (overwriting what was previously visible). Finally it draws the graphic from the temporary location using transparency for the outer color, which is color 9 (in the corners of the 'hole in wall' graphic). However, color 9 may be used by creature graphics that are now visible in the center part of the graphic. Consequently, all creature graphic pixels using color 9 will not be drawn during this last operation and the pixels from the background wall will be visible instead, giving creatures a strange appeareance with wrong grey/white colors.
The bug is only visible with creature graphics that use color 9: Giant Scorpion / Scorpion, Swamp Slime / Slime Devil, Wizard Eye / Flying Eye, Pain Rat, Ruster, Magenta Worm / Worm, Trolin / Ant Man, Materializer / Zytaz (except the back graphic), Water Elemental, Oitu, Demon, Lord Chaos (except the back graphic), Red Dragon / Dragon, Lord Order, Grey Lord. There is no bug when viewing through a door.
How to reproduce:
  1. In Dungeon Master go to map 2 at coordinates 26,34 and face west.
  2. Cast a 'Thieve's Eye' spell.
  3. Wait until Trolins move in front of the hole in the wall.
  4. The Trolins are drawn with wrong colors:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None.

BUG0_75

Symptom
Multiple champion portraits are drawn (one at a time) then the game crashes.
Cause
The global variable storing the champion portrait to draw is only reset when at least one square in the dungeon view is a wall. If the party is in front of a wall with a champion portrait and the next time the dungeon view is drawn there is no wall square in the view and the square in front of the party is a fake wall with a random ornament then the same champion portrait will be drawn again because the variable was not reset. A different portait is drawn each time the dungeon view is refreshed until the game crashes.
How to reproduce:
  1. Create a custom dungeon.
  2. Place a teleporter one square away from a wall with a champion portrait. The teleporter should move the party to a location with a fake wall right in front and no walls on all other squares visible in the dungeon view. The fake wall must allow random ornaments.
  3. In the game, move to face the portrait on the wall.
  4. Move one step backward. The party is teleported in front of the fake wall. A champion portrait is still visible (without the mirror) and is changed for each refresh of the dungeon view until the game crashes:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNGEON.C
Resolution
None.

BUG0_76

Symptom
The same text is drawn on multiple sides of a wall square.
Cause
The engine stores only a single text to draw on a wall in a global variable. Even if different texts are placed on differents sides of the wall, the same text is drawn on each affected side.
How to reproduce:
  1. Create a custom dungeon.
  2. Place two different texts on two different sides of a wall square.
  3. In the game, move to face each side of the wall.
  4. The same text is visible on both sides.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNGEON.C
Resolution
None.

BUG0_77

Symptom
The party moves forward when using the rope in front of a closed pit.
Cause
The engine does not check whether the pit is open before moving the party over the pit. This is not consistent with the behavior when using the rope in front of a corridor where nothing happens.
How to reproduce:
  1. Move in front of a closed pit.
  2. Use the 'Climb down' action of the rope: the party then moves one step forward over the closed pit square.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MENU.C
Resolution
None.

BUG0_78

Symptom
A closing horizontal door wounds champions to the head instead of to the hands.
Cause
Missing parenthesis in a condition in the source code cause all doors to wound the head in addition to the torso. The expected behavior would be for vertical doors to wound torso and head and for horizontal doors to wound hands and torso.
How to reproduce:
  1. In Dungeon Master, go to map 4 at coordinates 09,25 where there is a horizontal door with a button.
  2. Press the door button to open the door.
  3. Press the door button to close the door and immediately move to the door square before the door actually closes. Champions take damage and may be wounded by the closing door.
  4. Move out of the door square before the champions die.
  5. A champion may be wounded to the head but never to the hands.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
TIMELINE.C
Resolution
None.

BUG0_79

Symptom
Stamina is decreased and experience is gained even when the Climb Down action fails.
Cause
If the Climb Down action is not possible because there is no pit in front of the party or there is a levitating creature over the pit, the engine does cancel the disabling of the champion action icon but it does not cancel the stamina decrease nor the experience gain.
How to reproduce:
  1. Face a square that is not a pit.
  2. Use the 'Climb down' action of the rope.
  3. The champion stamina is decreased. Experience is also increased but you need to repeat this action until the champion gains a level to notice this effect.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
MENU.C
Resolution
None.

BUG0_80

Symptom
Data is corrupted in memory and the game eventually crashes.
Cause
The engine does not enforce a maximum number of things to place in the backpack of a potential champion and will overwrite arbitrary data in memory if there are too many things on a champion mirror square.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
REVIVE.C
Resolution
None.

BUG0_81

Symptom
A weak champion may inflict high damage.
Cause
If a champion's strength (computed value between 0 and 100) is 0 then a modifier may be added to the damage value without being initialized first and may thus contain a large value. This may happen for a champion with a low strength statistic (like Tiggy), a wounded action hand holding a heavy weapon (like a Stone Club) and a very low stamina.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
PROJEXPL.C
Resolution
None.

BUG0_82

Symptom
LZW compressed data fails to decompress.
Cause
If code 256 to flush the LZW dictionary is encountered in the compressed data then the remaining data fails to uncompress correctly because the next available code is reset to 256 instead of 257. This never happens in the original games because the dictionary flush code is not used in the graphics or hint oracle compressed data.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
LZW.C
Resolution
None.

BUG0_83

Symptom
The hole created by the Window action or the Thieve's Eye spell moves with opening doors.
Cause
The hole mask is applied before the door is drawn on screen so that if you open the door, the 'hole' moves with the opening door instead of remaining in the center of the view.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None.

BUG0_84

Symptom
The ending screen with champion portraits is displayed with an incorrect color palette that may render skill levels unreadable.
Cause
The color palette used to draw the ending screen is stored in a local variable that is not initialized if the dungeon view was not visible on screen right before. This bug does not affect Dungeon Master because the end is triggered by the Fuse action (which cannot be performed while sleeping) and the inventory is automatically closed before the Fuse animation sequence so that the dungeon view is visible.
How to reproduce:
  1. Throw 3 Corbums into the Ful Ya pit.
  2. Throw the fourth corbum and quickly start sleeping while it is flying towards the Ful Ya pit.
  3. The party doesn't wake up while the text from the Grey Lord is being displayed and then the ending screen with champion portraits is displayed with a random palette:
  4. If instead of sleeping you only open the inventory then similar issues occur:
Affected versions
CSB for Atari ST 2.0 EN and 2.1 EN
Affected files
ENDGAME.C
Resolution
None.

BUG0_85

Symptom
Movement over a group is not blocked if there are no champions in the party.
Cause
The engine does not check for the presence of a group if the party is empty. Because the movement is allowed, the group on the target square is instantly killed. This issue only affects custom dungeons. It does not exist in the original dungeons because there are no creatures on the maps containing champion mirrors.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CLIKMENU.C
Resolution
None.

BUG0_86

Symptom
Champion portraits, resurrect/reincarnate and rename panel graphics are missing/garbage and the game may crash.
Cause
If any creature type is allowed on a map containing champion mirrors then these graphics are loaded only if the engine determines that there is no memory limitation to load all graphics (this depends on the amount of memory available at startup). Memory is always considered limited in Dungeon Master for PC and Chaos Strikes Back for PC-9801 so the graphics are never loaded in these versions. This issue only affects custom dungeons. It does not exist in the original dungeons because there are no creature types allowed on the maps containing champion mirrors. This issue also does not affect the demo versions of Dungeon Master for Amiga and Apple IIGS which always load these graphics. The demo dungeons do contain a Skeleton creature on the same map as the champion mirrors.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None.

BUG0_87

Symptom
The same champion may be resurrected/reincarnated multiple times.
Cause
When a champion is resurrected/reincarnated the engine disables the first sensor it finds on the champion mirror square but does not check that this is the champion portrait sensor. If another sensor is placed on the same square before the champion portrait sensor then it is disabled instead and the champion mirror remains available. The champion possessions are not cloned as they are removed the first time. This issue only affects custom dungeons. It does not exist in the original dungeons because there is a single sensor on champion mirror squares.
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
REVIVE.C
Resolution
None.

BUG0_88

Symptom
Text is displayed outside of the scroll bitmap.
Cause
The engine does not limit the length of each line nor the number of lines. This is not an issue in the original dungeons where no scroll contains any line longer than 15 characters or more than 8 lines.
How to reproduce:
  1. Create a custom dungeon and set the text on a scroll so that it contains one line with more than 15 characters or more than 8 lines.
  2. As an example, if all text is set on a single line instead of three on the first scroll found in Dungeon Master, the following glitch is visible when reading the scroll:
Affected versions
DM for Atari ST 1.0a EN, 1.0b EN, 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
PANEL.C
Resolution
None.

Bugs introduced in DM for Atari ST 1.1 EN (1)

BUG2_00

Symptom
The closed scroll icon is drawn when the scroll is open.
Cause
If you open the inventory of a champion and place a scroll in the action hand, the closed scroll icon is drawn instead of the open scroll icon. If you put another scroll in the action hand of another champion (in the status box on top of the screen) the icon is changed to the open scroll icon. If a champion in the party has a lit torch in hand then if you wait long enough without doing anything until the torch light decreases then the scroll icon changes automatically to the open scroll icon. The code added to fix BUG0_35 about chest icons also affects scrolls while it should not.
How to reproduce:
  1. Put a torch in the ready hand of any champion in the party.
  2. Open the inventory of the champion.
  3. Put a scroll in the action hand. The closed scroll icon is drawn even though the scroll text is drawn in the panel.
  4. Wait without doing anything. After some time (less than 2 minutes), the open scroll icon is drawn and replaces the closed scroll icon.
Affected versions
DM for Atari ST 1.1 EN, 1.2 EN, 1.2 GE, 1.3a FR, 1.3b FR and CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
CHAMDRAW.C
Resolution
None

Bugs introduced in DM for Atari ST 1.3a FR (1)

BUG5_00

Symptom
When looking at a champion's dead bones by pressing the eye, the name in the panel only contains the champion name and the object name is missing. The correct name that includes both the champion name and the object name is visible when holding the bones in hand.
Cause
In the source code, two function calls were swapped while translating the game to French in order to change the order of words in the final string. However, only the strings should have been swapped and not the function calls.
How to reproduce:
  1. Kill one champion in the party, for example by bumping in a wall or casting fireballs.
  2. Grab the champion dead bones and check the name of the object in hand.
  3. Open the inventory of a champion and click on the eye.
  4. Check the name in the panel.
Affected versions
DM for Atari ST 1.3a FR, 1.3b FR
Affected files
PANEL.C
Resolution
None

Bugs introduced in CSB for Atari ST 2.0 EN (2)

BUG7_00

Symptom
When holding a champion's dead bones in hand, a space character is missing between the champion name and the object name. The correct name with a space character is visible in the panel when looking at the bones by pressing the eye.
Cause
In the source code, the addition of a space character between the two strings is missing.
How to reproduce:
  1. Kill one champion in the party, for example by bumping in a wall or casting fireballs.
  2. Grab the champion dead bones and check the name of the object in hand.
  3. Open the inventory of a champion and click on the eye.
  4. Check the name in the panel.
Affected versions
CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
OBJECT.C
Resolution
None

BUG7_01

Symptom
Some creatures may be drawn with unexpected colors in Chaos Strikes Back.
Cause
In the color palettes used to draw the dungeon view, two colors (9 and 10) are only used by creature graphics and each creature type can specify replacement colors to use instead of the default colors. Creature types that do not use these colors can specify that no replacement is needed. Each map in the dungeon has an associated list of allowed creature types. If multiple creatures with conflicting color replacements are allowed on the same map then each replacement color is defined by the creature type that appears the last in the list of allowed creature types. There are such conflicts in Chaos Strikes Back for 'Worm' which are never drawn with their 'true' colors.
All bitmaps for 'Slime Devil' use both colors 9 and 10 but replacement is only specified for color 10. On the map where this creature is used, there are no other creatures defining color 9 so the default color is used which is appropriate. However, this color should be explicitly specified.
The front, side and attack bitmaps for 'Lord Chaos' use both colors 9 and 10 but no replacements are specified. On the map where this creature is used, the colors defined by the Demon are used, which are also appropriate for Lord Chaos. However, these colors should be explicitly specified.
All bitmaps for 'Hellhound' do not use colors 9 and 10 but it specifies replacements for both, inherited from 'Pain Rat' (DM). On the map where this creature is used, none of the creatures use colors 9 and 10 so this has no consequence. However, these colors should not be specified.
All bitmaps for 'Worm' use both colors 9 and 10 and specify replacements for both colors 9 and 10 but these replacements are still for 'Magenta Worm' (DM). In the game, the actual colors used are not the same on all maps where they are present: on map 0 the colors are defined by 'Demon', on map 9 the colors are defined by 'Dragon' (same colors as 'Demon') and on map 4 color 9 is defined by 'Giant Scorpion' and color 10 is defined by 'Flying Eye'.
The front, side and attack bitmaps for 'Zytaz' use both colors 9 and 10 and specify replacements for both colors 9 and 10 but the replacements are still for the 'Materializer' (DM). They appear with other (and correct) colors in the game only because they were defined by 'Demon'. However, these colors should be explicitly specified.
How to reproduce:
  1. For 'Worm', create a custom dungeon, add this creature as the last allowed creature type on a map. When playing the game, they will be drawn with the wrong colors that it specifies.
    The Worm is the only creature that is intended to be drawn with different colors on different maps (the creature was redrawn compared to worms in Dungeon Master). In Chaos Strikes Back go to maps 0, 4 and 9 to see that their colors are different on each map:
  2. For 'Slime Devil' and 'Lord Chaos' create a custom dungeon, add a creature that replaces colors 9 and 10 and then add one of these creature in the list of allowed creatures. When playing the game, the colors of the first creature will be used instead of the expected colors.
  3. For 'Hellhound', create a custom dungeon, add other creatures that use colors 9 or 10 before it in the list of allowed creature types. When playing the game, the other creatures will be drawn with the replacement colors defined by 'Hellhound'.
  4. For 'Zytaz', create a custom dungeon, add this creature as the last allowed creature type on a map. When playing the game, they will be drawn with the wrong colors that it specifies.
Affected versions
CSB for Atari ST 2.0 EN, 2.1 EN
Affected files
DUNVIEW.C
Resolution
None

Changes (115)

Changes introduced in DM for Atari ST 1.0b EN (3)

CHANGE1_00_OPTIMIZATION

Description
Variable or constant replaced.
Affected files
DIALOG.C

CHANGE1_01_IMPROVEMENT

Description
Engine version 1.0 printed in top right corner of dialog boxes.
Affected files
DIALOG.C

CHANGE1_02_FIX

Description
See BUG0_57.
Affected files
LOADSAVE.C

Changes introduced in DM for Atari ST 1.1 EN (21)

CHANGE2_00_IMPROVEMENT

Description
Status variables for CPSF are now reset each time a game is restarted.
Affected files
DUNVIEW.C, STARTUP2.C

CHANGE2_01_OPTIMIZATION

Description
Inline code replaced by function calls.
Affected files
AMMO.C, CHAMPION.C, CLIKVIEW.C, DUNGEON.C, DUNVIEW.C, GROUP.C, MENU.C, MOVESENS.C, PROJEXPL.C, TIMELINE.C

CHANGE2_02_FIX

Description
See BUG0_07.
Affected files
DUNVIEW.C

CHANGE2_03_FIX

Description
See BUG0_15.
Affected files
GROUP.C

CHANGE2_04_IMPROVEMENT

Description
Keys cannot pass through a closed door anymore. In previous versions, this could prevent the player from completing the game when throwing a required key through a locked door.
Affected files
PROJEXPL.C

CHANGE2_05_FIX

Description
See BUG0_61.
Affected files
STARTUP2.C, TIMELINE.C

CHANGE2_06_FIX

Description
See BUG0_00.
Affected files
AMMO.C, REVIVE.C, MENU.C, TIMELINE.C

CHANGE2_07_FIX

Description
See BUG0_24.
Affected files
TIMELINE.C

CHANGE2_08_FIX

Description
See BUG0_33.
Affected files
CHAMDRAW.C, REVIVE.C

CHANGE2_09_OPTIMIZATION

Description
Code deduplication.
Affected files
CHAMDRAW.C, CLIKVIEW.C, MENU.C

CHANGE2_10_FIX

Description
See BUG0_35.
Affected files
CHAMDRAW.C

CHANGE2_11_OPTIMIZATION

Description
Machine code size reduced.
Affected files
CHAMDRAW.C

CHANGE2_12_OPTIMIZATION

Description
Variable definition changed.
Affected files
AMMO.C, PANEL.C

CHANGE2_13_OPTIMIZATION

Description
Function call replaced by an equivalent and smaller call.
Affected files
CHAMPION.C

CHANGE2_14_IMPROVEMENT

Description
The maximum possible value for statistics is now 250 instead of 255 after drinking a Ros Potion (Dexterity), a Ku Potion (Strength), a Dane Potion (Wisdom) or a Neta Potion (Vitality). The effectiveness of these potions is halved when the statistic value is above 120 and halved again when it is above 180.
Affected files
PANEL.C

CHANGE2_15_FIX

Description
See BUG0_53.
Affected files
COMMAND.C

CHANGE2_16_IMPROVEMENT

Description
The delay before another action can be performed after a melee action fails is halved.
Affected files
MENU.C

CHANGE2_17_IMPROVEMENT

Description
Heal action is much more effective.
Affected files
MENU.C

CHANGE2_18_IMPROVEMENT

Description
Engine version 1.1 printed in top right corner of dialog boxes.
Affected files
DIALOG.C

CHANGE2_19_FIX

Description
See BUG0_58.
Affected files
LOADSAVE.C

CHANGE2_20_FIX

Description
See BUG0_59.
Affected files
ENDGAME.C

Changes introduced in DM for Atari ST 1.2 EN (21)

CHANGE3_00_IMPROVEMENT

Description
Faster regeneration of Mana, Stamina and Health (particularly when sleeping) and faster convergence of current statistic values back to their maximum values if they are temporarily above their maximum value.
Affected files
CHAMPION.C, GAMELOOP.C

CHANGE3_01_OPTIMIZATION

Description
Source code of some functions converted from C language to assembly language for better performance and smaller machine code size.
Affected files
BASE.C, TIMELINE.C

CHANGE3_02_OPTIMIZATION

Description
Inline code replaced by function calls.
Affected files
CHAMPION.C, DUNGEON.C, DUNVIEW.C, GROUP.C, TIMELINE.C

CHANGE3_03_IMPROVEMENT

Description
Group movements are greatly slowed down on maps far from the party to improve the overall game performance (less events to process).
Affected files
GROUP.C

CHANGE3_04_FIX

Description
See BUG0_14.
Affected files
GROUP.C

CHANGE3_05_FIX

Description
See BUG0_18.
Affected files
TIMELINE.C

CHANGE3_06_FIX

Description
See BUG0_27.
Affected files
MOVESENS.C

CHANGE3_07_FIX

Description
See BUG0_36.
Affected files
CHAMDRAW.C, CHAMPION.C

CHANGE3_08_OPTIMIZATION

Description
Trailing space characters removed from strings.
Affected files
CHAMDRAW.C, PANEL.C

CHANGE3_09_FIX

Description
See BUG0_40.
Affected files
CHAMPION.C

CHANGE3_10_FIX

Description
See BUG0_42.
Affected files
CHAMPION.C, STARTUP2.C

CHANGE3_11_OPTIMIZATION

Description
Code deduplication.
Affected files
CHAMPION.C

CHANGE3_12_FIX

Description
See BUG0_44.
Affected files
CHAMPION.C

CHANGE3_13_IMPROVEMENT

Description
The maximum possible value for statistics is now 170 instead of 250 after drinking a Ros Potion (Dexterity), a Ku Potion (Strength), a Dane Potion (Wisdom) or a Neta Potion (Vitality). The effectiveness of these potions is halved when the statistic value is above 120 and halved again when it is above 150.
Affected files
PANEL.C

CHANGE3_14_FIX

Description
See BUG0_55.
Affected files
MENU.C

CHANGE3_15_IMPROVEMENT

Description
A checksum is appended to dungeon data (in both dungeon files and saved game files) to improve reliability.
Affected files
READWRIT.C, LOADSAVE.C

CHANGE3_16_OPTIMIZATION

Description
Variables reordered.
Affected files
DIALOG.C

CHANGE3_17_IMPROVEMENT

Description
The game does not stop anymore and a dialog box with the message 'SAVED GAME DAMAGED!' is drawn if loading a saved game fails while restarting a game. The game still stops if the initial loading of a saved game fails.
Affected files
DIALOG.C, LOADSAVE.C

CHANGE3_18_IMPROVEMENT

Description
Engine version 1.2 printed in top right corner of dialog boxes.
Affected files
DIALOG.C

CHANGE3_19_FIX

Description
See BUG0_00.
Affected files
LOADSAVE.C

CHANGE3_20_OPTIMIZATION

Description
Removed support for two floppy disk drives in the function to detect if a floppy disk is write protected. This support is reintroduced in CSB for Atari ST 2.0.
Affected files
FLOPPYST.C, FLOPPY.C

Changes introduced in DM for Atari ST 1.2 GE (1)

CHANGE4_00_LOCALIZATION

Description
Translation to German language.
Affected files
ACTIDRAW.C, CHAMDRAW.C, CHAMPION.C, COMMAND.C, DEFS.H, DIALOG.C, ENDGAME.C, MENU.C, PANEL.C, REVIVE.C, SPELFAIL.C

Changes introduced in DM for Atari ST 1.3a FR (7)

CHANGE5_00_LOCALIZATION

Description
Translation to French language.
Affected files
ACTIDRAW.C, CHAMDRAW.C, CHAMPION.C, COMMAND.C, DIALOG.C, ENDGAME.C, MENU.C, OBJECT.C, PANEL.C, REVIVE.C, SPELFAIL.C

CHANGE5_01_FIX

Description
See BUG0_00.
Affected files
IO.C

CHANGE5_02_FIX

Description
See BUG0_17.
Affected files
PROJEXPL.C

CHANGE5_03_IMPROVEMENT

Description
More characters are replaced by variants for scroll texts. This only includes a single quote character which is also added to the font graphic.
Affected files
PANEL.C

CHANGE5_04_IMPROVEMENT

Description
Engine version 1.3 printed in top right corner of dialog boxes.
Affected files
DIALOG.C

CHANGE5_05_IMPROVEMENT

Description
A dialog box with the message "Saving game..." is displayed while saving the game.
Affected files
LOADSAVE.C

CHANGE5_06_OPTIMIZATION

Description
Use an existing blank global variable as a blank color palette instead of a dedicated local variable.
Affected files
LOADSAVE.C

Changes introduced in DM for Atari ST 1.3b FR (1)

CHANGE6_00_FIX

Description
See BUG0_56.
Affected files
MENU.C

Changes introduced in CSB for Atari ST 2.0 EN (40)

CHANGE7_00_OPTIMIZATION

Description
Increased sector 7 read buffer size to 1024 bytes instead of 512 bytes but only the first 512 bytes are used.
Affected files
BASE.C, DEFS.H

CHANGE7_01_FIX

Description
See BUG0_03.
Affected files
BASE.C

CHANGE7_02_FIX

Description
See BUG0_52.
Affected files
COMMAND.C, GAMELOOP.C, IO.C

CHANGE7_03_IMPROVEMENT

Description
Support for two floppy disk drives.
Affected files
DIALOG.C, FLOPPY.C, FLOPPYST.C, GAMELOOP.C, LOADSAVE.C, READWRIT.C, REQDISK.C, SAVEPATH.C, STARTUP2.C

CHANGE7_04_IMPROVEMENT

Description
Additional copy protection to check if fuzzy bits detection has been disabled in CPSE.
Affected files
CHAMPION.C, COPYPRO6.C, DEFS.H, DUNVIEW.C, NEWMAP.C, PANEL.C, TIMELINE.C

CHANGE7_05_OPTIMIZATION

Description
Refactored game initialization function.
Affected files
GAMELOOP.C, STARTUP1.C, STARTUP2.C

CHANGE7_06_OPTIMIZATION

Description
The Atari ST color palette register address is now specified with 32 bit instead of 24 bit (both addresses work fine).
Affected files
BASE.C

CHANGE7_07_LOCALIZATION

Description
Translation to English language (differences with original Dungeon Master).
Affected files
DIALOG.C, OBJECT.C, SPELFAIL.C

CHANGE7_08_OPTIMIZATION

Description
Variable definitions changed.
Affected files
DUNVIEW.C, SOUND.C, STARTUP1.C, TIMELINE.C

CHANGE7_09_OPTIMIZATION

Description
Variables reordered.
Affected files
IO.C, LOADSAVE.C, MENU.C

CHANGE7_10_IMPROVEMENT

Description
Additional copy protection to check if fuzzy bits detection has been disabled in CPSF.
Affected files
DUNVIEW.C

CHANGE7_11_OPTIMIZATION

Description
Comma removed on many lines of source code where they separated two expressions in order to reduce the size of the machine code generated by the compiler.
Affected files
CLIKMENU.C, DUNGEON.C, DUNVIEW.C, GROUP.C, PROJEXPL.C

CHANGE7_12_OPTIMIZATION

Description
Use of another variable.
Affected files
DUNVIEW.C

CHANGE7_13_OPTIMIZATION

Description
Code moved and maximum number of loadable graphics updated.
Affected files
DEFS.H, DUNVIEW.C

CHANGE7_14_FIX

Description
See BUG0_00.
Affected files
CHEST.C, DUNVIEW.C, LOADSAVE.C, MOVESENS.C, STARTUP1.C

CHANGE7_15_OPTIMIZATION

Description
New function to draw walls in the center of the dungeon view without unnecessary transparency support for better performance.
Affected files
DUNVIEW.C

CHANGE7_16_OPTIMIZATION

Description
Source code of some functions converted from C language to assembly language for better performance and smaller machine code size.
Affected files
CHAMDRAW.C, CHAMPION.C, DUNGEON.C, REVIVE.C, TIMELINE.C

CHANGE7_17_FIX

Description
See BUG0_09.
Affected files
DUNGEON.C

CHANGE7_18_FIX

Description
See BUG0_10.
Affected files
DUNGEON.C

CHANGE7_19_FIX

Description
See BUG0_69.
Affected files
GROUP.C

CHANGE7_20_IMPROVEMENT

Description
Projectiles now move at the same speed on all maps instead of moving slower on maps other than the party map.
Affected files
PROJEXPL.C

CHANGE7_21_IMPROVEMENT

Description
New floor sensor type: end game. The game ends immediately when this sensor is triggered.
Affected files
TIMELINE.C

CHANGE7_22_FIX

Description
See BUG0_22.
Affected files
TIMELINE.C

CHANGE7_23_IMPROVEMENT

Description
New floor sensor type: version checker. This sensor is triggered only if its data value is smaller than or equal to the game engine version. This sensor type is not used in the original dungeon.
Affected files
MOVESENS.C

CHANGE7_24_IMPROVEMENT

Description
New reincarnation rules: Health, Mana and Stamina values are halved. The current and maximum values of each statistic except Luck are decreased by 1/8th of their value without going below their minimum value.
Affected files
REVIVE.C

CHANGE7_25_FIX

Description
See BUG0_37.
Affected files
CHAMPION.C

CHANGE7_26_OPTIMIZATION

Description
Code deduplication.
Affected files
CHAMPION.C, MENU.C

CHANGE7_27_FIX

Description
See BUG0_48.
Affected files
CHEST.C, PANEL.C

CHANGE7_28_IMPROVEMENT

Description
The player can now left click on the champion bars to open their inventory.
Affected files
COMMAND.C, DEFS.H

CHANGE7_29_IMPROVEMENT

Description
New saved game header format.
Affected files
READWRIT.C, SAVEHEAD.C, LOADSAVE.C, DEFS.H

CHANGE7_30_IMPROVEMENT

Description
Added support for compressed dungeons. This includes a new type of temporary memory allocation used ony for that purpose.
Affected files
DECOMPDU.C, MEMORY.C, READWRIT.C, LOADSAVE.C

CHANGE7_31_IMPROVEMENT

Description
Refactored floppy disk format function with these new features: New dialog message if there is no floppy disk in the drive. New dialog message while formatting and if formatting failed, asks for confirmation if trying to format an existing save disk. Code to format floppy disk moved to a separate function.
Affected files
DIALOG.C, FLOPPY.C, LOADSAVE.C

CHANGE7_32_IMPROVEMENT

Description
Refactored load game function with these new features: New dialog message if there is no floppy disk in the drive. New dialog message while the game is loading.
Affected files
DIALOG.C, LOADSAVE.C

CHANGE7_33_IMPROVEMENT

Description
Refactored save game function with these new features: New dialog message if there is no floppy disk in the drive. If you choose 'FORMAT FLOPPY' and then choose 'CANCEL' then you come back to the save dialog instead of closing the save dialog and coming back to the inventory. The assembly code for the copy protection uses custom routines to read sector 7 instead of calling XBIOS function Floprd().
Affected files
DIALOG.C, LOADSAVE.C

CHANGE7_34_OPTIMIZATION

Description
Function calls to show and hide the mouse pointer on screen are now included in the function to get the player's choice in dialogs.
Affected files
DIALOG.C, LOADSAVE.C, REQDISK.C, STARTUP2.C

CHANGE7_35_IMPROVEMENT

Description
If a text message in a dialog is too long then it is split and printed on two lines.
Affected files
DIALOG.C

CHANGE7_36_IMPROVEMENT

Description
Engine version 2.0 printed in top right corner of dialog boxes.
Affected files
DIALOG.C

CHANGE7_37_IMPROVEMENT

Description
Restart experience improved: the game waits a longer time for the player to click on the 'Restart this game' button before drawing the credits and restart is now possible even after the credits have been drawn by pressing a key or clicking a mouse button.
Affected files
ENDGAME.C

CHANGE7_38_OPTIMIZATION

Description
Function call replaced by an equivalent call.
Affected files
STARTUP2.C

CHANGE7_39_FIX

Description
See BUG0_62.
Affected files
STARTUP2.C

Changes introduced in CSB for Atari ST 2.1 EN (14)

CHANGE8_00_FIX

Description
See BUG0_16.
Affected files
PROJEXPL.C

CHANGE8_01_FIX

Description
See BUG0_21.
Affected files
TIMELINE.C

CHANGE8_02_IMPROVEMENT

Description
The end game sensor now includes an optional delay before drawing the end of the game (not used in the original dungeon).
Affected files
TIMELINE.C

CHANGE8_03_FIX

Description
See BUG0_25.
Affected files
TIMELINE.C

CHANGE8_04_FIX

Description
See BUG0_28.
Affected files
MOVESENS.C

CHANGE8_05_FIX

Description
See BUG0_31.
Affected files
MOVESENS.C

CHANGE8_06_IMPROVEMENT

Description
The hard coded game engine version for the version checker sensor is now 21 for version 2.1.
Affected files
MOVESENS.C

CHANGE8_07_FIX

Description
See BUG0_46.
Affected files
CHAMPION.C

CHANGE8_08_FIX

Description
See BUG0_12.
Affected files
CHEST.C

CHANGE8_09_FIX

Description
See BUG0_12.
Affected files
CHEST.C, PANEL.C, STARTUP2.C

CHANGE8_10_FIX

Description
See BUG0_50.
Affected files
CLIKMENU.C

CHANGE8_11_FIX

Description
See BUG0_51.
Affected files
CLIKVIEW.C

CHANGE8_12_FIX

Description
See BUG0_12.
Affected files
READWRIT.C, LOADSAVE.C

CHANGE8_13_IMPROVEMENT

Description
Engine version 2.1 printed in top right corner of dialog boxes.
Affected files
DIALOG.C