April 21Apr 21 Supporter Just a quick glance, nothing serious, SPRITES.Q3, width of 640 at the right side: Edited April 21Apr 21 by shak-otay
April 21Apr 21 Author I have also requested smiRaphi to see if he can support it with his tool. Maybe he can do a good job.
April 22Apr 22 Author 1 hour ago, DKDave said: Please only post some samples of the relevant files, not a link to the full game ISO. Sorry, I didn’t realize…
April 25Apr 25 Supporter I did some research on this a long time ago, here's a wiki article https://rewiki.miraheze.org/wiki/MTropolis_MPL
April 25Apr 25 Supporter Quote In "Muppet Treasure Island" game there is only one MPL archive called MTI1.MPL. It holds most of the game's data. edit: most important info: Quote There is a high chance that MPL archive stores files readable only by Macintosh, because mTropolis Editor was never available on Windows. The unfinished py script from ikskoks' link gives this from .MPL (after adding parenthesis to the print lines), 201 strings found: Quote 4343 Tell0_1: 48 Tell0_2: 4513 Size of str: 15 Tell: 4544 Size: 13337 Size of str: 15 Tell: 4575 Size: 29515 Size of str: 24 Tell: 4615 Size: 38727 ... Size of str: 13 Tell: 10523 Size: 22879 Size of str: 18 Tell: 10557 Size: 6644 Size of str: 13 Tell: 10586 Size: 25004 Sum_size: 6140271 Names (extensions .aif, .pal, .pic, .tun): Quote 'G00_CREDIT.AIF' 'G00_BEAKER.aif' 'Beaker_finale_smoke.tun' 'G00_muTreasureMapSting.AIF' 'D01agf04.AIF' 'G00_E02_TROLANEY.AIF' 'D01a_FlagJollyDown2.TUN' 'G00_E02_WHEEL.AIF' 'Calico Dick"oof".AIF' 'G00_E02_TREASURE.AIF' 'DrLivesly"ooh".AIF' 'G00_E02_SAVE.AIF' 'D01aP009.tun' 'G00_E02_LOAD.AIF' 'B10.pal' 'E01_BG_Default.pic' 'E01.pal' ... 'A06_ex01.TUN' 'A06_DYNTHROW.AIF' 'FUSE_1.AIF' 'B08_0012.tun' 'A06_map.pic' 'G99_muMT.AIF' 'A06_Xspot.tun' 'C18_muSH.AIF' 'A05_BG_WinOpen.PIC' 'A05_S007.tun' 'Smollet"hmmm".AIF' 'A05_PF01.tun' Using offzip is no dice, and well, Aluigi wrote about 7 years ago .MPL is hard to extract. Watching some video of MTIsland could help to decide whether it's worth the effort: (There's no 3D models, just sprites, afaics.) Edited April 25Apr 25 by shak-otay
April 25Apr 25 Localization The MPL file has pointers in to the other MPX files, or in other words, the MPL file contains the directory for content in the MPL + all the other numbered MPX files. The Archive File Number in the Streams directory tells you which MPL/MPX file contains the specific file... +--------------------------------------------+ | Muppet Treasure Island MTI1.MPL + MTI#.MPX | +--------------------------------------------+ // The main file is MTI1.MPL which contains the directory and some file data, followed by MTI2.MPX , MTI3.MPX , ... for additional file data. // HEADER 2 - Version (1) 2 - Unknown ((bytes)165,165) 4 - Unknown 2 - null 4 - Block 1 Offset (14) // BLOCK 1 4 - ID (1002) 4 - Unknown 4 - Unknown 2 - null 2 - null 4 - Block 2 Offset (34) // BLOCK 2 4 - ID (1000) 4 - Unknown 4 - Unknown 2 - null // STREAMS AND SEGMENTS DIRECTORIES 4 - Number of Streams 2 - Unknown (1) 2 - Number of Segments // for each stream (34 bytes per entry) 16 - Stream Name (null terminated, filled with nulls) ("assetStream", "sceneStream",...) 4 - Unknown 4 - Stream Abbreviation ("eStr") 2 - Archive File Number 4 - Stream Offset 4 - Stream Length 4 - Unknown (1) // for each segment 4 - Segment ID (0, 2, 3, ...) 2 - Segment Name Length (including null terminator) X - Segment Name 1 - null Segment Name Terminator 2 - Segment Path Length (including null terminator) X - Segment Path 1 - null Segment Path Terminator // STREAM DATA // for each stream 4 - ID (1001) 4 - Unknown 4 - Unknown 2 - null X - Stream Data
April 25Apr 25 Localization On 4/22/2026 at 9:07 AM, shak-otay said: Just a quick glance, nothing serious, SPRITES.Q3, width of 640 at the right side: This is the structure of the Q3 Archive. Within it are at least a PAL file of RGB888 data, and multiple Sprites. +-----------------------------+ | Muppet Treasure Island *.Q3 | +-----------------------------+ // HEADER 4 - Header (MDM!) 2 - Unknown (256) 2 - Unknown (256) 4 - Directory Offset // FILE DATA // for each file X - File Data // DETAILS DIRECTORY 8 - null 4 - Directory Length 4 - Number of Files X - Unknown // for each file 4 - File Length 4 - Entry Type (1=Sprite, 3=?, 4=?, 5=Palette) 4 - File Offset 4 - null +------------------------------+ | Muppet Treasure Island *.spr | +------------------------------+ // Requires a separate PAL file to be loaded from the archive // HEADER 2 - Image Width 2 - Image Height 2 - Half Image Width 2 - Half Image Height 2 - null 2 - Unknown (3) 4 - Image Data Length // IMAGE DATA // for each pixel 1 - Palette Index
April 25Apr 25 Localization took a look myself and got this far but pretty sure the files in the FILE_INFO block aren't actually in the archives (at least not in the format the file extension of them would suggest) import type.time; struct Str16 { u16 l; char v[l-1]; padding[1]; }; using b; struct se { char name[0x10]; padding[8]; // memory junk u16 seg_id; u32 off; u32 size; if (size != 0 && seg_id == 1) { u64 p = $; b b @ off; $ = p; } }; struct sge { u32 seg_id; Str16 name; Str16 path; }; struct fe { padding[4]; u32 nl; u32 stream_id; u32 unk2; char name[nl-1]; padding[1]; }; enum bid:u32 { STREAM_SEG = 1000, OBJ = 1001, ROOT = 1002, FILE_INFO = 1004, }; using pb; struct b { bid id; u16 unkb0; u16 unkb1; u16 unkb2; u32 size; u64 ep = $ + size; match(id) { (bid::STREAM_SEG):{ u32 n_strms; u16 unk1; u16 segc; se se[n_strms]; u32 unk2; sge sge[segc]; } (bid::OBJ):{ char name[0x10]; u32 unk1; u32 unk2; b b; } (bid::ROOT):pb b[while($ < ep)]; (bid::FILE_INFO):{ u16 unk1; u16 h; u16 w; u16 unk2; u16 unk3[8]; u32 unk3; u32 c; fe fe[c]; } } if (ep > $) $ = ep; }; struct pb { padding[2]; u32 off; $ = off; b b; }; struct a { u16 unk1; u16 unk2; u32 unk3; pb root; }; a a @ 0; Edited May 22May 22 by NeoGT404 format tcorrection
April 25Apr 25 Localization For the Q3 file, type 4 is audio, type 3 might be some form of animation?
April 26Apr 26 Localization 18 hours ago, NeoGT404 said: For the Q3 file, type 4 is audio, type 3 might be some form of animation? Thanks, yes Type 4 looks to have raw audio at offset byte 80, unsigned 8-bit PCM, frequency 22050, 1 channel (mono) - good pick up. Type 3 I assumed was either some kind of scripting (or maybe animation like you suggest), otherwise maybe screen positioning (ie where to put the images on the screen). Quote took a look myself and got this far but pretty sure the files in the FILE_INFO block aren't actually in the archives (at least not in the format the file extension of them would suggest) I agree with this as well. Edited April 26Apr 26 by wattostudios
Create an account or sign in to comment