We just moved to a different server. Please be patient until all files and pages are restored and the MediaWiki software has been updated. Thank you

The Dark Eye

From REWiki
Jump to: navigation, search

The Dark Eye is an interactive CD-ROM game from Inscape. It was developed for Windows 3.1/95 and Mac using Macromedia Director 4.0.


Directory Structure

    • AL - Annabel Lee
    • BN - Berenice
    • CA - The Cask of Amontillado
    • DIRFILES - Director animation files
    • ML - Malevolence
    • NT - Logos and title music
    • RD - The Masque of the Red Death
    • TH - The Tell-Tale Heart
    • XOBJECTS - DLL files
  • SAVEDDKY - Saved game files

Each of the 'story' directories (AL, BN, CA, etc.) contain music and video files used for that segment of the game. The data files for each story are further broken down into A–F directories, usually with an additional SJ folder for 'Soul Jump' video files (used when the player switches from one character to the other mid-story).


  • DARKEYE.EXE - A 16-bit New Executable (NE) file which is the Director 4.0 Projector file used for running the game.
  • INCOMING.EXE - A 16-bit New Executable (NE) file, similar to DARKEYE.EXE, but probably used for playing promotional material for Inscape's upcoming media.


Inspecting the strings inside the DLLs revealed function names, descriptions, and parameters. Both DLL files appear to be Director 4.0 External Factories (XFactories) or XObjects, which were written in Lingo (Director's scripting language).[1]

The first letter specifies a return type, while any letters immediately following it are parameter types. The types they represent are as follows:

  • X: No return value
  • I: Integer
  • S: String
  • L: Handle to list of integers
  • P: Picture handle
  • O: XObject instance
  • V: variable number and type of arguments and variable return type


Director 4.0 FileIO XFactory for file read and write functions.

-- FileIO External Factory. 9feb93 JT FileIO

 ISS    mNew, mode, fileNameOrType       -- Creates a new instance of the XObject
 X      mDispose                         -- Disposes of XObject instance.
 II     mWriteChar, charNum              -- Writes a single character. Returns error code
 IS     mWriteString, string             -- Writes out a string of chars. Returns error code
 I      mReadChar                        -- Returns a single character
 S      mReadWord                        -- Returns the next word of an input file
 S      mReadLine                        -- Returns the next line of an input file
 S      mReadFile                        -- Returns the remainder of the file
 SSS    mReadToken, breakString, skipString
 I      mGetPosition                     -- Returns the file position
 II     mSetPosition, newPos             -- Sets the file position. Returns error code
 I      mGetLength                       -- Returns the number of chars in the file
 ISS    mSetFinderInfo, typeString, creatorString
 S      mGetFinderInfo                   -- Gets the finder info
 S      mFileName                        -- Returns the name of the file
 I      mDelete                          -- Delete the file and dispose of me
 I      mStatus                          -- Returns result code of the last file io activity
 SI     +mError, errorCode               -- Returns error message string
 V      mReadPICT                        -- Return handle to Metafile
 S      mNativeFileName                  -- Returns the native (dos) name of the file
 II     +mSetOverrideDrive, driveLetter  -- Set override drive letter ('A' - 'Z') to use when loading linked castmembers. Use 0x00 to clear override.


A Director XObject for custom Inscape functions. These are used inside the .DIR files.

-- SpaceMgr XObject. Copyright 1995 Inscape v1.0b1 10March95 BDL SpaceMgr

 I      mNew                                -- Creates a new instance
 X      mDispose                            -- Disposes XObject instance
 I      mLastError                          -- Last error code
 I      mMemUsed                            -- RAM occupied by this object and data
 S      mListData                           -- List all data
 I      mSortAll                            -- Sort internal arrays
 IS     mCheckForDups, bool                 -- Set to true to check for Duplicate items before adding an element
 IS     mParseText, text                    -- Parse Text into a space structure
 S      mGetCurData                         -- List Current data
 ISSSS  mSetCurData, sc, s, n, v            -- Pass in names of elements to make current
 ISS    mAddSpaceCollection, name, data     -- Add a Space Collection
 IS     mRemoveSpaceCollection, name        -- Remove a Space Collection
 IS     mSetCurSpaceCollection, name        -- Set current SpaceCollection
 S      mGetCurSpaceCollection              -- Get current SpaceCollection
 SS     mGetSpaceCollection, name           -- Get SpaceCollection with name
 ISS    mAddSpace, name, data               -- Add a Space
 IS     mRemoveSpace, name                  -- Remove a Space
 IS     mSetCurSpace, name                  -- Set current Space
 S      mGetCurSpace                        -- Get current Space
 SS     mGetSpace, name                     -- Get Space with name
 ISS    mAddNode, name, data                -- Add a Node
 IS     mRemoveNode, name                   -- Remove a Node
 IS     mSetCurNode, name                   -- Set current Node
 S      mGetCurNode                         -- Get current Node
 SS     mGetNode, name                      -- Get Node with name
 ISS    mAddView, name, data                -- Add a View
 IS     mRemoveView, name                   -- Remove a View
 IS     mSetCurView, name                   -- Set current View
 S      mGetCurView                         -- Get current View
 SS     mGetView, name                      -- Get View with name
 ISS    mAddLocalLink, name, data           -- Add a link to the current view
 IS     mRemoveLocalLink, name              -- Remove a link from the current View
 I      mRemoveLocalLinks                   -- Remove all links from the current View
 SS     mGetLocalLink, name                 -- Get link with name from the current view
 S      mGetLocalLinks                      -- Get all links from the current view
 ISS    mAddGlobalLink, name, data          -- Add a global link
 IS     mRemoveGlobalLink, name             -- Remove a global link
 SS     mGetGlobalLink, name                -- Get global link with name
 S      mGetGlobalLinks                     -- Get list of all global links

Other file formats

  • .AIF - Standard AIFF audio.
  • .DIA - Director 4.0 Audio. Standard AIFF audio format.
  • .DIR - Unprotected Director 4.0 Movie files.
  • .DKY - Saved-game files.
  • .MOV - QuickTime Cinepack movie files of differing resolutions and FPSs, with CBR, 22.3 kHz, 8-bit, mono unsigned little-endian PCM audio.
  • .MUS - Standard AIFF audio.


Personal tools