Browse Games

Dungeon Master for Amiga

Editions

Screenshots

Version 2.0 English
Dungeon Master (Amiga) - Version 20 FTL Logo
Dungeon Master (Amiga)
Version 20 FTL Logo
Dungeon Master (Amiga) - Version 20 Title
Dungeon Master (Amiga)
Version 20 Title
Dungeon Master (Amiga) - Version 20 Main Menu
Dungeon Master (Amiga)
Version 20 Main Menu
Dungeon Master (Amiga) - Version 20 Credits
Dungeon Master (Amiga)
Version 20 Credits
Dungeon Master (Amiga) - Version 20 Dungeon view
Dungeon Master (Amiga)
Version 20 Dungeon view
Dungeon Master (Amiga) - Version 20 Inventory
Dungeon Master (Amiga)
Version 20 Inventory
Version 2.0 French
Dungeon Master (France, Amiga) - Version 20 Main Menu
Dungeon Master (France, Amiga)
Version 20 Main Menu
Dungeon Master (France, Amiga) - Version 20 Dungeon view
Dungeon Master (France, Amiga)
Version 20 Dungeon view
Dungeon Master (France, Amiga) - Version 20 Inventory
Dungeon Master (France, Amiga)
Version 20 Inventory
Version 2.0 German
Dungeon Master (Germany, Amiga) - Version 20 Main Menu
Dungeon Master (Germany, Amiga)
Version 20 Main Menu
Dungeon Master (Germany, Amiga) - Version 20 Dungeon view
Dungeon Master (Germany, Amiga)
Version 20 Dungeon view
Dungeon Master (Germany, Amiga) - Version 20 Inventory
Dungeon Master (Germany, Amiga)
Version 20 Inventory
Version 3.6 English
Dungeon Master (Amiga) - Version 36 FTL Logo
Dungeon Master (Amiga)
Version 36 FTL Logo
Dungeon Master (Amiga) - Version 36 Title
Dungeon Master (Amiga)
Version 36 Title
Dungeon Master (Amiga) - Version 36 Main Menu
Dungeon Master (Amiga)
Version 36 Main Menu
Dungeon Master (Amiga) - Version 36 Credits
Dungeon Master (Amiga)
Version 36 Credits
Dungeon Master (Amiga) - Version 36 Dungeon view
Dungeon Master (Amiga)
Version 36 Dungeon view
Dungeon Master (Amiga) - Version 36 Inventory
Dungeon Master (Amiga)
Version 36 Inventory
Comparison with version 2.0: The FTL logo and inventory screens are identical, but the others are not: the title screen was changed, the main menu has a Quit option, there are additional credits and the dungeon view perspective was changed.
Version 3.6 French
Dungeon Master (France, Amiga) - Version 36 Main Menu
Dungeon Master (France, Amiga)
Version 36 Main Menu
Dungeon Master (France, Amiga) - Version 36 Dungeon view
Dungeon Master (France, Amiga)
Version 36 Dungeon view
Dungeon Master (France, Amiga) - Version 36 Inventory
Dungeon Master (France, Amiga)
Version 36 Inventory
Version 3.6 German
Dungeon Master (Germany, Amiga) - Version 36 Main Menu
Dungeon Master (Germany, Amiga)
Version 36 Main Menu
Dungeon Master (Germany, Amiga) - Version 36 Dungeon view
Dungeon Master (Germany, Amiga)
Version 36 Dungeon view
Dungeon Master (Germany, Amiga) - Version 36 Inventory
Dungeon Master (Germany, Amiga)
Version 36 Inventory

Videos

Title (Version 3.6)

Information

The Amiga version is the fastest one due to the presence of the built-in blitter chip that accelerates graphics operations.
Known versions:

  • Version 2.0 English Demo
  • Version 2.0 English
  • Version 2.0 French
  • Version 2.0 German
  • Version 2.1 English
  • Version 2.2 English
  • Version 2.2 German
  • Version 3.6 English, French, German

Keyboard commands

  • F1, F2, F3, F4: Toggle champion inventory
  • Escape: Freeze / Unfreeze game
  • Return (when resting): Wake up
  • Ctrl-S: disk menu
  • Numeric pad 4, Del, Shift Del: Turn left
  • Numeric pad 5, Up Arrow, Shift Up Arrow: Move forward
  • Numeric pad 6, Help, Shift Help: Turn right
  • Numeric pad 1, Left Arrow, Shift Left Arrow: Move left
  • Numeric pad 2, Down Arrow, Shift Down Arrow: Move backward
  • Numeric pad 3, Right Arrow, Shift Right Arrow: Move right

