saudade/carolyns_creations/tutorials/petbreakdown/petbreakdown.html

226 lines
8.8 KiB
HTML
Raw Normal View History

2023-12-10 20:37:03 -08:00
<!doctype html>
<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>
</html>