Easy pet to breed, or cloning, method.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Trust me, this is truly easy; you only need a hex editor to do one tiny thing, the rest can be all just using Notepad, Wordpad, Word, and Windows Explorer (or My Computer).

This uses the "external .lnz" method. If you want to make your breed have an internal .lnz, then you will need to place your .LNZ files back into the breedfile after you have edited them. To do this you can either use ResHacker and copy/paste over the existing ones or you will need to copy/paste the relevant areas in a hex editor. If you're using a hex editor, you must remember that the breedfile must be the same length after editing as before. For the adult .lnz this is unlikely to be a problem -- just fill out the unused area with spaces -- but you will have to cut down the amount of information in the puppy .lnz, not really a problem because in fact a lot of it is usually the same as in the adult one.

But this "howto" is about making your breed with an external set of .lnz files, in the simplest possible way, so that you can adopt a clone from it. There are five steps to follow, or six if you want to make a non-overwriting breed.

First, fix the breedfile
=============================

First off, let's assume you want to make an "overwriting" breed. First get the appropriate breedfile. You should be able to figure out which breedfile you want; I don't have to tell you that, do I? Please? At the end of the day, actually any dog breedfile will do for a dog and any cat breedfile for a cat, but you will presumably want one that gives you the same personality as the original pet, so grab a copy of that breedfile.

Now you've got the breedfile, you need to do a tiny bit of re-direction inside it so that the game will look for the .lnz files on your hard drive. The re-direction is a simple bit of hexing, you just find L.N.Z in the "List of all that's in the file" (this is the list that I talk about in my tutorials, it's directly above the BM of the Adoption Centre bitmap in a non-ResHacked breedfile) and change one letter so that the game doesn't think there's a .LNZ in the file and will go looking on your hard drive for it instead. To find the right place, just do a search for the hex string 4C004E005A00.

If you are using one of the basic original game files, I have of course already got a set of re-directed breedfiles on my "For LNZ-files 'n' easy-edits" pages and you don't need to do this bit.

For instance, in the poodle the list starts like this:

00055856 0400 4600 4900 4600 4900 0500 5300 4B00 ..F.I.F.I...S.K.
00055872 4900 4E00 3100 0300 4C00 4E00 5A00 0200 I.N.1...L.N.Z...
00055888 5000 4400 0500 5000 4400 5000 5500 5000 P.D...P.D.P.U.P.
00055904 0600 5200 4100 5700 5F00 5000 4400 0900 ..R.A.W._.P.D...
00055920 5200 4100 5700 5F00 5000 4400 5000 5500 R.A.W._.P.D.P.U.
00055936 5000 0300 5300 4300 5000 0300 5400 5800 P...S.C.P...T.X.
00055952 5400 0D00 4200 4500 5600 4500 4E00 5400 T...B.E.V.E.N.T.
00055968 5F00 4400 4F00 4700 5F00 5000 4400 0500 _.D.O.G._.P.D...
00055984 5000 4400 5300 4E00 4400 0300 5700 4100 P.D.S.N.D...W.A.
00056000 5600 0E00 5000 4F00 5F00 4200 4100 5200 V...P.O._.B.A.R.

Changing the Z to a second N does the trick:

00055856 0400 4600 4900 4600 4900 0500 5300 4B00 ..F.I.F.I...S.K.
00055872 4900 4E00 3100 0300 4C00 4E00 4E00 0200 I.N.1...L.N.N...

It's the same for all breedz. Just change a letter in that L.N.Z.

Second, get data from petfile
=============================

Now you want to get the .lnz sections out of your pet file. You can do this in one of two ways.

