Showing posts with label format. Show all posts
Showing posts with label format. Show all posts

Wednesday, December 24, 2014

Parsing the Creatures 1 Graveyard file

 
One more victim of my file format reversing spree : the "The Graveyard" file containing all entries of C1 cemetery.



Parsing it will allow us to retrieve/edit/add all entries from this game file.

Tuesday, December 23, 2014

Understanding in game stores (Doctor's page and Aprodisiacs). aka "Health" and "Aphro" files.

There are two "stores" in Creatures 1, at least that's how I call them.

Those are the panels allowing you to inject additional items to the world through the Doctor's page and the aphrodisiacs page from the reproduction kit.

The C1 "Stores"

In this post I will show you reversing of those stores file formats, so we can replenish, parse, and edit them.

Sunday, December 21, 2014

Parsing the Creatures 1 "TheRegister" file. (extracting Norn birthdates and owner information).

This will be a real quick article about parsing the Creatures1 "TheRegister" file.
This is like a primitive version of the C2 history files. It's the file that holds all creature information saved when you register a creature's birth.



They contain information about the Norn such as name, parents, date of birth and all owner info.

There's nothing really fancy about reversing and understanding the file format, so let's get this done.

Sunday, December 14, 2014

Extracting information from Creatures 1 PhotoAlbum files (And uncovering a 20 years old 2 pixel bug :)

In the last article, we've seen how to manually use the "dde: pict" CAOS command to take picture of our Norns the way the Owner's kit does it.

When doing it the usual way through the Owner's kit, all pictures are saved in individual photo album files for each Norn.
In this article I will show you all you need to know to extract all information from those file : timestamps, comments, and obviously, the picture data.



Sunday, November 30, 2014

Reversing the C1 .exp file format part 1 (General layout and extracting the genome)

It's been all those years, and despite a lot of talented persons having contributed to making Creatures tools or documenting the game various features, there still isn't any available description of the .exp file formant anywhere as we're nearing 2015.



The .exp files are the format in which creatures are exported or imported from and to the game.

Obviously, they contain about anything one could need to know about a given Norn, and exploiting them for writing custom tools might allow for a lot of interesting options such as exporting a critically ill norn, performing offline surgery on the file, and reimporting it into the game.

This would allow curing a couple otherwise fatal issues since the ingame mechanics don't provide any means of removing a given chemical from a creature bloodstream or reinvigorating degraded C2 organs.
(See the case of C2 grendels being oversensitive to cyanide poisoning because they lack the chemical reaction genes that would allow them to lower their cyanide levels)

In this series of articles, I will describe the process of reverse engineering the C1 (and later C2) .exp file format so any programmer out there can use the information to implement .exp file manipulating programs.

The first articles of the series will show the process followed so more people can learn "how it's done" and maybe later take on reversing other undocumented game file formats.
Hopefully, if enough information can be gathered about the format, a final article will sum everything up into the cleanest and most complete description possible.

For this first article, we will analyse the general file layout, and learn how to extract a working genome file from an .exp file.

Let's dive into binary DNA !

Saturday, November 29, 2014

Parsing Creatures 1 .spr files (Extracting/Manipulating any of the game's graphics)

In a previous article I showed how to read Creatures 2 .s16 files to extract any of the game image data.
In this obvious follow up I will show you how to read out Creatures 1.spr files for the same result.

The Creatures 1 .spr file format is only marginally harder to parse than the .s16 format.
This is because the .spr files do not directly contain color information for each pixel, but rather an index number, to be used as a lookup index inside an external palette file to get the actual color data.
 
Thankfully, Python magic can once again save us most of the hard work and makes extracting an manipulating C1 images files a breeze.



Thursday, February 6, 2014

Parsing Creatures 2 .S16 files (Extracting/Manipulating any of the game's graphics).

"Back then" few easy image manipulation libraries were available, making the extraction of game image data an intricate process (that most creature fans/developers tackled in an easy but not very user friendly way as we will expose).Nowadays things got easier.

In this post I will explain the creatures 2 .s16 file format, and show you how you can now very easily extract any picture from the game using python.
Not only that but we can also harness the power of modern image manipulation libraries to convert the game sprites to any file format we like contrary to most legacy tools only proposing to export images as BMP's and letting us do the conversion work manually.




Friday, January 24, 2014

Getting C2 chemicals descriptions (chemicals.def file format)

What a sneaky bastard I am.
This was supposed to be a C2 Norn autopsy article! (I swear I'm not doing that to avoid awarding anyone the promised carrot.)

I just realised something was still missing from the last article.
In the C1 chemicals information article we were able to pull out both chemical names and descriptions from the chemicals.txt file.

So where's that information in C2 ?

Reversing and Parsing C2 allchemicals.str file format


Aright, we already covered how to obtain an up to date list of Chemical numbers and names inside our programs by extracting it from C1 game files.

Obviously this is an ability of much practical value for C2 too, so let's see how we could do that now.
I haven't found the allchemicals.str file format described anywhere so far, but the format is simple enough so reversing it should be Norn's play for us at this point :)

Sunday, January 12, 2014

Parsing C2 GameLog files with python.

In this post we will see how to precisely parse a C2 Gamelog file.
This file is an ordered collection of all main events happening in Albia : Birth, Ageing, Dieing, getting a Name, Exports or Imports.
Parsing it can be useful to redraw a full timeline of stuff happening in your world, or to see which Norns are still alive or were ever used, if you need to perform some cleanup in the game folder ( by default, genomes and sprites files accumulate in the game folder for each Norn and are never removed )

Whatever your needs are, I hope yo will find this quick reference useful.

Saturday, January 11, 2014

The Creatures 1 chemicals.txt file format.

For some odd reason, one of the most commonly usable file in the Creatures series, the Chemicals.txt file,  format is still totally undocumented in 2014.

Maybe somebody did document it and his work was lost in time ? Maybe I'm stupid and this is considered such common knowledge that nobody ever thought writing about it would be worth it ?
Anyway, I take the opportunity to publish the information here so nobody has to find it out by himself again if ever needed.

The Chemicals.txt file contains the list of all chemicals in game, their associated name, as well as their description (as used in the genetics kit)
It's a valuable resource when writing your own programs for dynamically establishing the various chemicals names without worrying about the various countries variations, or custom chemicals installed by various players.

26/01/2014 Update: Seems I've committed a small mistake (sorry, but I'm mostly writing all of that as I do it, so some things might need tuning afterwards)
Although The Chemicals.txt holds chemical description data, it's the chemicals.str file that holds the current actively used ingame chemicals list.
The chemicals.str file has exactly the same file format, except it doesn't include the chemicals descriptions and that each entry length prefix is only one byte long instead of 2.
This doesn't prevent you from using the Chemicals.txt file as a chemical description source, but the most up to date data synchronised with your game status is to be extracted from the chemicals.str file.

Wednesday, January 8, 2014

Generating Creatures 2 Egg files with Python

The Creatures 2 .egg file format is one of the few well documented aspects of the game series.

Why bother writing about it on a blog about investigating undocumented game aspects then ?
Well, the ability to generate .eeg files is a pretty simple skill that might prove an interesting addition for anybody writing Creatures tools.

The aim here is just to show how quick and easy it is

Saturday, January 4, 2014

Introduction to advanced Norn genealogy using Social Network Analysis (SNA)




This post will be a quick taste of things to come.

I will show you where to look for Norn genealogy information in the game files, how to extract it using python, and then use it with more powerful tools than the built-in "family tree" of the original games to fully map out all of your Norn population.

We will only be scratching the surface of all those vast topics here, and each aspect of it will be the topic for a dedicated article further down the road. For now,I'm trying to get as much new and varied information out as I can. I hope this will bring some new topics, tools and knowledge to the Creatures community.