2023-12-10 20:37:03 -08:00
|
|
|
<!doctype html>
|
2023-06-18 16:47:51 -07:00
|
|
|
<html lang="en">
|
2023-12-10 20:37:03 -08:00
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
|
|
<title>Rough breakdown of a petfile</title>
|
|
|
|
<link rel="stylesheet" href="/style.css" />
|
|
|
|
|
|
|
|
<!-- saudade includes -->
|
|
|
|
<script src="/saudade.js?@root" type="module"></script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="side-padding courier">
|
|
|
|
<p>
|
|
|
|
<span class="big purple center"
|
|
|
|
><b>Rough breakdown of a petfile</b><br />
|
|
|
|
<span class="comic-sans">~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br /></span
|
|
|
|
></span>
|
|
|
|
|
|
|
|
This is for people who want to know what the various sections of a pet
|
|
|
|
file contain. The structure is very similar for a baby file. I'm just
|
|
|
|
going to show this as links to a series of screengrabs, as I don't have
|
|
|
|
time to do anything fancy with it. Pet and baby files are in fact
|
|
|
|
saved-game files, so their internal information is changing all the
|
|
|
|
time. However, the basic structure remains the same throughout, so we
|
|
|
|
can do a fair bit of analytical work just looking at a pet or babyz in a
|
|
|
|
hex editor. I'm not including any breakdown of Petz II .pet files, as
|
|
|
|
they are very different.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="PetNameIDAndBreedfileSection.gif"
|
|
|
|
>Here is the start of a typical Pet adopted in Petz 3, 4 or 5.</a
|
|
|
|
><br />
|
|
|
|
In it you can see the pet ID up there in the first two bytes, before the
|
|
|
|
name Rosie. This is the section containing the petname, ID and main
|
|
|
|
breedfile name. In a pet which has been imported from PetzII there is a
|
|
|
|
bunch of other stuff in there too, but it's not really important.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="xChecksumSection.gif">This is the end of the first section.</a
|
|
|
|
><br />
|
|
|
|
The part which you see highlighted is where the checksum information
|
|
|
|
resides.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="bStartofSectionContainingSliders.gif"
|
|
|
|
>This is the start of the section which contains brainslider data
|
|
|
|
etc</a
|
|
|
|
><br />
|
|
|
|
note for those who want to cheat -- this section is where you should
|
|
|
|
find the things that your pet learns, its tricks abilities etc.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="aBrainsliderdata.gif"
|
|
|
|
>here's where the actual slider data is kept</a
|
|
|
|
><br />
|
|
|
|
The highlighted section shows where these important bytes are stored. I
|
|
|
|
show how to deal with these in one of my tutorials.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="EndOfSectionContainingSliders.gif"
|
|
|
|
>This is the end of the section containing sliders.</a
|
|
|
|
>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>And immediately after that:</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="StartOfPaintedBallzSection.gif"
|
|
|
|
>this is the section with your pet's colour data</a
|
|
|
|
><br />
|
|
|
|
This is where the game stores whatever paint you throw at your pet from
|
|
|
|
the can; if you don't paint the pet, it stores the pet's default colours
|
|
|
|
here. It's the reason why, when you change certain ball colours in the
|
|
|
|
.lnz section, you have to say "restore original colours" within the game
|
|
|
|
before you see them. It's also why babyz' hexed eyelids don't show up as
|
|
|
|
altered; there is no "restore" in babyz because there's no paint pot.
|
|
|
|
But of course you can edit the relevant byte in this section, as I show
|
|
|
|
in a "howto" elsewhere.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="EndOfPaintedballzStartOfLnzSection.gif"
|
|
|
|
>The start of the .LNZ sections</a
|
|
|
|
><br />
|
|
|
|
Where the shape, default colours etc of the pet are defined. It comes in
|
|
|
|
two chunks, the first of which is the adult data and the second of which
|
|
|
|
is the puppy or kitten data. As of 2005, you can now edit these directly
|
|
|
|
in Nicholas' LNZPro utility of course.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="EndOfLnzSectionStartOfClothingNBreedInfo.gif"
|
|
|
|
>The end of the LNZ section.</a
|
|
|
|
>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="StartOfClothesAndBreedzInfo.gif"
|
|
|
|
>The clothes and breedfiles section</a
|
|
|
|
><br />
|
|
|
|
This section directly after the lnz info is where you'll see listed any
|
|
|
|
clothing items that your pet is wearing. No need to edit this, just take
|
|
|
|
the clothes off your pet or baby in the game! If there is a problem with
|
|
|
|
starting the game because the clothing item is missing or damaged, just
|
|
|
|
re-set your game as you start it up by hitting Ctrl and Shift together.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="zEndOfClothesAndBreedzInfo.gif"
|
|
|
|
>End of clothes and breedfiles section</a
|
|
|
|
><br />
|
|
|
|
As you can see, the breedfiles which the pet needs are listed here,
|
|
|
|
usually with their ID numbers.<br />
|
|
|
|
<a href="EndOfClothesAndBreedzInfo.gif"
|
|
|
|
>Here's another pet's similar section</a
|
|
|
|
><br />
|
|
|
|
so that you can see how it's done a bit clearer.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="aGenderNeuterdetailsAndStartOfBreedIDstuff.gif"
|
|
|
|
>This section contains gender and main breed ID info</a
|
|
|
|
><br />
|
|
|
|
Here's the section that you need to concentrate on if you're changing a
|
|
|
|
petfile's gender, or if you're trying to make it accept a different
|
|
|
|
breed ID.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="GenderAndNeuterSection.gif">The gender and neutering section</a
|
|
|
|
><br />
|
|
|
|
The highlighted bytes are where you change gender or neuter and
|
|
|
|
un-neuter your pet. I show how to deal with this in one of my tutorials.
|
|
|
|
Of course as of 2005, you can alter the gender using Nicholas' Petza
|
|
|
|
utility.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Also in this section of a pet, after YALP and before the breed ID info,
|
|
|
|
you'll see an area which varies in length as your pet's experiences in
|
|
|
|
life occur -- experiences such as finding a mate and so on.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="BitWithBreedIDInfo.gif">The breed ID info</a><br />
|
|
|
|
The highlighted bytes show where you would find the main breed ID number
|
|
|
|
that your pet needs. I show how to deal with this in my tutorials.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="EndOfYALPsectionStartOfGeneticsSection.gif"
|
|
|
|
>End of YALP section, start of Genetics</a
|
|
|
|
><br />
|
|
|
|
This is where an important part of your pet resides -- its genetics. I
|
|
|
|
show in howtos elsewhere how to find and alter some of the important
|
|
|
|
genetic bytes such as the Alley Sickness etc. You can now change these
|
|
|
|
of course in Nicholas' LNZPro utility, but there's still plenty to
|
|
|
|
explore here :-)
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="endofgenetics.gif">The end of your pet's genetics section.</a>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p><a href="BeginFamilyTree.gif">Start of the Family Tree section.</a></p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="FamilyTreeDateofBirth.gif">Date of birth in Family Tree</a
|
|
|
|
><br />
|
|
|
|
The highlighted bytes are where the date of birth resides. I show how to
|
|
|
|
deal with this in one of my tutorials.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="FamilyTreeNumberOfGenerations.gif"
|
|
|
|
>Number of generations for pet</a
|
|
|
|
><br />
|
|
|
|
The byte which you see highlighted is the number of generations, in
|
|
|
|
hexadecimal of course.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="FamilyTreePinkoutlineorblue.gif"
|
|
|
|
>The pink or blue outline in Family Tree</a
|
|
|
|
><br />
|
|
|
|
The part which you see highlighted is where the pink or blue byte is
|
|
|
|
stored. I show how to deal with this in one of my tutorials.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="InPregnantPetEndOfFamilyTreeStartOfBabyData.gif"
|
|
|
|
>End of family tree section.</a
|
|
|
|
><br />
|
|
|
|
This particular pet is pregnant, so what you see here is also the start
|
|
|
|
of a pup's data.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="StartOfBaby.gif">The start of the puppy's file.</a><br />
|
|
|
|
Here is the start of the puppy's data. The structure of the puppy file
|
|
|
|
is the same as that of the mother, but it doesn't have the initial
|
|
|
|
loading section with the pet ID and name because of course the game
|
|
|
|
doesn't need that until the pup becomes separated from the mother. If
|
|
|
|
there is more than one pup (or of course kitten for a catz pet), each
|
|
|
|
pup or kitten's data follows the other after the previous one's family
|
|
|
|
tree data.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<a href="StartOfBitmap.gif">Start of bitmap</a><br />
|
|
|
|
And this is the end of the petfile, the bitmap which you see when the
|
|
|
|
pet comes out of the door. This is not included in the checksum, so if
|
|
|
|
this part only is corrupted you can simply replace it with another bmp
|
|
|
|
file in order to get the game to accept the pet or baby. I show how to
|
|
|
|
do this in one of my tutorials.
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</body>
|
2023-06-18 16:47:51 -07:00
|
|
|
</html>
|