1 Attachment(s)
Minecraft XBLA Compression Library
Due to the little time i can spend on development and research i decided to release this beta version of my Minecraft XBLA Compression Library.
This is a Library written in (unmanaged) C/C++ that can be used in your .NET (C# example available) applications to decompress and compress the compressed data from the savegame.
Make sure to give credits if used in your application.
Example (C#):
Code:
[DllImport("libminecraft.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint decompress([Out] byte[] compressed_buffer, uint compressed_size, [In] byte[] decompressed_buffer, uint decompressed_size);
public static extern uint compress([Out] byte[] decompressed_buffer, uint decompressed_size, [In] byte[] compressed_buffer, uint compressed_size);
void MyFunction()
{
UInt32 decompressed_size = <decompressed size>;
byte[] decompressed_buffer = new byte[decompressed_size];
uint compressed_size = <compressed size>;
uint result = decompress(compressed_buffer, compressed_size, decompressed_buffer, decompressed_size);
// result now contains the real decompressed size and decompressed_buffer contains the decompressed data.
}
Re: Minecraft XBLA Compression Library
great work done as always fairchild :D
Re: Minecraft XBLA Compression Library
Thanks, this is amazing. Is there anyway we should know what the decompressed size is, or do we have to guess for now?
Re: Minecraft XBLA Compression Library
Quote:
Originally Posted by
maskedstick
Thanks, this is amazing. Is there anyway we should know what the decompressed size is, or do we have to guess for now?
The decompressed size is in the header, or you can simply guess and then trim the byte array after you decompressed using the real decompressed size.
I implemented this in NBTExplorer, but now i want to know which is the best map editor that is open source so that i can modify that to use xbox360 savegames. :)
Re: Minecraft XBLA Compression Library
Okay, I have a few questions. Assuming that for each chunk, the chunk data starts with decimal value 128 (that seems to be common to every chunk), how many bytes after that does the header take up (where does the actual compressed data start relative to the beginning of the chunk)? And am I supposed to be passing the whole chunk, including the header, to your methods? Or should I only be passing the compressed data?
Re: Minecraft XBLA Compression Library
Damn dude. Good shit as always fairchild :3
Re: Minecraft XBLA Compression Library
Quote:
Originally Posted by
maskedstick
Okay, I have a few questions. Assuming that for each chunk, the chunk data starts with decimal value 128 (that seems to be common to every chunk), how many bytes after that does the header take up (where does the actual compressed data start relative to the beginning of the chunk)? And am I supposed to be passing the whole chunk, including the header, to your methods? Or should I only be passing the compressed data?
Ok, this is how the chunk headers looks like.
Code:
Magic= 0x80, 0x00
ChunkSize=<short / uint16>
Could be one of these two:
DecompSize=<long / uint32>
Or:
Version=<short / uint16>
DecompSize=<short / uint16>
CompressedData=starts with 0xFF...
You should only send the compressed data in the compressed_buffer nothing else.
Re: Minecraft XBLA Compression Library
nice work as always fairchild
Re: Minecraft XBLA Compression Library
Thank you, I finally got it working. This is truly amazing. But I noticed one thing (which, in practice, doesn't make a difference):
Shouldn't this:
Code:
[DllImport("libminecraft.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint decompress([Out] byte[] compressed_buffer, uint compressed_size, [In] byte[] decompressed_buffer, uint decompressed_size);
be this?
Code:
[DllImport("libminecraft.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint decompress([In] byte[] compressed_buffer, uint compressed_size, [Out] byte[] decompressed_buffer, uint decompressed_size);
and same for the compress method?
It seems that in the decompress method, the compressed_buffer is what's going IN to the method to be processed, and the decompressed_buffer is what's coming OUT.
Like I said, in practice, there's no difference, but I wanted to help get rid of confusion.
Re: Minecraft XBLA Compression Library
how can use in VB.NET? i will programming a simple tool for me to Compress and DeCompress the file.
Re: Minecraft XBLA Compression Library
Quote:
Originally Posted by
maskedstick
Thank you, I finally got it working. This is truly amazing. But I noticed one thing (which, in practice, doesn't make a difference):
Shouldn't this:
Code:
[DllImport("libminecraft.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint decompress([Out] byte[] compressed_buffer, uint compressed_size, [In] byte[] decompressed_buffer, uint decompressed_size);
be this?
Code:
[DllImport("libminecraft.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint decompress([In] byte[] compressed_buffer, uint compressed_size, [Out] byte[] decompressed_buffer, uint decompressed_size);
and same for the compress method?
It seems that in the decompress method, the compressed_buffer is what's going IN to the method to be processed, and the decompressed_buffer is what's coming OUT.
Like I said, in practice, there's no difference, but I wanted to help get rid of confusion.
That might be right, i'm no expert in C# and i rarely code things using this language.
Re: Minecraft XBLA Compression Library
i can decompress savegame.dat under 9MB but if the file is big over 9MB, crash the Decompressor, plz fix
Re: Minecraft XBLA Compression Library
Quote:
Originally Posted by
OzelotDEHD
i can decompress savegame.dat under 9MB but if the file is big over 9MB, crash the Decompressor, plz fix
Can you upload your savegame somewhere so that i can take a look?
Re: Minecraft XBLA Compression Library
Has anyone gotten this to work with C#? If so, can you post a code sample? I get an AccessViolationException whenever I try to decompress a save file. Not knowing the slightest thing about C++, I'm not sure what to do.
Re: Minecraft XBLA Compression Library
Quote:
Originally Posted by
fairchild
I implemented this in NBTExplorer, but now i want to know which is the best map editor that is open source so that i can modify that to use xbox360 savegames. :)
MCEdit is open source, its writen in Python not sure if thats a problem
Re: Minecraft XBLA Compression Library
Quote:
Originally Posted by
Garbag3man117
Has anyone gotten this to work with C#? If so, can you post a code sample? I get an AccessViolationException whenever I try to decompress a save file. Not knowing the slightest thing about C++, I'm not sure what to do.
Here is the C# source code i used to test the decompression function of the library with.
Code:
// Compressed data (test)
public byte[] Chunk = new byte[2025] {
0xFF, 0x28, 0x3E, 0x07, 0xE0, 0x02, 0x10, 0xE2, 0x83, 0x00, 0x00, 0x23,
0x07, 0x57, 0x34, 0x00, 0x00, 0x6F, 0x30, 0xDE, 0xF6, 0xF7, 0xBE, 0x5B, 0x77, 0x75, 0x6F, 0x65,
0xEB, 0xD6, 0xBD, 0x92, 0xFD, 0xB2, 0x5F, 0x1C, 0x31, 0x2C, 0x02, 0x04, 0x5C, 0x80, 0x11, 0x10,
0x81, 0x8C, 0x41, 0xCF, 0xB8, 0x65, 0xD4, 0x49, 0x23, 0x21, 0x49, 0x52, 0x2D, 0x02, 0x2E, 0x1C,
0x63, 0x90, 0x23, 0x8E, 0x75, 0x10, 0x91, 0xA2, 0x1C, 0xC7, 0x3A, 0xE9, 0x60, 0x40, 0x3C, 0x01,
0x00, 0x64, 0x06, 0xD0, 0x68, 0x0A, 0x00, 0xCC, 0xE1, 0xDC, 0xD6, 0x17, 0xB7, 0xB0, 0x6A, 0x3C,
0x23, 0x7C, 0x43, 0xF2, 0x04, 0xA4, 0x10, 0x9F, 0x3F, 0x5E, 0x01, 0x53, 0x96, 0x3A, 0x37, 0xD6,
0x3D, 0xBB, 0xD6, 0x0C, 0x46, 0x23, 0xDA, 0x69, 0x6D, 0x1D, 0x49, 0xD4, 0x26, 0x5B, 0x75, 0xE2,
0x26, 0x5F, 0xB6, 0x2E, 0xB8, 0xBF, 0x5F, 0x90, 0xC0, 0x00, 0xF9, 0xE0, 0xC6, 0x6C, 0x22, 0x93,
0x14, 0x0C, 0x20, 0x10, 0xC8, 0x02, 0x14, 0x21, 0x14, 0x7F, 0x3F, 0x08, 0xD8, 0x00, 0x00, 0x01,
0x00, 0x2A, 0x23, 0x82, 0xBB, 0x67, 0x28, 0xF3, 0x3F, 0xBE, 0xBF, 0x7B, 0xEF, 0xE3, 0xCC, 0x8C,
0x94, 0x89, 0x59, 0x0C, 0x5A, 0xBE, 0xA2, 0x59, 0x8C, 0x4A, 0x12, 0x4C, 0xD1, 0xD0, 0x22, 0x69,
0x41, 0xD0, 0x22, 0xCB, 0x5B, 0x0B, 0xDF, 0x7B, 0x45, 0xA5, 0xFA, 0x15, 0xE2, 0x77, 0xBE, 0x59,
0x6D, 0x56, 0xE9, 0x1A, 0x57, 0x3C, 0x23, 0xED, 0x8A, 0x9F, 0xEF, 0xAF, 0xBB, 0xF0, 0x42, 0x6F,
0x44, 0xED, 0x1C, 0x51, 0x45, 0x41, 0xDA, 0x51, 0x1D, 0x27, 0xC9, 0x9C, 0x4F, 0xC3, 0x3C, 0x4D,
0xE7, 0xE6, 0xAA, 0x3B, 0xCD, 0xB2, 0x67, 0xEE, 0x6E, 0x8F, 0xE9, 0x6B, 0xA5, 0xB3, 0x68, 0xD1,
0x01, 0x56, 0xBA, 0x21, 0xCC, 0xB7, 0x1E, 0x76, 0x9E, 0x85, 0x5C, 0xA6, 0xD8, 0x24, 0x17, 0x8E,
0x79, 0xDB, 0xE3, 0xD2, 0xEF, 0xE6, 0xD7, 0x79, 0x28, 0xA6, 0x73, 0x33, 0x0D, 0x0E, 0x7A, 0xF1,
0x1C, 0x97, 0xD4, 0xA3, 0x1E, 0xAC, 0xE8, 0xD6, 0x3E, 0xD7, 0xE0, 0xE8, 0x99, 0xD4, 0xCF, 0x51,
0xDF, 0x62, 0xB7, 0xCD, 0x18, 0xAB, 0x12, 0x09, 0x61, 0xDE, 0xCB, 0x7E, 0x64, 0xD5, 0xA9, 0xA3,
0x84, 0xC7, 0xAE, 0xA7, 0xF1, 0xC7, 0xAB, 0x89, 0x91, 0x3E, 0xEB, 0x44, 0x95, 0xED, 0xD6, 0x53,
0xBF, 0xA9, 0x2C, 0x51, 0xDB, 0xD7, 0x09, 0x15, 0xCD, 0xCD, 0x3D, 0x06, 0x08, 0x56, 0x55, 0xA8,
0x98, 0x8D, 0xBC, 0x74, 0x38, 0x2C, 0x56, 0x0B, 0x71, 0xA6, 0x38, 0xFD, 0x30, 0xB1, 0x6C, 0x1C,
0xDE, 0x32, 0x85, 0x35, 0xC6, 0xA8, 0xC8, 0xEE, 0x09, 0x35, 0xC3, 0xC3, 0x17, 0xFD, 0x71, 0x36,
0x19, 0xD5, 0x76, 0xF2, 0x5A, 0xEC, 0x43, 0x61, 0x7B, 0x6F, 0x4C, 0xEC, 0x76, 0x25, 0xF4, 0xF8,
0x34, 0xA1, 0x49, 0xD1, 0x6F, 0x03, 0xB2, 0x50, 0xA5, 0x3D, 0xAA, 0xBD, 0x3C, 0xB7, 0x7B, 0x3D,
0xB6, 0xBD, 0x94, 0xD9, 0x2A, 0x15, 0xC3, 0x2A, 0x26, 0x75, 0x1A, 0x31, 0x7D, 0xB3, 0x42, 0x2B,
0xB3, 0xB7, 0xC0, 0x35, 0x23, 0x12, 0x37, 0xE3, 0x1D, 0xBA, 0x9C, 0x99, 0xC5, 0x2F, 0x43, 0xCD,
0xDA, 0xC0, 0xE4, 0xF0, 0x77, 0x86, 0xC3, 0x23, 0xCD, 0x91, 0x3F, 0x2B, 0xB4, 0x5B, 0xE6, 0xA4,
0x64, 0x72, 0xF2, 0x23, 0xFC, 0x33, 0x25, 0xFA, 0xAE, 0xBC, 0x2C, 0x48, 0x23, 0x29, 0x96, 0x17,
0x01, 0x06, 0x9B, 0xEA, 0x4E, 0xAF, 0xE6, 0x02, 0x21, 0xE5, 0x52, 0x01, 0x8D, 0x6A, 0x90, 0x4C,
0xA8, 0x98, 0xE3, 0x76, 0x00, 0x69, 0x2D, 0x3B, 0xDB, 0xD1, 0xC0, 0x53, 0xC7, 0x4E, 0x16, 0xC3,
0xB5, 0xDA, 0x0D, 0x94, 0x54, 0x57, 0x1F, 0x1F, 0x08, 0x03, 0xBC, 0x8B, 0xE6, 0xE5, 0x40, 0x31,
0x9B, 0xA0, 0xF7, 0xA4, 0x32, 0x01, 0x41, 0x44, 0x0E, 0x02, 0xEA, 0x9E, 0xCB, 0x1F, 0x4C, 0x89,
0xE3, 0xEA, 0x05, 0xA7, 0x03, 0x4D, 0x2F, 0x5B, 0x69, 0x76, 0x52, 0xE5, 0xBB, 0xE5, 0x07, 0xD5,
0x2B, 0xD6, 0x0B, 0x5F, 0xBD, 0xC6, 0xBC, 0xA5, 0x96, 0x50, 0xC0, 0x21, 0xAC, 0x90, 0x9B, 0xEA,
0x08, 0xC8, 0x9B, 0xFC, 0xC3, 0x64, 0x00, 0x91, 0x36, 0x14, 0x00, 0x63, 0xC4, 0x9F, 0x79, 0xBF,
0x9C, 0x1D, 0xA4, 0x52, 0x23, 0x10, 0x98, 0xE6, 0x85, 0x80, 0xC9, 0xC8, 0xFE, 0xC5, 0x4D, 0xE4,
0x97, 0x53, 0xBA, 0x67, 0xF1, 0xC8, 0x8A, 0x39, 0x4B, 0x16, 0x38, 0x66, 0x61, 0xBA, 0xEC, 0x8E,
0x00, 0xFF, 0x60, 0x9A, 0x29, 0xB5, 0xC9, 0xF6, 0x53, 0xA1, 0x4A, 0xC1, 0x77, 0x8F, 0x36, 0xE6,
0x8E, 0xE1, 0xE6, 0x20, 0x50, 0x91, 0x01, 0xD4, 0xB4, 0x12, 0x25, 0x6B, 0x39, 0x86, 0x98, 0xFE,
0x72, 0x6B, 0xDE, 0x4F, 0x79, 0x37, 0x81, 0x12, 0x5B, 0x11, 0xB3, 0x20, 0xC0, 0x8D, 0x74, 0x43,
0x46, 0x65, 0x20, 0x63, 0xA1, 0x84, 0x48, 0x72, 0x5C, 0x9D, 0x22, 0x7A, 0xB1, 0x87, 0x0C, 0xBF,
0xA9, 0xF4, 0x16, 0x03, 0x9F, 0x17, 0x08, 0xB2, 0x0C, 0xB3, 0xAF, 0x84, 0x08, 0x6E, 0x4F, 0x98,
0x08, 0xDE, 0x97, 0xAF, 0x74, 0x21, 0x88, 0xA0, 0xFE, 0x29, 0x88, 0x25, 0x55, 0x91, 0x92, 0x20,
0x79, 0x86, 0xDA, 0xF2, 0xA7, 0x63, 0x67, 0xAC, 0x70, 0xA5, 0x92, 0xBA, 0x6C, 0x8E, 0x2C, 0x65,
0x6C, 0x5A, 0xFD, 0x27, 0xBD, 0x49, 0xA6, 0x5B, 0x98, 0x9A, 0xEC, 0x04, 0xFB, 0xB9, 0xB4, 0xC0,
0x0C, 0x91, 0x75, 0x50, 0x7A, 0x90, 0xDD, 0x3F, 0xD8, 0x92, 0x74, 0x55, 0x23, 0x4C, 0x97, 0x1A,
0x0C, 0x61, 0x46, 0x4B, 0xC5, 0xC5, 0x0C, 0xFE, 0x10, 0x8A, 0x12, 0x58, 0x35, 0xA1, 0x57, 0x68,
0x87, 0xBE, 0xC6, 0x39, 0xD2, 0x2C, 0x94, 0x73, 0xA6, 0xDC, 0xDC, 0xE4, 0x42, 0xCF, 0x9C, 0xA6,
0x29, 0x2C, 0xB6, 0xB7, 0x1D, 0xCF, 0x84, 0x7E, 0x40, 0xF9, 0xB9, 0x8A, 0x2C, 0x06, 0xD5, 0x24,
0x4E, 0x23, 0x01, 0x99, 0x4B, 0x4B, 0x49, 0xE6, 0xAA, 0xE0, 0xD0, 0x20, 0x7D, 0x15, 0xB7, 0xA6,
0xE4, 0xA1, 0x9A, 0x06, 0x2E, 0x1E, 0xAA, 0x4B, 0x6A, 0xEB, 0xE3, 0x10, 0x60, 0xB7, 0x65, 0x31,
0xC5, 0x2A, 0x11, 0x4B, 0xB2, 0xCB, 0xD2, 0xFC, 0xC8, 0xB3, 0x6A, 0x2F, 0xB9, 0x58, 0xC7, 0x48,
0x09, 0xE9, 0xAA, 0x82, 0x46, 0x82, 0x47, 0xA1, 0x77, 0x53, 0x69, 0x42, 0x86, 0x66, 0x42, 0x37,
0xB3, 0x69, 0x2A, 0x4A, 0x0A, 0x44, 0x1C, 0x88, 0x22, 0x2C, 0x0A, 0xC4, 0x67, 0x0A, 0xCF, 0x5A,
0x8C, 0xCF, 0xE7, 0xE7, 0xD7, 0xF1, 0xD1, 0x7F, 0x1B, 0xC9, 0xD7, 0x08, 0x9F, 0x99, 0x6C, 0x8D,
0xA9, 0x06, 0xA6, 0x2F, 0x04, 0x8A, 0x90, 0x14, 0x17, 0x06, 0x49, 0xCA, 0xE4, 0x09, 0xA6, 0x7A,
0x1F, 0x0B, 0xF9, 0x46, 0xB3, 0x61, 0xC8, 0x23, 0xA6, 0x61, 0x08, 0xE4, 0x73, 0x8E, 0x46, 0xD0,
0x6B, 0x9A, 0xEE, 0xEE, 0x18, 0x2C, 0xE2, 0xF2, 0xF4, 0xD6, 0x1A, 0x11, 0x9C, 0x12, 0x46, 0xF9,
0x87, 0xCA, 0x0B, 0x04, 0xAB, 0x31, 0x86, 0x2A, 0x58, 0x8B, 0x5A, 0xA8, 0xF2, 0x7E, 0xF0, 0x59,
0xFA, 0x14, 0x21, 0x26, 0xAE, 0x0A, 0x7C, 0xB5, 0x02, 0x93, 0x11, 0x3C, 0xE6, 0x30, 0xF3, 0xD8,
0x05, 0x9A, 0x8F, 0xE9, 0xC9, 0x41, 0x7F, 0x76, 0xB9, 0x92, 0x46, 0xC6, 0x8E, 0x97, 0xF8, 0x00,
0xB5, 0x1E, 0x4A, 0xB2, 0xDA, 0x4E, 0xDF, 0x8A, 0x64, 0x16, 0x4A, 0x10, 0x0E, 0xC3, 0x68, 0x16,
0x48, 0xAE, 0x31, 0xC4, 0x3C, 0x37, 0x06, 0xE2, 0xF6, 0x20, 0x76, 0x15, 0x68, 0xA1, 0x44, 0x49,
0x50, 0x02, 0x09, 0x43, 0x13, 0xCC, 0x20, 0x3C, 0x18, 0x4A, 0x69, 0x6C, 0xDC, 0xAA, 0xC6, 0x5D,
0x3F, 0xBD, 0x06, 0x55, 0x12, 0x7D, 0x99, 0x39, 0x4B, 0xF6, 0xE3, 0xC2, 0x0A, 0xA2, 0x49, 0xD7,
0xB8, 0x46, 0x77, 0x5D, 0x21, 0xC3, 0xB8, 0x0E, 0xA4, 0xD7, 0x66, 0x3C, 0x77, 0x88, 0xD6, 0xB9,
0x28, 0x6A, 0x7A, 0x51, 0x76, 0xAF, 0xD3, 0x9C, 0x94, 0x4A, 0x4B, 0x30, 0xF5, 0xCA, 0x8E, 0x1D,
0x0B, 0xCB, 0x64, 0x7E, 0x30, 0xDA, 0xC8, 0x67, 0xF9, 0x37, 0xC0, 0x0C, 0x45, 0x47, 0xA5, 0x11,
0xCC, 0x87, 0xAA, 0x98, 0x86, 0x20, 0xA1, 0x2A, 0x99, 0x90, 0x32, 0xC0, 0xBC, 0x56, 0x51, 0xD0,
0x33, 0x1C, 0x36, 0x44, 0xA5, 0x13, 0x82, 0x69, 0xEA, 0x2A, 0x15, 0xB5, 0x15, 0xB7, 0x0E, 0x45,
0x48, 0x04, 0x4D, 0x35, 0x43, 0x48, 0x8C, 0x3E, 0xA9, 0x15, 0x90, 0xAC, 0x77, 0xC8, 0x0E, 0xCE,
0x42, 0x15, 0x8D, 0xA0, 0xC3, 0x2E, 0x80, 0x3A, 0x94, 0x20, 0x07, 0x1F, 0x9C, 0x3C, 0x09, 0xAF,
0x33, 0x8A, 0x48, 0x90, 0xC3, 0x1B, 0x45, 0xCE, 0xD1, 0xF0, 0x8E, 0x35, 0xD1, 0xF9, 0x4E, 0xE7,
0x12, 0x2A, 0x24, 0x54, 0xC1, 0xDA, 0xBE, 0x64, 0x52, 0x2B, 0x54, 0xC0, 0x2A, 0x1A, 0x29, 0xA7,
0x61, 0x95, 0x55, 0xC8, 0x64, 0x01, 0x2A, 0x99, 0x2E, 0x2A, 0x49, 0xBF, 0x14, 0x3A, 0x09, 0x5E,
0x04, 0x8A, 0x29, 0xE9, 0xA3, 0xD4, 0x6C, 0x30, 0x9C, 0x6B, 0xCF, 0xD3, 0x30, 0xBB, 0xE9, 0x98,
0x66, 0x44, 0xA8, 0x83, 0x51, 0xDB, 0x5F, 0x72, 0x25, 0x1C, 0x54, 0x0C, 0x77, 0xCE, 0x3A, 0x8C,
0x20, 0xC9, 0xFA, 0xDA, 0xF9, 0xD0, 0xA0, 0xDE, 0xEA, 0x73, 0x8C, 0xE3, 0xEC, 0x16, 0x15, 0x19,
0x02, 0xA4, 0x20, 0xE4, 0xAB, 0xE4, 0xC5, 0x2D, 0x9B, 0xDA, 0x8F, 0x49, 0x06, 0x21, 0x61, 0x82,
0xA8, 0x1B, 0x22, 0x23, 0xE8, 0x43, 0x99, 0x8E, 0x75, 0x8E, 0xD3, 0x83, 0x2C, 0x6B, 0xAD, 0xF0,
0x72, 0x24, 0x48, 0x25, 0xD7, 0x26, 0xC6, 0xF2, 0x4E, 0x35, 0x08, 0x49, 0xF0, 0x75, 0x12, 0x6F,
0xE1, 0x42, 0x22, 0x40, 0x06, 0x08, 0x68, 0x43, 0x36, 0xFC, 0x3D, 0x8C, 0xA5, 0x2D, 0x47, 0xC0,
0x3F, 0x3C, 0x1D, 0x0E, 0xC5, 0xC5, 0x18, 0x64, 0x1B, 0x62, 0xEA, 0x92, 0x60, 0xE2, 0x5B, 0x31,
0xE2, 0x05, 0x2D, 0xD8, 0xDC, 0x79, 0x37, 0x6A, 0x38, 0x0F, 0x40, 0xB1, 0xA2, 0xA2, 0xB7, 0x1F,
0xD2, 0x49, 0x92, 0xB4, 0x4E, 0xF8, 0xB0, 0x1E, 0x0D, 0xFD, 0x19, 0xDE, 0x1A, 0x9D, 0xB8, 0xB8,
0xEF, 0x80, 0x96, 0x0B, 0xC0, 0xCD, 0x64, 0x33, 0xC9, 0x51, 0x52, 0x54, 0x6C, 0x09, 0x21, 0x45,
0x0A, 0x81, 0xA0, 0x49, 0x62, 0xC5, 0xC8, 0x76, 0x3A, 0xFE, 0x61, 0x13, 0x0F, 0xB9, 0x36, 0x1B,
0x62, 0x96, 0x69, 0xC1, 0x5B, 0x57, 0xAE, 0xB1, 0x1F, 0xC0, 0x7C, 0x78, 0x33, 0xA7, 0x89, 0x29,
0x11, 0x8F, 0xFF, 0x2B, 0xDE, 0xB9, 0x88, 0x20, 0x44, 0x30, 0x63, 0xF2, 0xA0, 0x2D, 0x45, 0x2C,
0x15, 0x74, 0x07, 0x96, 0xB2, 0x41, 0xC1, 0x53, 0x1E, 0x67, 0x0D, 0x99, 0xF7, 0xA3, 0x9A, 0xBC,
0x63, 0x99, 0x03, 0x8A, 0x4E, 0xB9, 0x52, 0x83, 0x52, 0x6D, 0x0C, 0x59, 0x2C, 0x12, 0x64, 0x4E,
0x68, 0x87, 0x20, 0x55, 0x96, 0xD1, 0xCA, 0xB1, 0x10, 0x69, 0xFD, 0x26, 0x9E, 0xF8, 0x12, 0xFE,
0x83, 0xD0, 0x8E, 0x00, 0xE7, 0x4E, 0x35, 0x78, 0x7E, 0x10, 0xB3, 0xE2, 0xA5, 0xAC, 0x24, 0xAF,
0x26, 0x61, 0x3F, 0xE4, 0xF0, 0x2F, 0xAA, 0x0A, 0xB8, 0x80, 0xFF, 0x45, 0xD4, 0xFB, 0x98, 0x2E,
0xA9, 0x33, 0x28, 0x37, 0x31, 0x59, 0x4B, 0x0A, 0xCB, 0x7F, 0xBE, 0xD5, 0xEF, 0x23, 0x17, 0x27,
0x75, 0x90, 0x01, 0xC7, 0x53, 0x9A, 0x88, 0xD5, 0x54, 0xD6, 0x85, 0x42, 0x07, 0x51, 0x88, 0x18,
0xF9, 0x30, 0x5D, 0x0E, 0x08, 0xCB, 0x0C, 0x24, 0xF4, 0x8E, 0x61, 0x1A, 0xDF, 0x85, 0x4A, 0xA1,
0x1B, 0x90, 0x22, 0x2B, 0x68, 0x0C, 0x98, 0x05, 0x42, 0xBA, 0xC0, 0xAA, 0x9C, 0x2D, 0x47, 0x8A,
0x39, 0x37, 0x30, 0xCA, 0xD8, 0xB4, 0x10, 0x39, 0x56, 0x2B, 0x6B, 0xE3, 0xEC, 0x52, 0x55, 0x11,
0x9F, 0xE5, 0x67, 0x16, 0x73, 0x46, 0x65, 0x59, 0x3A, 0x60, 0x79, 0xED, 0x97, 0xEB, 0xAA, 0x3C,
0xEC, 0xF6, 0xED, 0xAE, 0xE6, 0xB3, 0xC2, 0x02, 0xB5, 0x4B, 0x70, 0x1E, 0x38, 0xF6, 0x66, 0xB4,
0xBF, 0xDB, 0x2C, 0xC9, 0x83, 0x55, 0x43, 0x5B, 0x88, 0x8E, 0x43, 0xC9, 0x17, 0xC7, 0xFD, 0xD4,
0x5F, 0x4D, 0xE1, 0x8E, 0x09, 0xB3, 0xDE, 0xBF, 0x7F, 0xAD, 0xAB, 0x20, 0xDE, 0xDE, 0xB7, 0x76,
0x8D, 0xDB, 0x36, 0xA3, 0x99, 0xBF, 0x44, 0x51, 0xFE, 0x6A, 0x7B, 0xD7, 0xDD, 0x61, 0xA1, 0x8D,
0x8F, 0xB8, 0x10, 0xAD, 0x3B, 0x4C, 0xAD, 0xDE, 0xD1, 0xFF, 0x3F, 0x7A, 0xD1, 0x0D, 0xFC, 0x86,
0xC7, 0xB6, 0xC9, 0x18, 0x8F, 0xDF, 0x5E, 0xEA, 0xB1, 0x9B, 0xBC, 0x7B, 0x31, 0x30, 0xB7, 0xA2,
0x78, 0xFD, 0xF7, 0x6A, 0xEF, 0xEE, 0xF6, 0xAB, 0x76, 0xEE, 0xC5, 0xB2, 0x1D, 0xA1, 0xBA, 0x2F,
0x5C, 0xD9, 0x5B, 0x4B, 0xBA, 0xBA, 0x82, 0xE1, 0xC4, 0xA1, 0x40, 0xE3, 0x2D, 0x3F, 0x3D, 0x77,
0xFC, 0xF5, 0x85, 0x47, 0x3C, 0x27, 0xAE, 0x3F, 0x84, 0xB9, 0x70, 0x0F, 0x54, 0x73, 0x2B, 0x4D,
0xA1, 0x8E, 0xCF, 0x9F, 0x13, 0x3A, 0x68, 0xE2, 0xC3, 0x95, 0x73, 0x00, 0x4E, 0xE9, 0x20, 0x2B,
0x07, 0xEC, 0x4F, 0x9D, 0x18, 0xDB, 0xEF, 0x1D, 0x66, 0xB0, 0x67, 0xAE, 0xF7, 0x71, 0x26, 0xE7,
0xDC, 0xEE, 0xA7, 0x4C, 0x5C, 0xB6, 0xCB, 0x4F, 0xF1, 0x93, 0x79, 0x7B, 0x70, 0x6D, 0x67, 0x9E,
0xF4, 0xE6, 0xC3, 0x52, 0xF9, 0x73, 0x72, 0x4D, 0x21, 0xAB, 0x1D, 0xD9, 0x83, 0x9F, 0x7B, 0x3C,
0x8D, 0x73, 0x0D, 0xE1, 0x8A, 0xDB, 0x7F, 0x99, 0x4A, 0x64, 0xAC, 0x1E, 0x59, 0xEC, 0x9F, 0xF5,
0x49, 0xB3, 0x11, 0xC9, 0x4E, 0x53, 0x8B, 0x63, 0xF0, 0xAA, 0x31, 0x36, 0xC3, 0xE4, 0x9F, 0x82,
0xBF, 0xFA, 0x29, 0xFE, 0xAF, 0x5B, 0x9F, 0x4C, 0xFF, 0xEA, 0x50, 0xF9, 0x34, 0xA9, 0xE5, 0xBE,
0x95, 0x9F, 0xC2, 0xC9, 0xA0, 0x1E, 0xE1, 0x7F, 0xF7, 0xE9, 0x52, 0x75, 0x18, 0x62, 0x27, 0x70,
0x2C, 0x50, 0x13, 0x51, 0xBA, 0xEC, 0x60, 0x9F, 0x1E, 0xE9, 0xCB, 0xEE, 0xA1, 0x15, 0x7A, 0xC8,
0xB8, 0x23, 0xEE, 0x4D, 0x21, 0x74, 0xA0, 0x09, 0x77, 0xBF, 0xF2, 0xDB, 0x36, 0xD8, 0x84, 0x24,
0x77, 0x53, 0x4C, 0xDE, 0x74, 0xA7, 0xF2, 0x22, 0xD3, 0xCE, 0xC6, 0xFC, 0x82, 0x74, 0xE3, 0xC5,
0x62, 0xD5, 0x8A, 0x9C, 0xCF, 0xC5, 0x9E, 0x15, 0xB2, 0x27, 0xD9, 0x62, 0xAE, 0x27, 0xCB, 0x75,
0xB6, 0xAF, 0x8D, 0x5B, 0x13, 0xEE, 0xE9, 0x62, 0x63, 0x44, 0x23, 0xCD, 0xB7, 0xFA, 0xDD, 0xD9,
0x7F, 0xA3, 0x4D, 0xCA, 0xFE, 0x25, 0x9A, 0x55, 0xDE, 0x39, 0x66, 0x5D, 0xFE, 0xF9, 0x5E, 0x35,
0x01, 0x83, 0x66, 0xDD, 0x12, 0xF2, 0xAE, 0xB6, 0xC2, 0x59, 0xDD, 0x82, 0x5E, 0xF9, 0x9C, 0xFE,
0xCC, 0xB6, 0xDE, 0xB2, 0xBA, 0x96, 0xEA, 0x40, 0x74, 0x00, 0x00, 0x00, 0x00,
};
[DllImport("libminecraft.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint decompress([Out] byte[] compressed_buffer, uint compressed_size, [In] byte[] decompressed_buffer, uint decompressed_size);
private void test_decompress()
{
UInt32 decompressed_size = 82360;
byte[] decompressed_buffer = new byte[decompressed_size];
uint compressed_size = (uint)Chunk.Length;
uint result = decompress(Chunk, compressed_size, decompressed_buffer, decompressed_size);
}
Re: Minecraft XBLA Compression Library
Is it known whether or not this library will ever be open-sourced? I understand there were earlier complications with the Xenon interpreter, but is this library written completely in C/C++? I would very much like to port it to Mac OS X.
Re: Minecraft XBLA Compression Library
Thanks fairchild.
Do you know if TU 12 will affect the ability of your tools to work on MCXBLA? I expect that they will be changing from the McRegion format to Anvil but didn't know if any other changes would be made.
Re: Minecraft XBLA Compression Library
VB.NET plz example :) thx
Re: Minecraft XBLA Compression Library
thank you i will give credits for thank you very much :050: & nice work
Re: Minecraft XBLA Compression Library