Jump to content

Home

Monkey Island Special Edition - File Formats


Bennyboy
 Share

Recommended Posts

  • Replies 283
  • Created
  • Last Reply

Top Posters In This Topic

Thanks for the dumper and source jott. Lets all try not to duplicate each other's work here. Lets try and post what we are working on/discover so we don't overlap.

 

[Edit] If it runs without the pak thats excellent news! Dont even have to write a pak compiler.

Link to comment
Share on other sites

Hi everyone !

 

Serge, do you intend to release your tool to unpack Monkey1.pak ? It would be useful for foreigners like me, as I'm french I could put the Monkey1.000 and Monkey1.001 files from the original french version. Thanks :)...

 

I do - as mentioned above, I planned on Friday - not sure at the moment, since I have a lot of work-work and leaving on vacation tomorrow. But maybe. In any event, Jott already has something out.

 

@Serge, two questions though:

Do you plan to release the source code of your tool?

And do you know what the table at 0x28 (referred at 0x8) is for?

 

Source code: Not at the moment, simply because it shares a lot of code with a longer term "secret" project ;), which will probably be open source. Shares as in "copy/paste and quick hacks" which means it's not even close to clean and won't be maintained - since the original project already decodes PAK also. Only did this tool to get something out quick.

 

As for 0x28 - no idea yet. Did all this rather quickly last night, so when it worked, I actually stopped looking at the package format and focused on the DXT stuff. Fast enough to not find any file count in the format either, which means at the moment, it simply reads the offset table until it reaches the known position of the name table.

 

And yes, Remonkeyed Explorer also decodes all files to the same folders if wanted (that's what the "Use original subfolder" checkbox is there for). Great news that unpackaged resource use wasn't disabled for the release :)

Link to comment
Share on other sites

Continuing the division of labour - I'll work on a quick 'texture replacer' program, for the moaners who want to do a guybrush "hair patch".

 

I'd also appreciate any input from anyone on the audio for the new music inside the soundbanks. The format tag identifies it as WMA (from what I know about the format tag) but It doesnt look like WMA. Either its not WMA or its encrypted/obfuscated somehow.

Link to comment
Share on other sites

About that "hair patch" thing.

I wonder if the people who want to fix this knows how much work they'll actually have to do.

Guybrush does have quite a few elaborate animations he goes trough during the course of the game.

Not gonna be a small job to animate the new hair on all of them.

Link to comment
Share on other sites

I had a very brief look at the audio files. I used this program to extract the files from the wavebanks. The .WAV-files seem to play without doing anything to them. The .WMA-files do not as bg says. Opened them in a hex editor and concluded that most of the start with the hex values 09 00 00 03 (I was looking at the MusicNew.xwb file). Also opened up some .WMA-files i had lying on my HD. Many of them has this byte pattern (09 00 00 03) at what seems to be the end of the header or the beginning of the data. I don't know exactly how this program (unxwb) extracts the files but maybe the .WMA-files are stored without the header and it needs to be reconstructed somehow? I don't know, maybe this could give some ideas. I don't have time to look into at it at the moment.

Link to comment
Share on other sites

@Laserschwert:

The PAK file is indeed the fallback! So just putting files in the right directory will replace them in-game.

 

@bgbennyboy:

No, I'm not working on any GUI. Maybe I'll try to find out something about the XML later.

Link to comment
Share on other sites

Serge, do you intend to release your tool to unpack Monkey1.pak ? It would be useful for foreigners like me, as I'm french I could put the Monkey1.000 and Monkey1.001 files from the original french version. Thanks :)...

 

It seems to suffice to put the files to classic\en\Monkey1.000 and classic\en\Monkey1.001 - relative to your "Secret Of Monkey Island SE" folder.

Link to comment
Share on other sites

@jott: Had a look at your source - we're very much in agreement :) Not sure about the constant 0 DWORD in the dir entries, but (potential) compression type might be right, since that's what I remember it used for in (I think) VIMA compression for either CMI or GF.

 

I'm looking into the 0x28 table right now...

 

I guess you did so already, but you might want to swap width and height when reading from the .dxt file, since height is stored first (FourCC - Height - Width).

 

Blabbering here - just got confused (for the 29th time in the past 3-4 years) by DDS_HEADER storing height first :p

Edited by Serge
Link to comment
Share on other sites

So, releasing Remonkeyed Explorer (as described at the start of the topic) now...

 

It only allows to dump files from monkey1.pak as-is, as well as convert .dxt to .dds. In other words, it does nothing that jott's tool doesn't do already. Except for having a pseudo-fancy GUI :)

 

Specs for the monkey1.pak file as they're currently known are included.

 

There's no installer - just run the file. Application requires .NET Framework 3.5 SP1, though - Client Profile will do, and if MS get their way, you'll need it anyway for other stuff, if you don't have it already :rolleyes:

 

The installer for the "small" version (280KB web installer which will then download the framework which is approximately 28MB - if it isn't installed already) - AKA "Client Profile" can be found here:

http://go.microsoft.com/fwlink/?LinkId=123879

 

Not expecting to support this app much. It was done quickly, in order to get something out, and lots of code was simply copied from "that other project". Which means I can't be bothered maintaining that code in two places ;)

 

http://highland.mixnmojo.com/other/Remonkeyed_1.0.0.54.zip

 

Also, hi Benjamin and Tomas :)

Edited by Serge
Link to comment
Share on other sites

Nah, I think (as I did before the game came out) that it's always the original game running, and the new art is "projected onto it".

 

That's what I'm saying. It's synced to the original game. To do that, the original game has to be running underneath.

Edited by cocomonk22
Link to comment
Share on other sites

That's what I'm saying. It's synced to the original game. To do that, the original game has to be running underneath.

 

Misunderstood you then, but in that case, nothing codewise keeps it from running the original game with the sound effects, and turning the art projection off.

Link to comment
Share on other sites

So, releasing Remonkeyed Explorer (as described at the start of the topic) now...
When opening the PAK-file with it, I get the following error:

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.TypeInitializationException: The type initializer for 'RemonkeyedExplorer.FileFormats.FileFormatManager' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Das System kann die angegebene Datei nicht finden.
File name: 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
  at RemonkeyedExplorer.FileFormats.FileFormatManager.PopulateFileTypes()
  at RemonkeyedExplorer.FileFormats.FileFormatManager..ctor()
  at RemonkeyedExplorer.FileFormats.FileFormatManager..cctor()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

  --- End of inner exception stack trace ---
  at RemonkeyedExplorer.frmMain.OpenFile(String path)
  at RemonkeyedExplorer.frmMain.itemFileOpen_Click(Object sender, EventArgs e)
  at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
  at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
  at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
  at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
  at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
  at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
  at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)

Link to comment
Share on other sites

 Share


×
×
  • Create New...