MIRROR MENACE
=============

Minimum Memory Requirements:
----------------------------

  With Music     :  381k

  Without Music  :  372k

These numbers refer to the amount of memory reported as the "Total" on the
game's startup screen. This is NOT the amount of free conventional memory you
have from DOS. The startup screen shows you how much memory is available AFTER
the program itself has been loaded into memory.

Please note that even if you technically have enough memory, you may still
encounter situations where the game runs out of memory. This is a limitation
of the engine's memory manager.

The old version needed about 440k to play all of the levels with music enabled.
It would have been just 392k with the patch for loading audio data directly
without using a temporary buffer.


Changelog:
----------

- The sprite data has been optimized with uGrab to reduce memory usage. This
  lowered the overall memory requirements by about 12k.

- Memory requirement for loading music has been cut in half by skipping the
  Huffman decompression code and loading the audio data directly into the final
  buffer. The audio data is not actually compressed, so doing the decompression
  would just waste time and memory.

- Added some code to free the sprite and tile graphics before trying to load a
  new map, so the game won't run out of memory while loading the map data.

- Added some code to clear the cache when bringing up the control panel, the
  help menu, the in-game text boxes and the ending sequence.

- Also added some code to lock the text buffers for the end text to make sure
  the "PageLayout: Text not headed with ^P" error doesn't pop up.

- Added my screen update patch to get rid of the graphics glitches.

- Fixed the bug that would cause the game to lock up when entering the
  teleporter on the world map.

- The in-game help text will no longer make ALL of the graphics purgable at the
  end (which could have caused crashes under certain circumstances). Instead of
  making the graphics purgable, it now forces the score box to reset. Also, you
  can now exit from the help text by hitting the Escape key instead of having
  to go through all of the pages.

- Moved some data around to restore the Borland copyright string and therefore
  avoid the null pointer message when the program quits to DOS. Since the
  Borland string was overwritten, the program would always have shown the null
  pointer message anyway, regardless of whether a real null pointer assignment
  had occured or not. It's generally not a good idea to mess with the copyright
  string like this.

- The platform sprite now uses 4 shifts instead of 2. This should get rid of
  the jerky movement while Keen is standing on a platform that moves left or
  right.

- The state of the switch controlling the turrets is now restored correctly
  when loading a saved game.

- Fixed the "impossible bullet bug" and the "pole door glitch".

- Fixed a NULL pointer issue that might have crashed the system when touching
  (saving) one of Keen's friends in a level.

- The first two levels have been modified to introduce the new ceiling- and
  floor-mounted switches. Some players seemed to have some trouble recognizing
  these as switches. Maybe these changes help a little.

- Some levels have been redesigned to prevent the player from getting stuck in
  an unwinnable state. This means some level elements have been moved around a
  bit or were cut from the levels.

- The boss level now has a way to get out of the area with the red door if the
  player doesn't have the key.


TODO:
-----

- demos need to be re-recorded to match the new level layouts (at least one of
  the demos was already broken in the original release!)

- poor writing and grammatical errors all over the place

- quitting with an error message fills the screen with random garbage instead
  of displaying the error message
