Showing posts with label Creatures 1. Show all posts
Showing posts with label Creatures 1. Show all posts
Friday, May 22, 2015
A smart(-ish) C1 scriptorium browser.
One of the hard aspects of trying to understand the C1 internals is trying to figure out which scripts exist for a given object.
C2 and C3, both have "Scriptorium browsers" available, that make it easy to visually browse ALL existing scripts for given classifiers.
Surprisingly, C1 seems to lack such a tool, and leaves us with no easy way to be sure we found all scripts governing a given object or behaviour.
Why is that so ? On what mechanisms do those scriptorium browsers operate ? And what can we do about it ?
Follow me for some technical exploration of the mysterious Shees CAOS library, and if you bear with me to the end of the article, a proper, exhaustive C1 scriptorium extractor will be the takeaway :)
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.
In this post I will show you reversing of those stores file formats, so we can replenish, parse, and edit 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.
Labels:
1,
aphro,
aphroBU,
creatures,
Creatures 1,
Doctor,
file,
fileformat,
format,
health,
HealthBU,
kit,
parsing,
reproduction,
reversing,
tutorial
Wednesday, December 17, 2014
Investigating Creatures 1 Teleporters
Alright, despite having loads of stuff in store, maybe I'll take a break from gory reversing stuff for this post, before I loose all of my readers (yeah, something like "both of them") :)
So why not take this opportunity to study something more generic? what about investigating how C1 teleporters work?
It only requires a bit of CAOS reading and your favorite C1 CAOS tool.
So why not take this opportunity to study something more generic? what about investigating how C1 teleporters work?
A happy Norn family, ready for exploration of time and space. |
It only requires a bit of CAOS reading and your favorite C1 CAOS tool.
Labels:
1,
CAOS,
creatures,
Creatures 1,
editing,
installing,
random,
replacing,
script,
teleporter,
tutorial,
upgrade
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.
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.
Labels:
album,
bug,
C1,
creatures,
Creatures 1,
extracting,
fileformat,
format,
manipulating,
photo,
photoalbum,
spr
Saturday, December 13, 2014
Repairing and understanding the lost "dde: pict" command (Taking photos of C1 Norns)
One promising nugget in the Creatures 1 CAOS reference, is the "dde: pict" command.
According to the documentation,
Unfortunately, as many other things this command not only lacks critical bits of explanation but is also inherently broken (at least considering the above definition) and when used produces less than stellar results:
It's a shame we can't use this functionality in our own tools to take pictures as the Owner's kit does.
Or can't we ?
One of the main motives behind the site being uncovering such lost knowledge and abilities of the ancient Shee, come with me and find out how to understand and ultimately take advantage of this lost command.
Labels:
C1,
CAOS,
creatures,
Creatures 1,
dde: pict,
documentation,
example,
kit,
owner,
owner's kit,
parsing,
photoalbum,
pict,
reversing,
spr
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 !
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.
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.
Labels:
C1,
creatures,
Creatures 1,
extracting,
file,
fileformat,
format,
image,
manipulation,
palette,
palette.dta,
parsing,
python,
spr,
sprite,
tutorial
Saturday, February 15, 2014
Connecting to the Creatures DDE interface from python
We've recently seen how easy it is to connect to the C1 and C2 DDE interfaces using VB.
This time we will show how easy it is to connect to those interfaces using python, which will prove useful in upcoming articles.
Connecting to a DDE server from inside pythonis can be a quick and easy process.
The hardest part is in acquiring the correct modules to do so, (which can be a real pain if you take it from the wrong side), there are also a couple specifics that make debugging the first DDE connections unreliable.
Fortunately I've sorted those perks out for you,and will show you the single quickest and easy way to connect to the Creatures 1 and 2 DDE interface from python.
This time we will show how easy it is to connect to those interfaces using python, which will prove useful in upcoming articles.
Connecting to a DDE server from inside python
The hardest part is in acquiring the correct modules to do so, (which can be a real pain if you take it from the wrong side), there are also a couple specifics that make debugging the first DDE connections unreliable.
Fortunately I've sorted those perks out for you,and will show you the single quickest and easy way to connect to the Creatures 1 and 2 DDE interface from python.
Labels:
1,
2,
C1,
C2,
CAOS,
connect,
connecting,
creatures,
Creatures 1,
creatures 2,
dde,
dde interface,
howto,
interface,
ole,
python,
pywin32,
running,
tutorial
Monday, February 3, 2014
Connecting to the Game: accessing the DDE interface with 3 lines of code. (Tutorial)
We've been studying a lot of stuff lately, most of it involving running CAOS commands against C1 and C2 games.
C3 has a convenient built-in CAOS console, and various third party tools also propose that feature for C1 and C2.
But how would you go about implementing this kind of connectivity inside your own programs?
The simplest way to connect to a running C1 or C2 game is through the DDE interface (Dynamic Data Exchange). Also it REALLY is simple even if you barely know anything about programming, so this might be worth checking out.If you never programmed anything and don't have any development tools handy, you could initiate a DDE connection even from inside an Excel macro using VBA.Also the C1 and C2 DDE interfaces being strictly identical, you'll be writing code only once, and be able to use it in both games right now, without any change.
By sending the game some basic CAOS commands and reading their results you can reproduce all of the game functionalities and then some more: reading a Norn's needs and chemicals levels in realtime, selecting Norns and Grendels, carrying them, monitoring their brains,etc...
This time I show you a very quick overview to get you started in pumping CAOS in and out the C1 and C2 games.More advanced use cases or details will come in futher posts.
Labels:
1,
2,
api,
CAOS,
commands,
communication,
creatures,
Creatures 1,
creatures 2,
dde,
game,
how to,
howto,
interface,
Macro,
ole,
run CAOS,
Run macro,
sdk,
tutorial
Thursday, January 30, 2014
Investigating C1 climate (for a huge fail)
We all now C2 has an complex ecology model, where temperature,wind light, radiation and others such parameters dynamically shape the worlds face.
But did you know that basic ecology elements are also present in C1 to some extent?
Let's find out about those together.
Labels:
bbright,
C1,
CAOS,
climate,
creatures,
Creatures 1,
dark,
ecology,
level,
light,
light level,
meteorology,
sleepiness,
sleepy,
temp,
temperature,
wind
Monday, January 20, 2014
Designing farting norns (Tutorial)
Many colored alternative breeds exist for all of the creatures games.
In this tutorial I will show you how to design a new breed for C1.
But not one that involves making new sprites for new colored or punk Norns, but rather one that implements new Norn behaviours and possibilities.
Using those techniques one could add loads of interesting behaviours to Norns such as :
- Adding a kicking stance and associated behaviours to fight off Grendel more efficiently
- Making Norns that can reinvigorate and heal by resorting to meditation
- Enabling actual telekinesis in Norns ( yes, this IS possible with some work )
- Making jumping Norns
- Mimicking more realistic life behaviour ( digestion, elimination ... )
- ...
Making Farting Norns:
Wednesday, January 15, 2014
Generating arbitray In-game eggs from CAOS commands, while also investigating the Norn reproductive system.
Okay, so in a previous article we've seen how to generate .egg files from genomes with a custom tool.
Even if it may be a nice skill to add to your toolbox, it might not be the most practical everyday tool to inject genomes in your game.
Wouldn't it be more practical if we could directly create ingame eggs from arbitrary genomes/couples as if they were just laid ? This is not only possible but also quite easy.
Some available tools such as the Genome injector on the awesome CDR website already perform that feat. ( Be sure to check out the whole site, as it is definitely the single most complete and comprehensive resource on writing C1 and C2 custom programs )
From there we could go the easy way, as Chris conveniently included a detailed description of the CAOS magic involved in spawning C2 eggs from genomes in the readme file the genome injector ( thanks for that Chris ! ).
But I'll rather show you how you're supposed do find out that information by yourself when starting from scratch, as it will serve us better in the long run when investigating other undocumented game features.
We will be doing this for C1, as Chris' tool only seems to work on Creatures 2.
We will use the CAOS language,it's documentation and some external tools to try to understand what exactly happens during the whole Norn reproductive process, so we can mimic it with a custom and more practical tool.
Labels:
C1,
CAOS,
command,
creating,
creatures,
Creatures 1,
egg,
eggs,
generating,
making,
mating,
process,
reproduction,
reproductive,
spawn
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.
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.
Friday, December 27, 2013
The full "sys:cmnd" ID list for Creatures 1 & 2
Here's the full listing of ID's used with the sys:cmnd CAOS command in both Creatures 1 and Creatures 2.
As explained in this article, those were recovered using the "Resource hacker" program.
Feel free to imitate should those ID's not work for you.
As explained in this article, those were recovered using the "Resource hacker" program.
Feel free to imitate should those ID's not work for you.
Labels:
CAOS,
cmnd,
creatures,
Creatures 1,
creatures2,
ID,
list,
ressource,
sys:cmnd
Thursday, December 26, 2013
Recovering the lost "sys: cmnd" documentation
One of the aspects of the CAOS specification I got exited about when I first saw it mentioned in the C1 CAOS guide was the "sys: cmnd" command.
Quoting from the manual :
This sounds awesome ! The ability from our external application (or COBs) to execute any existing game command!
This will greatly help us, allowing us to add pause/play buttons to our custom applications, to run existing applets, export and import Norns...
All right, let's head to the mentioned "resource file" and try this command !
Err...yes...the ummm...resource file... Which one ?
Well...none it seems...
Quoting from the manual :
SYS: menu commands
CMND id# - issue an ID_XXX command message to the application. This
allows macros to activate ANY menu command. Note that command
will get executed LATER - fn doesn't wait before returning!
id# is the decimal ID_XXX value - look these up in the resource
file & list them for users
This sounds awesome ! The ability from our external application (or COBs) to execute any existing game command!
This will greatly help us, allowing us to add pause/play buttons to our custom applications, to run existing applets, export and import Norns...
All right, let's head to the mentioned "resource file" and try this command !
Err...yes...the ummm...resource file... Which one ?
Well...none it seems...
Labels:
api,
C1,
cmnd,
Creatures 1,
dde,
documentation,
ID,
interface,
menu,
ole,
ressource file,
reversing,
sdk,
secret,
secrets,
sys: cmnd
Subscribe to:
Posts (Atom)