the cutting room mirror

MDK (DOS, Windows)

MDK is a quirky third person shooter from Shiny.

Level Select#

During any of the game's main levels (i.e. not in the freefall or tunnel sequences), open up the help screen, enter seethewholegame on the keyboard, and hit Enter to activate it. Now, go back to the help screen and enter givemealliwantX with X replaced by the arena number. The player can also enter one of the following cheats once:

Code

Effect

nomorepractice

Skip from World 1 to World 2

toomanytargets

Skip from World 2 to World 3

skiphmoplease

Skip from World 3 to World 4

meatistoohard

Skip from World 4 to World 5

skipovergunt

Skip from World 5 to World 6

letmeseetheboss

Skip from World 6 to the ending

(Source: Peter Ferrie)

Developer Logging#

To enable developer logging, use the -dev parameter on the command prompt. Any errors encountered during gameplay will be added to a file named DEBUG.ERR.

Demo Recording#

Use the command prompt parameter -recordademo to do just that.

Backdoors#

The game normally does a sector check on the CD to make sure the MDK CD is inserted before the game plays. To disable this check, use the -iamapirate parameter on the command prompt (i.e. mdk -iamapirate). It's also re-enabled with the -cd parameter.

The game also checks the performance when booting up the game. This is disabled with the command prompt parameter -486okbyme (Europe), -486ok (North America, patched), or -486willbeslow (North America, unpatched). Of course, the programmers generously also added a -iam486 to reduce the detail enough for 486 users.

Programmer Cheats#

During any of the game's main levels (i.e. not in the freefall or tunnel sequences), open up the help screen, enter iamaprogrammer on the keyboard, and hit Enter to activate it. If the player likes using the command prompt instead, enter the parameter -anythinggoesD.

Now, enter one of the below on the help screen and hit Enter to activate it.

Code

Effect

conshow

Shows loading areas

sortmethod

??? (presumably would do something
related to the BSP sorting methods)

bsalmethod

???

The player may also enter movemecrazy on the keyboard, followed by cameratesting to disable clipping, allowing the player to move anywhere.

In addition, enter screwyviewing on the keyboard, followed by birdseyeview allows the player to see a top-down view of the playing field. Kurt will be represented by a box, as his sprite is not visible.

(Source: Peter Ferrie)

Unused Levels#

None of the unused levels have any entry point or exit, nor pickups or enemies. Most of them do not have textures, but all have collisions. The naming scheme used for describing the levels is WORLD_FOLDER / LEVEL_NAME with the actual in-game world number in brackets.

How to enter an unused level#

  1. Open the world MTO file (located in TRAVERSE\LEVELX) in a hex editor.
  2. Replace the name of the second level with the name of the unused one and vice versa.
  3. Open the game and go through the first level to reach the unused one.

Notes:

  • You must start the world from the beginning otherwise the game will crash.
  • The unused level is not connected to the passage leading from the first level and is likely quite far away. A trainer is required to fly over the void to the level.
  • If the game does not show the Copying Files loading bar then it will play the unmodified version of the world. To enforce loading of the modified version enter a different world first.

LEVEL3 / HMO_7 (in-game world no 3.)#

The main and only feature of this level is a triangle based building or platform. It has three walkways on each side of the base and a blue-hued semi-transparent tube in the middle topped with some rings and a roof. There is an additional copy of a walkway beneath the level. MDK_-_LEVEL3_HMO7.png

LEVEL6 / OLYM_9 (in-game world no 2.)#

This level looks like an early version of OLYM_3. In both levels there are three pedestals and two pathways leading to a notch in a wall. However, here the middle pedestal is missing a platform on its top. The color of the paths is blue instead of brown. And finally, this level is much much bigger.

LEVEL6 / OLYM_9

LEVEL6 / OLYM_3

LEVEL8 / GUNT_9 (in-game world no 5.)#

This is the only unused level which has a dedicated texture. It is used only for the floor. The texture looks a bit grainy which may suggest that the color palette is incorrect. The level is filled with differently sized cuboids scattered seemingly randomly around the floor. MDK_-_LEVEL8_GUNT9.png

LEVEL7 / DANT_8 (in-game world no 1.)#

The space in this level is enclosed by a transparent building with some interesting roof geometry. Inside there are multiple platforms creating two linked paths running the length of it. The slope leading up one of the paths is too close to the overhanging roof to pass through.

Translation Note#

This is a temporary directory for files
used in converting the US version to Japanese.
Files in this directory tree should not be
on the final cd.

The Japanese version contains README.TXT, which is a note that doesn't want to exist.

(Source: nightson)

Development Test#

Found inside both MDK.EXE and MDK95.EXE:

No more vertex stack space
cannot pop from vertex stack
Too many vertices requested: %d req, %d in use
Guess what?
Vertices released in wrong order or not enough vertices released
Too many vertices released for this pointer
Too many polygons for current sort list
Too many polygons for current sort list
Too many polygons for current sort list
Bad OBA/OB3/BSP color %s
Crpt strt pkt sz/ad %lu/%lX
  from %s line %d
Crpt end pkt sz/ad %lu/%lX
MemVfy: Bad magic %lX
No memory for %s - exiting
MemInit: Multiple calls to initialization
Unfreed memory found...
Memory block size %lu at %lX
  from MemAlloc in %s at line %d
  Total # of allocations  : %8lu
  Max simultaneous allocs : %8lu
  Total allocated bytes   : %8lu
  Max simultaneous bytes  : %8lu
  Largest allocation      : %8lu
  Current allocated bytes : %8lu
  Current allocs          : %8lu
Level
Mem
%8d from %s line %d : %
No memory for %s (%ld bytes)(%s:%d)
No memory for %s (%ld bytes)(%s:%d)
%8.8X : %7d : %s:%d : %s
Largest block %d
Other %d %d %d %d
3 Cooridors not allowed for arena
Total memblock size %8d
Total game memory   %8d
Total level memory  %8d
Total mto           %8d
Used corridor       %8d
Avail corridor
Failed to resolve overlay alien %s
freefall powerup list not found
No Aliens available in stream!
Alien not in list to be freed
Crpt strt pkt sz/ad %lu/%lX
from %s line %d
Crpt end pkt sz/ad %lu/%lX
MemVfy: Bad magic %lX
Cannot delete alien from chain because its not in it!!
No Aliens available!
FATAL - cannot find framerate
BG
CLIP
DRAW
COPY
SYNC
ALIEN
Damp: %s: %4.2f %4.2f %4.2f VPN: %4.2f VPNZ: %4.2f
SLIPPY
Rate: %2.2f     turn %d
last BSP ID = %d

Regional Differences#

As with several violent games, the violence has been somewhat toned down for the German version. The changes include:

  • Green blood has been changed to blue, which is almost unnoticeable in regular view unless the player shoots several aliens. It is very visible during head-shots.
  • The player cannot shoot off body parts of an enemy.
  • Explosions are much less gruesome.
  • From the statistics screen, the number of head-shots has been omitted.
  • Suicide bomber enemies sound much less human.

(Source: Schnittberitche)