MTropolis MPL: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| (23 intermediate revisions by the same user not shown) | |||
| Line 23: | Line 23: | ||
struct 1 | struct 1 | ||
{ | { | ||
2 bytes (uint16) - | 2 bytes (uint16) - ID // 1002 | ||
2 bytes (uint16) - nulls | 2 bytes (uint16) - nulls | ||
4 bytes (uint32)- unknown | 4 bytes (uint32)- unknown | ||
| Line 35: | Line 35: | ||
struct 2 | struct 2 | ||
{ | { | ||
2 bytes (uint16) - | 2 bytes (uint16) - ID // 1000 | ||
2 bytes (uint16) - nulls | 2 bytes (uint16) - nulls | ||
4 bytes (uint32) - unknown | 4 bytes (uint32) - unknown | ||
| Line 42: | Line 42: | ||
} | } | ||
struct 3 | struct 3 | ||
{ | { | ||
4 bytes (uint32) - number of streams | 4 bytes (uint32) - number of streams | ||
2 bytes (uint16) - unknown // 1 | |||
2 bytes (uint16) - number of segments | |||
} | } | ||
| Line 61: | Line 62: | ||
// struct 4 | // struct 4 (segments table) | ||
4 bytes (uint32) - unknown // 1 | 4 bytes (uint32) - unknown // 1 | ||
4 bytes (uint32) - | num_of_segments * | ||
2 bytes - | { | ||
x bytes - | 4 bytes (uint32) - segment ID // 0, 2, 3 etc. | ||
2 bytes - | 2 bytes (uint16) - segment name length | ||
x bytes - | 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") | x bytes - string ("Macintosh 8bit") | ||
// file list (big endian) | // file list (big endian??) | ||
4 bytes - ? | 4 bytes - ? | ||
2 bytes - filename length | 2 bytes - filename length | ||
| Line 91: | Line 122: | ||
=== Games === | === Games === | ||
List of games using this file format: | List of games using this file format: | ||
* Free Willy Activity Center (PC) (*.MPL) | |||
* MindGym (PC) (*.MPL) | * MindGym (PC) (*.MPL) | ||
* Muppet Treasure Island (PC) (*.MPL) | * Muppet Treasure Island (PC) (*.MPL) | ||
| Line 102: | Line 134: | ||
=== Notes and Comments === | === Notes and Comments === | ||
* The games using MPL archives have been created using '''mTropolis Editor'''. In the | * 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. | * 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 === | === Compatible Programs === | ||
Latest revision as of 20:27, 29 August 2022
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
- Muppet Treasure Island MPL Tool (unfinished)
- mTropolis Editor (not available for public)
- mTropolis Player
See Also
- mTropolis (wikipedia)
- mTropolis (computinghistory.org.uk)
- www.mfactory.com/mtropolis/ (webarchive backup)
- www.mfactory.com - games made with mTropolis (webarchive backup)
Gallery
-
mTropolis Player (mTPlayer - mTropis Windows Player) used in Muppet Treasure Island