Method 1 (using a hex editor):
Look at the pet file in your trusty hex editor. Scroll down until you see p.f.magicpetzIII.[Texture List]. Put your cursor in front of the [ of [Texture List] and highlight everything until you get to the end of the text and numbers, where a load of null bytes start. Copy the highlighted part into a new file within the hex editor and save it as a file called pet.lnz. The following two screengrabs show how one pet looks; yours will have different data so the numbers will be different, but you should be able to figure it out from what you see here.

Start of pet .lnz data in hex editor:

End of pet .lnz data in hex editor:

Method 2 (without a hex editor):
Another way of doing it is to open a copy of the pet -- just a copy, remember to keep the original safe -- into Wordpad (free with Windows) and delete everything above [Texture List] and everything below the second lot of [Paint Ballz] or [Fur Color Areas] or [Adjust Clothing] (whichever is the last thing that you can see there). Then save the file as a Text Document called pet.lnz

Here are three screengrabs to show you the Wordpad method.

Stuff to be deleted is selected and shown in black. These two show the beginning and end of the .LNZ file

And this one shows how to save

If you want to use the baby from a pregnant mother (or which is still with its mother) instead, you have to highlight another section, from a fair bit lower down in her pet file, past a lot of null bytes and other stuff, which starts simply with [Texture List]. Highlight from that down to the end of _its_ text and numbers, to where another section of null bytes (Hex 00) starts, and save that as a file with the .lnz extension, or use Wordpad (as above) to delete everything except the baby's .lnz. In Petz 5 of course you might be wanting to pick out the data from any one of four babies. You'll just have to try each one until you get the one you're after.

Third, make data editable
=============================

Now you've got to get your pet's raw .lnz data into a form that you can edit easily. If you were to open it into Notepad at this stage, you'd see a whole load of numbers and squares, like this but with black squares instead of white:

[Texture List]\art\textures\hair11.bmp 1 256 256\art\textures\hair10.bmp 1 256 256[Num Ballz]67 and lots more.

in other words, a great slab of numbers that makes it difficult to see what to edit.

What you should do is see it as it should be, a series of lines and columns of numbers, so you want to replace the black squares (which are really Line Feeds -- Hex 0A) with Carriage return/Line feeds -- Hex 0D0A. Once again, there are at least two methods for doing this. I mention here the three methods that I tend to use.

Method 1 (using a hex editor):
In the Hex editor, replace all instances of 0A with 0D0A. Go on to the Fourth section of this "howto", the rest of this Third section is not relevant to those who used this Method 1. If your hex editor crashes when you try to do this (some of them go into a loop and don't like it), move on to Method 2 or 3.

Method 2 (without a hex editor):
Another way of forcing it to look right is to open it in Word (if you have that program) and save as "text only with line breaks". I include a screengrab of that too.

Method 3 (without a hex editor but you need to download something):
Download the PFE program. It's a freeware fancy notepad-type program, only about 600k download and easy-install. The creator's site is now closed, and the program is freeware, so I have uploaded it to my site and you can get it from the link on my Tutorials page. Or if you prefer you can get it from Simtel.

Open the pet's raw .lnz data into PFE, and you'll see it the way it should be seen. In PFE in the petfile select from the first [Texture List] down to just before the second one. This is the adult's .lnz. copy it to Notepad and save it, therefore, (in the case of the poodle) pd.lnz. Now select and copy from the start of that second [Texture List] down to the end of the readable numbers -- it'll probably be a set of numbers with the header [Fur Color Areas] or [Adjust Clothing], but it varies so use your common sense here. Paste that into another Notepad and save it as (in the case of the poodle) pdpup.lnz. Here you see screengrabs of this process.

NOTE: the files must have the extension .lnz, NOT .txt. If Notepad insists on saving the files as, say, pd.lnz.txt you do need to rename them in My Computer or Windows Explorer so that the computer does not see them as .txt files.

As regards the names of the files -- pd.lnz and pdpup.lnz -- this will be different depending on what the pet's breedfile is. You can tell what two letters to use by looking for [Sounds] in the .lnz; it will have something like \ptzfiles\dog\pd\pdsnd.txt. It must be the same as the two letters in the breedfile, which you can see in the "List of all that's in the file" for the poodle that I showed you above in this "howto":

00055888 5000 4400 0500 5000 4400 5000 5500 5000 P.D...P.D.P.U.P.

If you used this method, you can skip the "Fourth" section of this howto.

Fourth, split the .LNZ textfile
=============================

Okay, if you used one of the first two methods in the Third section of this Howto (hex editor or Word) you now have a single .lnz file. You need to split it into two. the easiest way is to right-click on the file in Windows Explorer or My Computer and copy it to the same directory; you will then have "pet.lnz" and "Copy of pet.lnz". Rename pet.lnz to (in the case of the poodle) pd.lnz and rename the copy to pdpup.lnz. This will be different depending on what the pet's breedfile is. You can tell what two letters to use by looking for [Sounds] in the .lnz; it will have something like \ptzfiles\dog\pd\pdsnd.txt. It must be the same as the two letters in the breedfile, which you can see in the "List of all that's in the file" for the poodle that I showed you above in this "howto":

00055888 5000 4400 0500 5000 4400 5000 5500 5000 P.D...P.D.P.U.P.

Now open pd.lnz and find, somewhere near the middle of the file, where you see [Texture List] again. There will be a few weird characters in front of it. Put your cursor in front of those, select from there to the end of the file, delete and save (not Save As). See my screengrab below, it shows you the start of the selected area to delete in my chosen LNZ.

Now open pdpup.lnz and select from the top of the file down to the same place, right up to that second [Texture List], delete and save (not Save As). This shows you the part I mean, I hope:

Fifth, the finishing touches
=============================

We're nearly done. You have a small amount of editing to do in Notepad. Remember, we are using a poodle for this example, and its 2-letter mnemonic is pd. Click here for the 2-letter mnemonics for the other base dog and cat breedz

Once again, open pd.lnz in Notepad. put your cursor at the beginning of the file in front of [Texture List] and press Enter to make a new line. Now you want to insert into that new line these lines of code:

[Default Linez File]
\ptzfiles\dog\dogmaster.lnz
[Little one]
pdpup.lnz

Save. Open the pdpup.lnz file and make a new line at the top, then insert these lines of code:

[Default Linez File]
\ptzfiles\dog\pd\pd.lnz

Here are screengrabs to show you what it looks like:

The adult .LNZ

The Pup .LNZ

Save. Right, you're done -- you just have to put them into the correct place on your hard drive. As explained in my external lnzfiles "howto", you need to create a directory, off the game's root directory, thusly:

\ptzfiles\dog\pd\

For people who have trouble understanding where to make these subdirectories in My Computer or Windows Explorer, look for where your game's .exe is; that's the root directory off which you need to make the ptzfiles one, and then you make the dog one off the ptzfiles one, and so on. Obviously for catz breedz, you would have to make it \ptzfiles\cat\ac (for the alley cat -- the 2-letter mnemonic would be different of course for other breedz)

NOTE: The files _must_ have the extension of .lnz, not .lnz.txt, or this won't work. It's best if you make sure that the file extensions are visible in Windows Explorer (or My Computer); to do this, go to the View menu at the top, choose Options, and make sure that the "Hide MS-DOS file extensions" is _not_ ticked. You can then easily rename a file to have the correct extension by right-clicking on the file.

Remember, the "pd" directory is different for other breedz -- "bd" for bulldog-based breedz and "ca" for Calico based breedz, for instance, and the "dog" is "cat" for catz breedz.

In the case of the poodle, which is a little different from other breedz, you really want to have four .lnz files. As far as I recall off-hand, the poodle and Alley cat are the only two breedz who have "raw" copies of the adult and baby stages as well as the normal ones. It's just another kind of variation really. But anyway, to be correct in the Poodle the game expects to see these:

pd.lnz
pdpup.lnz
raw_pd.lnz
raw_pdpup.lnz

Just right-click and copy pd.lnz and rename the copy raw_pd.lnz, and copy pdpup.lnz and rename it raw_pdpup.lnz, then inside the "raw" files change

[Little one]
pdpup.lnz

to

[Little one]
raw_pdpup.lnz

[Default Linez File]
\ptzfiles\dog\pd\pd.lnz

to

[Default Linez File]
\ptzfiles\dog\pd\raw_pd.lnz

Also please note that if you are using a pet which uses, say, the Great Dane breedfile, you need to use a different two-letter mnemonic for the .lnz files and directories. Click here for the list of 2-letter mnemonics.

At this point, if you now run the game, you will see exact copies of your base pet coming out of the Adoption Centre. You can use or distribute this breed as an "overwriting" breed, or you can adopt out litters from it, or you can adopt a clone of your precious original pet.

CONGRATULATIONS!!!

Sixth, only for if you want it non-overwriting
============================================

But if you want it as a separate breed, you need to do a _little_ more work.

So, take my poodle. I want it to use normal poodle sounds which, at the moment, are internal, and I want it to use an external set of .lnz files which won't overwrite others, plus I want to be able to import previously adopted poodles and have them breed with new ones.

Right. The poodle has four .lnz files which I already have taken from the pet as shown above, and named:

pd.lnz
pdpup.lnz
raw_pd.lnz
raw_pdpup.lnz

I shall change the pd to pp so that it won't overwrite, so I rename them:

pp.lnz
pppup.lnz
raw_pp.lnz
raw_pppup.lnz

and inside them I change these lines:

in pp.lnz:

[Sounds] \ptzfiles\dog\pp\pdsnd.txt
[Little one]
pppup.lnz

in pppup.lnz:

[Default Linez File]
\ptzfiles\dog\pp\pp.lnz

in raw_pp.lnz:

[Sounds] \ptzfiles\dog\pp\pdsnd.txt
[Little one] raw_pppup.lnz

in raw_pppup.lnz:

[Default Linez File]
\ptzfiles\dog\pp\raw_pp.lnz

(Note, I would only change the sounds line if I'm keeping the sounds internal. Actually I'm in process of making all my sound-stripped breedz un-mute by redirecting the sounds to the hard drive, so I would keep the \ptzfiles\dog\pd\pdsnd.txt azis, but if you want it to pick up internal sounds you need to change it to \ptzfiles\dog\pp\pdsnd.txt)

Okay, now I open the Poodle-based file into my hex editor and find this section:

00050240 4C69 7665 6C69 6E65 7373 0000 5C50 747A Liveliness..\Ptz
00050256 4669 6C65 735C 646F 675C 4245 7665 6E74 Files\dog\BEvent
00050272 5F44 6F67 5F4D 6978 6564 2E74 7874 0000 _Dog_Mixed.txt..
00050288 5C50 747A 4669 6C65 735C 646F 675C 7064 \PtzFiles\dog\pd
00050304 5C42 4576 656E 745F 446F 675F 5044 2E74 \BEvent_Dog_PD.t
00050320 7874 0000 5C50 747A 4669 6C65 735C 646F xt..\PtzFiles\do
00050336 675C 7064 5C70 642E 6C6E 7A00 5C50 747A g\pd\pd.lnz.\Ptz
00050352 4669 6C65 735C 646F 675C 646F 672E 7363 Files\dog\dog.sc
00050368 7000 0000 5C50 747A 4669 6C65 735C 646F p...\PtzFiles\do
00050384 675C 7064 5C70 642E 7363 7000 0000 0000 g\pd\pd.scp.....

I have to change some of the instances of "pd" to "pp" -- all instances of the "directory" \pd\ have to be changed to \pp\ plus the pd.lnz and pd.scp names needs to be changed to pp.lnz and pp.scp:

00050240 4C69 7665 6C69 6E65 7373 0000 5C50 747A Liveliness..\Ptz
00050256 4669 6C65 735C 646F 675C 4245 7665 6E74 Files\dog\BEvent
00050272 5F44 6F67 5F4D 6978 6564 2E74 7874 0000 _Dog_Mixed.txt..
00050288 5C50 747A 4669 6C65 735C 646F 675C 7070 \PtzFiles\dog\pp
00050304 5C42 4576 656E 745F 446F 675F 5044 2E74 \BEvent_Dog_PD.t
00050320 7874 0000 5C50 747A 4669 6C65 735C 646F xt..\PtzFiles\do
00050336 675C 7070 5C70 702E 6C6E 7A00 5C50 747A g\pp\pp.lnz.\Ptz
00050352 4669 6C65 735C 646F 675C 646F 672E 7363 Files\dog\dog.sc
00050368 7000 0000 5C50 747A 4669 6C65 735C 646F p...\PtzFiles\do
00050384 675C 7070 5C70 702E 7363 7000 0000 0000 g\pp\pp.scp.....

And of course we've already changed the L.N.Z to something else in the "List of all that's in the file". Nothing else should need to be changed there.

There's one more thing that does need to be changed now, apart from the normal breed name, ID and AC picture; that's the 2-letter mnemonic which comes after the name in the naming area near the .dog file's end:

00731040 0400 4600 6900 6600 6900 0600 5000 6F00 ..F.i.f.i...P.o.
00731056 6F00 6400 6C00 6500 0200 5000 6400 0000 o.d.l.e...P.d...

must be changed in keeping with my "pp" for the .lnz files

00731040 0400 4600 6900 6600 6900 0600 5000 6F00 ..F.i.f.i...P.o.
00731056 6F00 6400 6C00 6500 0200 5000 7000 0000 o.d.l.e...P.p...

Eureka! Now make the directory

\ptzfiles\dog\pp\

and so long as you put your .lnz files into that pp directory, the pets will come out of the AC, and will breed with others previously adopted. I know, because I tested it :-)

I hope this helps all the people who want to convert a much-loved pet into a breed, but who are daunted by my earlier tutorial on how to do it or are just plain confused.

Happy cloning!

Carolyn Horn

PS. TROUBLESHOOTING: You should have ended up with a pair or two of files, suitably named with the extension .lnz and placed in the correct subdirectory. If your game insists that those files aren't there, then there is a wrong name somewhere. If your computer setup is still at Microsoft's defaults, you won't be able to see the extension of each file; it'll probably show you a big icon and tell you that it is a lnz file. If it tells you it's a txt file and what you see is (for instance) pd.lnz, then you have to speak severely to your computer -- the machine needs to see it as a lnz file, but Microsoft in its infinite unwisdom has pulled a fast one on you and hidden extensions as well as making Notepad be a pain. Notepad might have insisted on saving it as pd.lnz.txt and you'll get all frustrated and write to me. Ack. Well instead, try right-clicking on it and renaming it pd.lnz. If it still tells you that it's a txt file, then for goodness sake enable the ability to see extensions in your Windows Explorer or My Computer's View Options. Un-tick "hide MS-Dos extensions" in the menu View, Options, View panel. While you're about it, tick "show all files" too. Why on earth Windows comes with extensions and some files hidden by default is beyond me. Pause here for a moment while I grumble agedly about Windows and the folly of the modern age.