Tuesday, January 20, 2009

First post

This blog is for me to talk about hacking and exploiting console and PC video games for two of my hobbies. Data extraction and interpretation for papercrafting and game modification. Currently my main project is Metal Gear Solid Integral for PC.

I discovered right away that the game stores almost all of its data in files with a .MGZ extension. These files are actually standard ZIP files, rename and extract.

Inside the STAGE.MGZ file are many files relating to NPC and player mesh data, textures, stages and other supporting data. Mesh and texture data are stored in .DAR files, which I'll say stands for Data ARchive.

The DAR format is simple, starting with a short int describing the number of files contained in it followed by the first filename. All data is DWORD aligned.
I am able to extract all the data from the DAR format and am working on a repacker for modified game data.

DAR files contain a few different file formats: PCX, KMD, and OAR are what I'm most interested in right now. PCX format is used for the games low-res textures. They have power of two width and height, 8-bit color and do not appear to be compressed. KMD format stores the mesh data. NPC, player and stage data are all stored in the same KMD structure. OAR data looks like it is probably animation and/or bone data and is always associated with a KMD file. For example SNAKE.KMD has a corresponding SNAKE.OAR file. KMD data is not compressed and I have not yet looked into OAR files in depth.

I'll be posting my current ripping/packing tools later and will be updating with a GUI in the future.