Join also our Discord channel! Click here.

Search found 639 matches

by Bigchillghost
Wed Mar 28, 2018 4:53 am
Forum: Tutorials
Topic: Basic BMS Scripting
Replies: 4
Views: 3831

Re: Basic BMS Scripting

If you've read all the usages of the above commands, we can start our demonstration now. The game we're deaing with is still Marvel Avengers: Battle for Earth. But before we start writing our BMS script, we have to know the full structure of the archive we're going to unpack. And this'is the overall...
by Bigchillghost
Wed Mar 28, 2018 4:53 am
Forum: Tutorials
Topic: Basic BMS Scripting
Replies: 4
Views: 3831

Re: Basic BMS Scripting

The following division is not necessarily correct. Controling Statements: Debug [Mode] CleanExit Append [Direction] File Attributes Statements: IDString [FileNum] String Endian Type [VAR] ComType ALGO [Dict] [Dict_Size] Searching and Jumping Statements: FindLoc VAR Type String [FileNum] [ERR_Value] ...
by Bigchillghost
Wed Mar 28, 2018 4:51 am
Forum: Tutorials
Topic: Basic BMS Scripting
Replies: 4
Views: 3831

Basic BMS Scripting

Attention : This topic is subject to the Programming Section under the tutorial An Imitable Workflow for Reverse Engineering A Game Model . Part I. Basic BMS Scripting As you may or may not know, QuickBMS is an extremely powerful tool for archive unpacking. It's originally created by @aluigi and is...
by Bigchillghost
Wed Mar 28, 2018 4:48 am
Forum: Tutorials
Topic: Analyzing and Reverse Engineering a Game Archive
Replies: 5
Views: 3365

Re: Analyzing and Reverse Engineering a Game Archive

Similarly, we can also reverse the structure of the "KFSQ" chunk. But I'm not going to explore it here. Consider it as a task for practicing. But in the BMS scripting part, I'll expose you the whole structure of the archive. Finally, we have reached the end of this manual researching section. Thanks...
by Bigchillghost
Wed Mar 28, 2018 4:48 am
Forum: Tutorials
Topic: Analyzing and Reverse Engineering a Game Archive
Replies: 5
Views: 3365

Re: Analyzing and Reverse Engineering a Game Archive

Now we have to figure out the structure of each chunk. Start with the "TX2D" chunk first. Jump to 0x1800, where we can see a lot of "TX2D" markers. For convenience of analysis, we need to align them like this: https://i.imgur.com/Hi8JDOO.jpg Let's see how many markers there are: 0x12C / 0x14(20) = 0...
by Bigchillghost
Wed Mar 28, 2018 4:46 am
Forum: Tutorials
Topic: Analyzing and Reverse Engineering a Game Archive
Replies: 5
Views: 3365

Re: Analyzing and Reverse Engineering a Game Archive

We continue the analysis from 0x1800, and measure the size from here to where this chunk ends. Note that the end offset must be a multiple of 0x800. So we get it at 0x2800. 0x2800 - 0x1800 = 0x1000, which can be found at the header. Here at 0x2800 we see another magic: "KFSQ". Again let's measure th...
by Bigchillghost
Wed Mar 28, 2018 4:45 am
Forum: Tutorials
Topic: Analyzing and Reverse Engineering a Game Archive
Replies: 5
Views: 3365

Re: Analyzing and Reverse Engineering a Game Archive

Let's open it with HexEdit. The first thing I usually do is to measure the size of the whole file. Press the EOF button at the lower left of the calculator and it says 0x67F000. OK, let's analyze the data. The first 4 bytes is the file magic: "SMX7", which's the only thing that can verify the archiv...
by Bigchillghost
Wed Mar 28, 2018 4:42 am
Forum: Tutorials
Topic: Analyzing and Reverse Engineering a Game Archive
Replies: 5
Views: 3365

Analyzing and Reverse Engineering a Game Archive

Attention : This topic is subject to the Manual Researching Section under the tutorial An Imitable Workflow for Reverse Engineering A Game Model . Part IV. Analyzing and Reverse Engineering a Game Archive In Part III we've been able to extract the model from one of the nif files. But these files ar...
by Bigchillghost
Wed Mar 28, 2018 4:34 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

Up to now, I've shown you how to analyze a model format, and to use Hex2Obj to validate your guess. I've also left you with another nif file (iron_skin_m.nif).
See if you can extract the model within on your own.

So, I guess that's all for this part.

Return to the main tutorial.
by Bigchillghost
Wed Mar 28, 2018 4:32 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

We can even test with submesh2 if we want to. Just need several steps of calculations to obtain the start offsets: Vertices: 0xE7C7 + 2686 * 48 = 0x2DF67 UVs: 0x2DF67 - 0x4 = 0x2DF63 FI: 0x6764 + 13323 * 2 = 0xCF7A With the assistance of the calculator of HexEdit we can get the results within a few ...
by Bigchillghost
Wed Mar 28, 2018 4:31 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

Now it's time to handle the UVs. As you may recall, the UVs are ahead of the vertex coordinates, so we can't use its position relative to the coordinates to access to them. Instead, we use the obsolute offset of the UVs. The UVB size is the same as the vertices as they're under the same structure. W...
by Bigchillghost
Wed Mar 28, 2018 4:29 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

We didn't find any info about the face buffer here but we find some similar structure before the indices buffer: https://i.imgur.com/6wiEqeb.jpg 00 00 80 22 Face Buffer Size 00 00 00 02 Submesh Count 00 00 00 00 First Submesh's Starting Index 00 00 34 0B First Submesh's Indices Count 00 00 34 0B Sec...
by Bigchillghost
Wed Mar 28, 2018 4:27 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

You can grope around for the proper indices count of submesh1 by decreasing the amount and then check the result. But I'm not going to do it that way. We notice that the max vertex index is 2686 (0xA7E), which is larger than the remaining 647 (0x287). So the max index no doubts equals the vertex cou...
by Bigchillghost
Wed Mar 28, 2018 4:25 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

After that let's return to the face indices block, which is at 0x6760 if you don't remember. We know that our vertices count is 3333 < 65535(maximum value that an unsigned short can represent), so the indices should be using short intergers. All game models' face indices are stored as triangles (inc...
by Bigchillghost
Wed Mar 28, 2018 4:21 am
Forum: Tutorials
Topic: Analyzing and Extracting a Game Model
Replies: 22
Views: 6810

Re: Analyzing and Extracting a Game Model

Now let's open this file in Hex2Obj. Press litE to change the endianness to big-endian, seq to handle "structured" data, noPtC to switch to display as point cloud, and fill in the start offset and count of the vertices. https://i.imgur.com/09k3daU.jpg For the data type of the vertices, let's try sho...