Changing eyelids in a petfile
==============================

Well, eyelids are pretty easy but you need to be aware of some things: 

1. Always, always keep a copy safe somewhere of any file that you intend to edit, but 
particularly so with a pet file. 

2. When you edit a pet file you need to keep the size of the file the same _and_ the 
checksum. Which means that if you change a digit from, say, 1 to 3, you will have to 
compensate for that by reducing a digit somewhere else by 2. If you change a digit from 4 
to 3, you will have to increase a digit somewhere else by 1. Simple arithmetic, but it 
makes my eyeballs rotate all the same; I never was too good with maths  A good place for 
making those compensating reductions or increasings is in the [Paint Ball] section, where 
you see numbers like 0.707107 which are long decimal-place numbers and so if you change a 
digit near the end of such a number it will be completely un-noticeable on your pet. If you 
have a rare pet which doesn't have a [Paint Ballz] section, it'll be a little trickier to 
find a number which won't show if it's changed, but most pets do have that section because 
they have paw pads. 

3. Eyelid changes tend not to show up until you choose "restore original colours" in the 
game. In Babyz you actually have to change a binary byte within the file because there is 
no such game-option, so Petz players are lucky  

4. To change the eyelid colour, open the pet in the hex editor and search for [256 eyelid 
color] and it will look something like this: 

