Wednesday, November 20, 2013

Hacking the Map Format - Part Deux

The previous method was a little too hacky for me - let's do this the right way:

The map file basically has two values at the front (map rows and map columns):


Why didn't I notice this earlier? Well, I was brute force decompressing the images, originally -
the second multi file archive format is a little different than what I originally thought;
more on that in a later post. For now, let's attack this map format.

So this is how I normally plan an attack:

1.What do I know?
- I know the width and height of the map in blocks
- Knowing the above, I can figure out the number of files (WIDTH*HEIGHT)
- I know that each block is 64x64
- I know that the end result is a big blitted map

2.What do I have?
- I have parts of the map.
- I have information about the map in its final form.

3.What do I want?
- I want a compiled map.

4.How can I get what I want with as little manual effort as possible?
- I could stream every step:
*For each file
>Carve out
>Unpack
>Convert to ARGB8888 from ARGB1555 (16->32bit)
>Stick it on a blank image

So that's our workflow... in python:


As promised, in no particular order, here's a zip of all the maps dumped (including the unreleased ones):

Culdcept 2 Maps

Next up - The Card Format

No comments:

Post a Comment