Note: in the Dungeon Master demo version 2.0, the Shift + arrow keys for Move/Turn are swapped. Keep Caps lock off to play the demo with the keyboard.

Downloads

Dungeon Master (Amiga)
Dungeon Master for Amiga version 2.0 (English) [Credits: Steve Debnar (dmman)]
Dungeon Master for Amiga version 2.0 (English, Hacked hard disk version) [Credits: Steve Debnar (dmman)]
This version of the game can be played from the floppy disk or from a hard disk. Note that the copy protection is not completely cracked in this version and thus the game may crash with the ‘SYSTEM ERROR 60’ message.
Dungeon Master for Amiga version 2.0 (French) Original, not working because of the copy protection [Credits: Pierre Monnot]
Dungeon Master for Amiga version 2.0 (French) cracked [Credits: Meynaf]
Dungeon Master for Amiga version 2.0 (German) cracked [Credits: Ingmar]
Dungeon Master for Amiga version 2.1 (English) Original, not working because of the copy protection [Credits: Johnny Grasset]
Dungeon Master for Amiga version 2.2 (English) Original, not working because of the copy protection [Credits: Johnny Grasset]
Dungeon Master for Amiga version 2.2 (German) Original, not working because of the copy protection [Credits: Sven Würfel]
Dungeon Master for Amiga version 3.6 (English, French, German)
This version consists of an official Amiga disk image in IPF format released by SPS. You need the Software Preservation Society (SPS, ex CAPS) emulator plugin to use this image. Note that this version is not copy protected.
Unofficial IPF disk images not released by SPS (they work fine in emulators but cannot be written to a floppy disk)
  • Dungeon Master for Amiga v2.0 (English)
  • Dungeon Master for Amiga v2.0 (French)
  • Dungeon Master for Amiga v2.0 (German)
  • Dungeon Master for Amiga v2.2 (English)

Dungeon Master for Atari ST version 1.2 (English), cracked, hacked and ported to Amiga by Meynaf

  • The graphics.dat file has been changed: the copy protection routine was replaced by the the FTL Logo “swoosh” data. The code is now in the main executable.
  • The dungeon.dat file is not changed.
  • That version runs in multitask (except for audio) and has an exit option (use CTRL-C if you don’t have any champion in your party).
  • The keyboard management was changed to play with the num pad.
  • The game is slow because of a dynamic translation of the screen that is still managed in Atari ST format.

Updated version 2006-02-14:

  • Audio is now allocated correctly
  • Screen is centered vertically (only OS 3.0+ can do that without workbench being visible behind)
  • Compatible with screen grabbers (copper is not used)
  • Graphics.dat file updated with higher quality sounds from the Amiga version

There are also programs that allow running some game versions from a hard disk:
Hard disk patches for Dungeon Master and Chaos Strikes Back from Aminet: In the directory “game/patch” of Aminet, there are two hard disk patches for Dungeon Master (dmpatch.lzh, dmhd.lha for version 3.6)
WHDLoad patch for Dungeon Master
Yet another hard disk patch for Dungeon Master

Compatibility with Amiga 1200
Dungeon Master for Amiga version 2.x was designed for Kickstart ROM version 1.2 or 1.3, found in Amiga 2000 and Amiga 500.
The game may not load on Amiga 1200 or 4000 computers because they contain a Kickstart ROM version 3.x.
Possible workarounds:

  • Play Dungeon Master version 3.6
  • Hold down both mouse buttons while you turn on the Amiga. Click ‘Display Options’ and select the ‘Original’ chip type, then boot with the Dungeon Master disk in the drive
  • Boot the computer with the ‘ReloKick’ program that allows loading a Kickstart version 1.3 in RAM, replacing the built-in computer ROM

See also: How to play Amiga games under Windows? (Dungeon Master, Chaos Strikes Back and Dungeon Master II)

Crack

This section details how to crack Dungeon Master for Amiga version 2.0 French. This nice work was done by Meynaf in his spare time between October 2003 and January 2004). It helps in understanding the protection mechanisms and how to bypass them. Maybe people inspired by this crack will be able to crack other versions.

Meynaf also cracked Dungeon Master for Atari ST and ported it to Amiga. He also cracked Chaos Strikes Back for Amiga and made it playable from hard disk. You can also download the Chaos Strikes Back for Atari ST version 2.1 assembler source code on Chaos Strikes Back for Atari ST. It is the disassembled source code of the original game (non cracked). People can study it if they want.
In the csb.s file, the following labels mark the checksum functions used by the copy protection: u3048, vcfae, w17ea. The last one is called from two places in the code. The save game routine has 3 out of the 4 checksums in the game, the programmers really did not want it to be modified as it contains a copy protection check.