00006688 | 3233 0A30 2030 0A5B 3235 3620 4579 656C | 23.0 0.[256 Eyel 
00006704 | 6964 2043 6F6C 6F72 5D0A 3635 2032 0A5B | id Color].65 2.[ 

in the above example, if you want pink eyelids, change the 6 of 65 to 7. Then go to the 
[Paint Ballz] area which will look something like this: 

00015744 | 0A5B 5061 696E 7420 4261 6C6C 7A5D 0A30 | .[Paint Ballz].0 
00015760 | 2037 3020 2D30 2E37 3235 3437 3620 302E | 70 -0.725476 0. 

and reduce a digit by 1, for instance in this example the second 7 in that long 
decimal-place number can be reduced to 6. 

Save. Start the game. Curse because you somehow got it wrong and corrupted the pet. Start 
again with a fresh copy of the pet (you _did_ obey item no. 1 in this "howto", didn't 
you??) and do it again, being more careful this time. Start the game, bring out pet, scream 
because the eyelids look the same, remember item no. 3 in this "howto", and choose "restore 
original colours" for that pet. Eureka!! Pink eyelids! (Ewwww...) 

Changing numbers to more or fewer digits
========================================

Ah, but how do we go about hexing the eyelids if the original number is a 3 digit number 
and we want to change it to a 2 digit number?  Did you try that, but couldn't work out what 
to do with the extra digit?  No problem, that can be done too...  I've got that in another 
"howto" somewhere -- hang on (rummage rummage riffle riffle) yes, here it is. Relates to 
eye colours, but the same principle applies to any number which needs more or fewer digits: 

Adding digits to make a higher eye-colour number in a pet: 
----------------------------------------------------------- 

These are just examples, of course, your own pet's data will be different. And you will 
remember to have a backup of the pet before you start, won't you? 

Wally's original eyes are number 5: 

00009328 3420 3020 3120 3220 3520 3020 310A 3234 4 0 1 2 5 0 1.24 
00009344 3420 3520 3020 3020 3820 3132 202D 3120 4 5 0 0 8 12 -1 
00009360 2D31 0A32 3434 2035 2030 2030 2038 2031 -1.244 5 0 0 8 1 
00009376 3220 2D31 202D 310A 3935 2032 3434 2030 2 -1 -1.95 244 0 

I want them to be 65. 

So I add a 6 in front of each eye's outline colour 5: 

00009328 3420 3020 3120 3220 3520 3020 310A 3234 4 0 1 2 5 0 1.24 
00009344 3420 3635 2030 2030 2038 2031 3220 2D31 4 65 0 0 8 12 -1 
00009360 202D 310A 3234 3420 3635 2030 2030 2038 -1.244 65 0 0 8 
00009376 2031 3220 2D31 202D 310A 3935 2032 3434 12 -1 -1.95 244 

Now, down in Paint Ballz this particular pet happens to have a couple of numbers 6 that I 
can remove from the end of long numbers: 

00010192 3120 3631 200A 3331 2036 3220 0A5B 5061 1 61 .31 62 .[Pa 
00010208 696E 7420 4261 6C6C 7A5D 0A31 3620 3530 int Ballz].16 50 
00010224 2030 2030 2E39 3537 3832 3620 302E 3238 0 0.957826 0.28 
00010240 3733 3438 2037 3520 2D31 2030 202D 3120 7348 75 -1 0 -1 
00010256 2D31 202D 3120 310A 3137 2035 3020 3020 -1 -1 1.17 50 0 
00010272 302E 3935 3738 3236 2030 2E32 3837 3334 0.957826 0.28734 

So I just remove a 6 from 0.957826 and another from the next 0.957826: 

00010192 3120 3631 200A 3331 2036 3220 0A5B 5061 1 61 .31 62 .[Pa 
00010208 696E 7420 4261 6C6C 7A5D 0A31 3620 3530 int Ballz].16 50 
00010224 2030 2030 2E39 3537 3832 2030 2E32 3837 0 0.95782 0.287 
00010240 3334 3820 3735 202D 3120 3020 2D31 202D 348 75 -1 0 -1 - 
00010256 3120 2D31 2031 0A31 3720 3530 2030 2030 1 -1 1.17 50 0 0 
00010272 2E39 3537 3832 2030 2E32 3837 3334 3820 .95782 0.287348 

And eureka, Wally has brown eyes instead of purple. 

That was particularly easy because Wally had a pair of numbers 6 that could be removed from 
the Paint Ballz, but you just need to remove any number from the tail-end of a long Paint 
Ball number and then adjust the sizes of other parts of the long numbers so as to make the 
checksum the same. 

Removing digits to make a lower eye-colour number 
------------------------------------------------ 

Witchy's original eyes are number 187: 

00012960 3020 3820 3020 360A 3335 2032 3434 2030 0 8 0 6.35 244 0 
00012976 2032 2030 2038 2030 2035 0A32 3434 2031 2 0 8 0 5.244 1 
00012992 3837 2030 2030 2033 2039 202D 3120 2D31 87 0 0 3 9 -1 -1 
00013008 0A32 3434 2031 3837 2030 2030 2033 2039 .244 187 0 0 3 9 
00013024 202D 3120 2D31 0A33 3520 2D31 2030 2030 -1 -1.35 -1 0 0 

I want them to be number 2. The first stage was to remove the 1 from each iris outline: 

00012976 2032 2030 2038 2030 2035 0A32 3434 2038 2 0 8 0 5.244 8 
00012992 3720 3020 3020 3320 3920 2D31 202D 310A 7 0 0 3 9 -1 -1. 
00013008 3234 3420 3837 2030 2030 2033 2039 202D 244 87 0 0 3 9 - 
00013024 3120 2D31 0A33 3520 2D31 2030 2030 202D 1 -1.35 -1 0 0 - 

Then scrolling down to paint ballz, where Witchy had this: 

00013840 200A 3331 2036 3220 0A5B 5061 696E 7420 .31 62 .[Paint 
00013856 4261 6C6C 7A5D 0A31 2037 3520 2D30 2E36 Ballz].1 75 -0.6 
00013872 3736 3731 3620 302E 3239 3030 3231 2030 76716 0.290021 0 
00013888 2E36 3736 3731 3620 3335 202D 3120 3220 .676716 35 -1 2 


I changed it so that two of those numbers have an extra 1 on the end (hex 31): 

00013840 200A 3331 2036 3220 0A5B 5061 696E 7420 .31 62 .[Paint 
00013856 4261 6C6C 7A5D 0A31 2037 3520 2D30 2E36 Ballz].1 75 -0.6 
00013872 3736 3731 3631 2030 2E32 3930 3032 3131 767161 0.2900211 
00013888 2030 2E36 3736 3731 3620 3335 202D 3120 0.676716 35 -1 

Right, now I want to remove the 8 from 87 on each iris outline: 

00012976 2032 2030 2038 2030 2035 0A32 3434 2037 2 0 8 0 5.244 7 
00012992 2030 2030 2033 2039 202D 3120 2D31 0A32 0 0 3 9 -1 -1.2 
00013008 3434 2037 2030 2030 2033 2039 202D 3120 44 7 0 0 3 9 -1 

and I want to change the 7 (hex 37) to a 2 (hex 32): 

00012976 2032 2030 2038 2030 2035 0A32 3434 2032 2 0 8 0 5.244 2 
00012992 2030 2030 2033 2039 202D 3120 2D31 0A32 0 0 3 9 -1 -1.2 
00013008 3434 2032 2030 2030 2033 2039 202D 3120 44 2 0 0 3 9 -1 

And finally I make up for the two removed numbers 8 and for the reduction of 7 to 2 in 
Paint Ballz, where I add an 8 two two of the long numbers and then I change two numbers 1 
to 6. Where the Paint ballz section did look like this: 

00013840 3631 200A 3331 2036 3220 0A5B 5061 696E 61 .31 62 .[Pain 
00013856 7420 4261 6C6C 7A5D 0A31 2037 3520 2D30 t Ballz].1 75 -0 
00013872 2E36 3736 3731 3620 302E 3239 3030 3231 .676716 0.290021 
00013888 2030 2E36 3736 3731 3620 3335 202D 3120 0.676716 35 -1 
00013904 3220 2D31 2037 2030 2030 0A33 2034 3520 2 -1 7 0 0.3 45 
00013920 3020 2D30 2E36 2030 2E38 2031 3520 2D31 0 -0.6 0.8 15 -1 
00013936 2033 202D 3120 3520 3020 300A 3132 2036 3 -1 5 0 0.12 6 
00013952 3520 302E 3637 3637 3136 2030 2E36 3736 5 0.676716 0.676 
00013968 3731 3620 302E 3239 3030 3231 2031 3520 716 0.290021 15 

I now have this: 

00013840 3331 2036 3220 0A5B 5061 696E 7420 4261 31 62 .[Paint Ba 
00013856 6C6C 7A5D 0A31 2037 3520 2D30 2E36 3736 llz].1 75 -0.676 
00013872 3731 3631 2030 2E32 3930 3032 3131 2030 7161 0.2900211 0 
00013888 2E36 3736 3736 3638 2033 3520 2D31 2032 .6767668 35 -1 2 
00013904 202D 3120 3720 3020 300A 3320 3435 2030 -1 7 0 0.3 45 0 
00013920 202D 302E 3620 302E 3820 3135 202D 3120 -0.6 0.8 15 -1 
00013936 3320 2D31 2035 2030 2030 0A31 3220 3635 3 -1 5 0 0.12 65 
00013952 2030 2E36 3736 3736 3638 2030 2E36 3736 0.6767668 0.676 
00013968 3731 3620 302E 3239 3030 3231 2031 3520 716 0.290021 15 

I check that the checksum and size of file are the same, and eureka! A pet with green eyes 
instead of red.  Nifty, huh?

What if my pet has no [Paint Ballz]??
======================================

Right.  The above stuff works if your pet has a [Paint Ballz] section, which they normally 
do (paw pads are paint ballz).  What if your pet has no paint ballz?  Can you do it then?  
Sure you can!  That's trickier and requires that you understand what you're looking at 
inside the file. 

With complex stuff I copy the .lnz out into a new file in the hex editor, save it as 
petlnz.txt, and open it in Wordpad -- not Notepad this time, Wordpad. Then I can see it 
laid out properly and see which number is which, changing individual numbers carefully.  I 
then save it as a "text document", and the file doesn't corrupt.  It can be opened into the 
hex editor again and copy/pasted over the pet's original .lnz data.  For those of you who 
don't know, the adult's .lnz is the bit which starts with [Texture List] and finishes just 
before the next [Texture List], and the kitten or puppy's .lnz starts with that second 
[Texture List] and goes on to the end of the editable numbers, usually finishing up with 
something like [Adjust Clothing] or [Fur Color Areas].

Okay, say you have a pet with 244 eyelid and you want to change to 62.  (I'm using an 
example pet here, the data in yours will be different of course): 

We start of course by removing the 4 from the end of 244, and increasing the 4 to 6, 
shifting it to in front of the 2, so that we just have an adjustment of 2 to make to an 
existing number as well as adding that extra 4 in somewhere: 

[256 Eyelid Color] 
244 -1 

changed to 

[256 Eyelid Color] 
62 -1 

Now, in linez, near the bottom, in this particular petfile we have: 

45 46 9 -1 244 244 100 100 0 0 
46 47 9 -1 244 244 100 100 0 0 
47 48 9 -1 244 244 100 100 0 0 
3 2 5 -1 244 244 95 95 0 0 
6 2 5 -1 244 244 95 95 0 0 

From the breedfile we see that in Linez the number columns are as follows: 
startball, endball, fuzz, colour, Lfcolour, Rtcolour, sThick, eThick, and then in the 
petfile there are two extra columns which usually contain zeroes and which it's wise to 
leave alone. 

Right! A couple of outlines are only 95 thick, so we can add a 4 onto one of those and 
reduce a 5 by 2, so as to get this: 

6 2 5 -1 244 244 95 934 0 0 

which would fix the size and the checksum. All okay as far as it goes, but that would 
produce a dreadful thick line which would "draw" on the screen at certain times when the 
pet moves (remember we've changed the thickness of the linez side) 

so you want to cut that down and spread it out a bit amongst the other outlines. I'd do 
that by changing the lines thus: 

45 46 9 -1 244 244 100 104 0 0 
46 47 9 -1 244 244 100 104 0 0 
47 48 9 -1 244 244 100 103 0 0 
3 2 5 -1 244 244 95 95 0 0 
6 2 5 -1 244 244 95 104 0 0 

See? Spreading the load, as it were, by reducing the 934 to 104 and increasing three 100s 
ti 104, 104, and 103. It's not as simple as when you've got paint Ballz to fool around 
with, but so long as you bear in mind what exactly it is that you're making larger or 
smaller, it all works out okay. 

So, when you don't have [Paint Ballz], it really depends on the individual pet as to what 
exactly you can change without it looking wrong. But I hope that helped.

Hope that helps 

Carolyn