MTropolis MPL

From XentaxWiki
Revision as of 20:27, 29 August 2022 by imported>Ikskoks (→‎Notes and Comments)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

MPL

  • Format Type : Archive
  • Endian Order : Little Endian
  • Signature : 01 00 A5 A5


Format Specifications

// MPL file format

// little endian


// header (56 bytes)
4 bytes - signature  // always 01 00 A5 A5
4 bytes (uint32) - unknown  // 55 AA 00 00 (43605)


2 bytes (uint16) - nulls
4 bytes (uint32) - "struct 1" offset  // 14
struct 1
{
   2 bytes (uint16) - ID  // 1002
   2 bytes (uint16) - nulls
   4 bytes (uint32)- unknown
   4 bytes (uint32)- unknown
   2 bytes (uint16)- nulls
}


2 bytes (uint16) - nulls
4 bytes (uint32) - "struct 2" offset
struct 2
{
   2 bytes (uint16) - ID // 1000
   2 bytes (uint16) - nulls
   4 bytes (uint32) - unknown
   4 bytes (uint32) - unknown
   2 bytes (uint16) - nulls
}

struct 3  
{
   4 bytes (uint32) - number of streams
   2 bytes (uint16) - unknown  // 1
   2 bytes (uint16) - number of segments
}


// stream table (34 bytes per entry)
number of streams *
{
   16 bytes (char) - stream name  // e.g. "assetStream", "bootStream", "sceneStream" etc.
   2 bytes (uint16) - unknown  // 10241
   4 bytes (uint32) - unknown  // 1F 98 65 53
   4 bytes (uint32) - unknown  // 94836
   2 bytes (uint16) - unknown  // 4399
   6 bytes - nulls
}


// struct 4  (segments table)
4 bytes (uint32) - unknown  // 1
num_of_segments *
{
   4 bytes (uint32) - segment ID // 0, 2, 3 etc.
   2 bytes (uint16) - segment name length
   x bytes (char) - segment name  // "Startup segment", "MTI1" etc.
   2 bytes (uint16) - length of segment path
   x bytes (char) - segment path  // "MTI1:DATA_MTI:", "MTI2:DATA_MTI:" etc.
}


// struct 5 (14 bytes)
4 bytes (uint32) - ID  // 1001
8 bytes (uint64) - unknown  // 00 00 4B 0C 00 01 26 00
2 bytes (uint16) - nulls


// struct 6 (24 bytes)
16 bytes (char) - name  // "builtObjects"
4 bytes (uint32) - unknown  // 31488
4 bytes (uint32) - unknown  // 31488


// struct 7 (14 bytes)
4 bytes (uint32) - ID  // 1004
4 bytes (uint32) - unknown
4 bytes (uint32) - unknown
2 bytes (uint16) - nulls


// struct 8 (10 bytes)
10 bytes - unknown


38 bytes - unknown


x bytes - string ("Macintosh 8bit")


// file list (big endian??)
4 bytes - ?
2 bytes - filename length
1 byte - /x00
4 bytes - ?
4 bytes - file size
2 bytes - ?
x bytes - filename

// data
number of file list entries *
{
   x bytes - data
}

Games

List of games using this file format:

  • Free Willy Activity Center (PC) (*.MPL)
  • MindGym (PC) (*.MPL)
  • Muppet Treasure Island (PC) (*.MPL)
  • SPQR: The Empire's Darkest Hour (PC) (*.MPL)
  • The Day The World Broke (PC) (*.MPL)

quickBMS Script

Not written yet.

Notes and Comments

  • The games using MPL archives have been created using mTropolis Editor.
  • In the games final builds mTropolis Player (MTPLAY32.EXE) is used to read data from MPL archive.
  • In "Muppet Treasure Island" game there is only one MPL archive called MTI1.MPL. It holds most of the game's data.
  • There is a high chance that MPL archive stores files readable only by Macintosh, because mTropolis Editor was never available on Windows.

Compatible Programs

See Also

Gallery