Changes required to crack the game

Offset in file "DM"Replace XX
By YY
Notes
22DD04E55 0000: In C language code, all functions start with 4E55 followed by 0000 or a negative value. This is a LINK instruction to create the stack frame.
7000 4E75: 70xx is moveq #val,D0, that means put the value in D0 register. 4E75 is a RTS (a return). So this returns the value 0.
First protection read
After that the program runs until the presentation it switches on the floppy disk.
The original function directly accesses the floppy drive controller hardware and returns 0 if everything went fine, or stops the program if a copy is detected. This function is replaced by a simple "return 0" to bypass the test.
165F466: Conditional Branch
60: Unconditional Branch
Checksum
1797666: Conditional Branch
60: Unconditional Branch
Checksum
18BE466: Conditional Branch
60: Unconditional Branch
Checksum
1A29C6600 00A8: Conditional Branch
4E71 4E71: NOP NOP (no operation)
Checksum
1275A4E55: LINK instruction to create the stack frame.
4E75: RTS (just a return)
Hidden routine
The function that uses the graphic items as hidden protections is nearly identical, so it is easy to find.
ACBC6606: bne (Conditional Branch on code at +$06)
6010: Unconditional Branch
A test that can display the "System error 60" message
1906C63: Conditional Branch
60: Unconditional Branch
A test that can display the "System error 60" message
1964E4267 4878
6000 0290
Save game function

Note: Three of the four checksums are performed on the save game function.

Additional changes required to run the game from hard disk:

  1. Because the program accesses files using the name of the floppy disk (which is “DungeonMaster”), you have to run the following command before running the game to map this name to the folder where you have the game files (you have to be in that folder before running this command):
    assign DungeonMaster: ""
  2. The “swoosh” program checks the integrity of the master disk (it can display the message “Damaged master disk” if that fails) and then displays the FTL logo.
    In the file “swoosh”, at offset $36a, replace 4EBA 03F6 4A40 661a by 4E71 4E71 4E71 601A to neutralize this test.
    4EBA 03F6: jsr (to a function located $3f6 bytes after that instruction)
    4A40: tst.w d0
    661a: bne (conditional branch to code at +$1a)
    4E71: NOP
    601A: Unconditional branch to code at +$1a.
  3. There is a function to ensure that the game disk is in the floppy drive. If it is not there, a message is displayed asking for it.
    In the file “DM”, at offset $15194, replace 4E55 FFB0 by 7001 4E75 to bypass this test (the function returns 1 if the disk is present in the drive).

Tips on cracking other versions

Other versions of the game require similar changes, but it is not very easy to find the offsets where you need to change some bytes.
You need a good debugger (like devpac), try to find all abnormal disk accesses and neutralize them with NOP or RTS instructions.

You can search for disk access routines by looking for floppy disk controller address FF8600 on Atari ST and address BFD100 on Amiga.

Often conditional branches (6x codes) are replaced by unconditional branches (code 60, BRA). For example, after computing a checksum, the program branches depending on the value of the checksum. Replacing the conditional branch by an unconditional branch can bypass the checksum test.

You also need to find all the checksums in the code and neutralize them.
To find the code for checksums, you have to search for “ADD.W (A?)+”. One of the checksums is used on the dungeon.dat file so it can be ignored for the crack. For the others, you need to find which functions calls the checksum functions and which results they are looking for. Then you can neutralize the checksums by always giving the calling functions the results they want.

There is a word value “0C91” stored in binary item #558 in graphics.dat at offset 3234 which is used by the copy protection. In the program, a variable is compared to that value. Other values are written in the variable in case the protection fails which seem to cause the animation freeze. The variable is initialized with that value from the graphics.dat file.

To find the protections, some numerical constants are useful to search: 4ef9, 103e3, 88, 31e9, 22b, 459, c91, 1f4.
Some of them (88, 31e9, 22b, 459, c91) are arbitrary values only used to store the result of protection checks. Others (103e3, 1f4) are counter values: after these numbers of clock ticks, the game stops.
The 4ef9 value is the binary code for the JMP instruction. It is used by the checksum functions to ensure that they are working on the correct code. At the beginning of the program, there is a large list of JMP instructions that jump to various functions in the code. The checksum functions compare the first word of data of the function they have to check with the JMP code (4ef9) to ensure they are working on the function’s real code and not the JMP table at the beginning of the program.
These values seem to be identical in all versions, some of them can be found in Chaos Strikes Back for Windows.