A quick tour of the Map Detectives: Urban Mystery data files (SHA1 hashes). Let's see how this game is put together!
The easy bits
- This directory holds the installer for a standard copy of Adobe Acrobat reader. Required because there are PDF documents supplied with the game and it was not guaranteed that the user would have access to the Internet to install a PDF reader.
- This directory contains PDF copies of the printed maps distributed with the game CD. If you lose the original map or need extra copies for a classroom of students you can print these high-resolution versions.
Nothing too mysterious here: it's the saved games and profiles.
You'll also find
TOption.txtwhich holds the selections from the 'Teacher Options' menu. Note that this includes the 'password' tickbox so if you've locked yourself out you can delete this file to get back in.
Some interesting bits in this directory!
setup.jar together make up the installation program.
It's based on a product called InstallAnywhere which was acquired by Macrovision in 2005.
It's a Java-based installation wizard that bundles it's own JRE and still somehow requires native stub executables for the Windows and MacOS platforms :-(
media.inf might also be part of the installer.
mdOLD.ico are icon files.
They look identical except one is red and one is green.
The metadata timestamps for these files show that
MD.icon was created at 2005-06-08 15:22:08 while
mdOLD.ico was created earlier at 2004-12-01 16:20:20.
shell_script are Unix shell scripts.
shell_script does anything of interest: it takes two file names and copies data from the first to the second, translating carriage-returns (ASCII 13 / 0dh) to line feeds (ASCII 10 / 0ah).
This seems to have been used to convert text files from Mac (pre-OSX) line endings to Linux/MacOS lin endings.
Possibly this was used by the developers when porting the game from MacOS to OSX?
SherstonCopy.app is an interesting one: it's an OSX application but at only 14KB it can't do much.
Is it part of the OSX installer?
Some sort of copy protection?
This one will have to be looked at another day…
Cast members and extras
So it turns out that the game is written in Macromedia Director and published as a Shockwave player executable.
Director originated as a multimedia presentation product and content is authored for it using related metaphors: Director files have a 'stage' on which animated objects known as 'cast members' are moved along a 'timeline'.
These are stored in
.DIR Director files.
Cast members can also be stored in external files and shared between multiple Director scenes.
These are known, appropriately enough, as 'external cast members' and are stored in
When a Director project is exported to a compiled executable the
.CST files are compressed and repacked as
The game stores all it's Director and cast files in the
Despite its name the directory
/xtras/ actually has nothing to do with cast members.
Director projects are programmed in a proprietary language called Lingo.
It's compiled down to bytecode and the original script source is stripped from
.CXT exported files.
For operations that can't be performed from Lingo, Macromedia offered a system called Xtras which are native-code libraries that expose additional features through a COM-based SDK.
The xtras included with Map Detectives are:
- This is the third-party library Buddy API which provides access to Windows and Mac OSX system APIs. It's still for sale today and lets you use a plethora of functions. Map Detectives uses this xtra to change the screen resolution.
- These xtras appear to be for controlling audio mixing and volume.
- This xtra adds additional I/O functions and is used for game save/loading as well as loading game data.
Flash Asset Options.x32
- I believe these are xtras used for text and graphics rendering; nothing too exciting here.
- This is an xtra supplied with Director 6 that allows you to display and interact with themed dialog boxes. I believe Map Detectives uses this for save game dialogs as well as the 'are you sure you want to exit' prompt.
- This is a third-party xtra used for printing from within the game.
Sound Import Export.x32
- This is a standard Macromedia xtra but I'm not sure why it's included with the game -- possibly leftover from development?
The meat of the game:
This is where the majority of the game content lives. Let's take a closer look at it next time…