Contents: Introduction Petz 5 special case For Petz 3, 4 and 5 For Babyz Addendum: How to make new toyz work separately (updated July 2004) Introduction ============ This is intended to explain how to un-hide toyz and give them on-shelf graphics where needed. It also explains how to re-arrange the items that they need in order to edit some toyz that were previously thought to be un-hexable (such as the Milk). Petz 3, 4, 5 and Babyz all have "hidden" toyz, which are toyz that either appear in specific playscenes only and can never be taken elsewhere (such as the Petz mosquito or hermit crab and Babyz bunny or big teddy) or which appear occasionally in scenes and need to be gathered into the carry-case. There is even the occasional toy, such as the Surprise.toy in Babyz, which never appears at all and seems to have no purpose, and there are toyz which are partly contained within the game's .dll files. Note that when I talk about .lnz, .bdt, .bhd, .scp, .spr, .flh and .flm sections or files, I'm expecting you to know the basics of hexing and how to find sections within the .dll or .toy files. You can either find them by using the old hexing methods or by using a resource editor such as ResHacker to extract them. I'm also assuming that you know how to use the tools, whether you're using a hex editor or a resource editor. Finally, I'm assuming that you know how to edit .lnz sections (they work the same way as breedfile .lnz and clothes .clz sections) and how to edit Filmstrips in Petz 3, 4 and Babyz (see my tutorials on that if you don't yet know how). And remember -- always, always keep a backup copy of your original in case anything goes wrong. Petz 5 Special case =================== In the case of Petz 5, of course, all toyz need to be gathered into the carry-case because there is no Toy Closet. I have a registry and key fix in my P5 toy zips for people with that game. In addition to changing the necessary bytes that I'll be showing you later in this "howto", you will have to alter your Registry and key to allow for the extra toyz. If you "un-hide" all the toyz which have on-shelf graphics, you will have 135 toyz in the case and you will need to enter hexadecimal 87 into the Registry. If you were to "un-hide" all the ones also which do _not_ have the graphics, you would have 157 toyz, and would need to enter hex 9D into the Registry; but I do not advise this, as several of these will crash the game. I've not checked them all to see which cause crashes and which don't, but I can tell you that the "unhidden" Treasure Chest and Pirate Flag crash the game while the Blue Butterfly and Beetle do not. This is true whether you add on-shelf graphics or not. In the zipped version of this "howto" I include a zip containing a fixed-up .lkv file for you to place in your game's Keys directory; if you choose to un-hide all the toyz, it will allow them into your carry-case. Don't forget that you need to enter 9D into the Registry, into the "Case ListSize" in HKEY_LOCAL_MACHINE\SOFTWARE\StudioMythos\Petz 5\4.00.00 If you're going to add extra, new toyz, you will need to make that 9D into a larger number (as with my Mint Bottle, I needed to enter 9E) and you'll need to add an extra bit onto the .lkv file (as I did with my Mint Bottle, downloadable separately at my site). If you want to un-hide all the hidden Petz 5 toyz and test them, you can give them "on-shelf" graphics by taking a .spr section from some other item -- a clothes item, for instance, which you wouldn't expect to see on the toy shelf -- and either inserting it into the .toy file using a Resource Editor or placing it in a subdirectory on your hard drive. If you choose the latter method, you must first make the subdirectory, off your game's main directory, which will be called art then you must make another one, off that one, which will be called sprites then another one, off that one, called toyz -- and finally another one, off that one, called by the sprite-name of your toy. For instance, look at the blue butterfly which I have for download at my site. In the zipfile you will find the butterfly toy and a .spr file called fbug_b2_away.SPR. This file needs to be in this subdirectory, off your game's root directory: \art\sprites\toyz\fbug_b2 and my version of the beetle comes with a file, called fbug_b1_away.SPR, which needs to be in this subdirectory: \art\sprites\toyz\fbug_b1 If you'd rather use a resource editor such as ResHacker to add the spr to the toy file, go ahead -- but I do not give lessons in using resource editors, sorry. This is because I'd have to make separate "tutorials" for each resource editor, and I just don't have the time. Petz 5 SPR sections are, at the time I write this, not editable in any useful way (sept 2003). You can swap around on-shelf graphics in the manner that I show above, so that you can make your clothes or toyz show up a little differently. And you can still edit any toyz that use .lnz files: the Auto-rolling ball, the driftwood, the fish-bone, the bone, the stick, the milk, and the tug-toy. Of these the Auto-rolling ball, the driftwood, and the fish-bone have their .lnz sections actually in the toy files and you can edit them in the same way as Petz 3 and 4 people are able to edit them. The bone, the stick, the milk, and the tug-toy have the .lnz only in the huge PetzRez.dll, and you can make new toyz from them by either putting the .lnz, .bdt, .bhd and .scp sections into a special directory on your hard drive or by using a resource editor and inserting them into your toy. These four sections need to go into a different directory from the .spr sections. In this case you need to make a PtzFiles directory and then, off that, make one with the name of your particular toy's base. For instance, my "Mint Bottle" has Mint.lnz, Mint.scp, Mint.bhd, Mint0.bdt in the directory \PtzFiles\Mint For Petz 3, 4 and 5: ==================== NOTE: For several toyz, there is no animation for them being on the shelf, so you have to grab at what looks like blank shelf to make some of them appear in the hand. Even if you add on-shelf graphics, when you do get them out into the scene, these particular ones cannot always be cleared up back into the closet or the carrycase. In order to get rid of the most stubborn ones once you've got them in a scene, just close the game, remove the relevant .toy files from your toyz directory, and then open the game again. This is a good way to get rid of various problem toyz, by the way, such as spare paint brushes or surprise-box tops. This may seem a bit messy, but it's quite funny to have the tortoise trundling around in the toyroom. If you want these particular toyz to appear in other scenes, then you need to edit the playscene itself so that it starts up automatically with them in place. I shall cover that sort of thing in my playscenes-hexing tutorial. Put simply, you can make toyz, which are normally "hidden", become available from the toy closet or, in the case of Petz 5, from the carry-case, by changing one byte which is three bytes after the ID number. You change this byte from hex 01 to hex 03. 02 will also work -- in fact, just about anything that isn't 01 or 00. But 03 is a good sturdy number that definitely works :-) Take the Petz 4 and 5 beetle for example, and find its ID number (what we all call the "offset byte"). You can do that by searching for Beetle and finding the place which looks like this: 00016992 | 0000 0000 4265 6574 6C65 0000 0000 0000 | ....Beetle...... 00017008 | 0000 0000 0000 0000 0000 0000 0000 0000 | ................ 00017024 | 0000 0000 9927 0000 0100 0000 0000 0000 | .....'.......... change the 0100 which you see 3 bytes after the ID number (which in this case is 9927) to 0300, as for the toys that we are supposed to see. For instance, you can see it clearly in the dog brush: 00017408 | 0000 0000 426C 7565 2044 6F67 2042 7275 | ....Blue Dog Bru 00017424 | 7368 0000 0000 0000 0000 0000 0000 0000 | sh.............. 00017440 | 0000 0000 2627 0000 0300 0000 0000 0000 | ....&'.......... So that line in the beetle would look like this in your hex editor if you want it to be in the toy closet: 00017024 | 0000 0000 9927 0000 0300 0000 0000 0000 | .....'.......... or take the Petz 3, 4 or 5 Hermit Crab: 00019040 | 0000 0000 4865 726D 6974 2043 7261 6200 | ....Hermit Crab. 00019056 | 0000 0000 0000 0000 0000 0000 0000 0000 | ................ 00019072 | 0000 0000 2B27 0000 0100 0000 0000 0000 | ....+'.......... change the 01 to 03: 00019040 | 0000 0000 4865 726D 6974 2043 7261 6200 | ....Hermit Crab. 00019056 | 0000 0000 0000 0000 0000 0000 0000 0000 | ................ 00019072 | 0000 0000 2B27 0000 0300 0000 0000 0000 | ....+'.......... The above two examples will appear as a blank space in the toy closet. There are some toyz which are "hidden" in that they don't appear in the toy closet, but that will show up properly in the closet, complete with proper picture, when you hex their number as shown above. These are the items -- shells, hairball etc -- which you can collect and place in your carrying case. Those items will of course go back into the closet properly when you hit "Cleanup Area". Note that "Clean up toy Closet" clears up more of these items than simply "cleanup area". If you want to un-hide all the hidden Petz 3 and 4 toyz and test them, you can give them "on-shelf" graphics by copying a .flh and .flm section from some other item which does have an "AWAY" .flh/.flm set -- and either inserting it into the .toy file using a Resource Editor or placing it in a subdirectory on your hard drive. If you choose the latter method, you must first make the subdirectory, off your game's main directory, which will be called art then you must make another one, off that one, which will be called sprites then another one, off that one, called toyz -- and finally another one, off that one, called by the sprite-name of your toy. For instance, look at the blue butterfly which I have for download at my site. In the zipfile you will find the butterfly toy, a .flh and flm files called fbug_b2_away.flh and fbug_b2_away.flm. These files need to be in this subdirectory, off your game's root directory: \art\sprites\toyz\fbug_b2 and my version of the beetle comes with a pair of files, called fbug_b1_away.flh and fbug_b1_away.flm, which needs to be in this subdirectory: \art\sprites\toyz\fbug_b1 If you'd rather use a resource editor such as ResHacker to add the flh and flm to the toy file, go ahead -- but I do not give lessons in using resource editors, sorry. This is because I'd have to make separate "tutorials" for each resource editor, and I just don't have the time. You can of course edit the .flm files; check out my tutorials on Filmstrip editing if you want to know how. For Babyz: ========== Things are a little different in this game, but the principle is the same. We have several set playscenes and a variety of objects which are always in a given scene but never in a cupboard -- such as the big teddy in the playroom or the high chair in the kitchen. Then there are toyz which are always to be seen in a specific cupboard or closet in a specific room. Finally there are some toyz which were presumably never meant to be seen, such as the "surprise" box which, in Petz 4, contains the bubble machine but in Babyz does not even appear in the game and is empty when you "enable" it. Because so many positions need to be taken into account, the numbers which we need to change are a little more complicated, but don't panic -- it's still pretty simple once you get your mind around it. The thing to remember is that because of all the possible positions, Babyz makes use of an 8-byte set of hex numbers. (actually, the Petz games probably do too, but since they don't tend to make use of position it doesn't affect hexers) Most of the numbers in the 8-byte identifiers of the Babyz toyz etc are still 00, and the main object ID is still the first two, but there are some important differences. Here are some examples, which I hope will show you how to find the ID number as well as illustrate the way it works: Attic Cupboard: Example: Watering can, 00034224 0000 0000 5761 7465 7269 6E67 2043 616E ....Watering Can 00034240 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00034256 0000 0000 5C27 0000 0300 0400 0000 0000 ....\'.......... The words Watering Can are near the ID number, and searching for them is a neat way of getting to the place that you're after. The number is 5C27 0000 0300 0400 5C27 is the individual ID, 0300 0400 indicates its base location. In this case, the base location is the attic shelves. You don't have to worry about the fact that the watering can is also in the garden, as this is caused by code within the playscene. Playroom cupboard: example, Rattle, 00038128 0000 0000 5261 7474 6C65 0000 0000 0000 ....Rattle...... 00038144 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00038160 0000 0000 4D27 0000 8310 0000 0000 0000 ....M'.......... number is 4D27 0000 8310 0000 4D27 is its individual ID number, and 8310 0000 indicates its base location. In this case, the base location is the playroom cupboard. Dressingroom diaper-cupboard: Example: Intercom, 00037728 0000 0000 496E 7465 7263 6F6D 0000 0000 ....Intercom.... 00037744 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00037760 0000 0000 3527 0000 0340 0000 0000 0000 ....5'...@...... number is 3527 0000 0340 0000 3527 is its individual ID number, and 0340 0000 indicates its base location. In this case, the base location is the dressing-room diaper-cupboard. Nursery: Example: Toy book, 00034896 0000 0000 546F 7920 426F 6F6B 0000 0000 ....Toy Book.... 00034912 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00034928 0000 0000 4127 0000 A300 0100 0000 0000 ....A'.......... has number 4127 0000 A300 0100 4127 is the Toy Book's individual ID, and A300 0100 indicates its base location. Now here's an interesting pair that you might want to fool around with... Sittingroom: Example: Record, 00041952 0000 0000 5265 636F 7264 0000 0000 0000 ....Record...... 00041968 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00041984 0000 0000 4F27 0000 A300 0200 0000 0000 ....O'.......... has ID number 4F27, and A300 0200 indicates its base location. Example: Record Player, 00046304 0000 0000 5265 636F 7264 2050 6C61 7965 ....Record Playe 00046320 7200 0000 0000 0000 0000 0000 0000 0000 r............... 00046336 0000 0000 4E27 0000 8300 0000 0000 0000 ....N'.......... has ID number 4E27, and 8300 0000 indicates its base location. Now then, the two items above can be made to work in other playscenes. For instance, change the Record Player so that it still has the 83, but change the 00 after it to 10 so that it shows up on the Playroom shelf. It now becomes 8310 0000 and will appear as usual in the sittingroom, but you can also get it out in the playroom. Now take the Record.toy and give it that 10 number too -- i.e. change its number to 4F27 0000 A310 Next time you open the game, you can get the player and the record off the shelf and have your baby dance in the playroom. You can leave the record playing in there and then go to the sitting-room, and put on another record there too; go back to the playroom and the first one is still playing. A caution here, sometimes when you try to pick the record off the shelf the hand appears with nothing in it. Actually the key here seems to be hidden in your game's Registry, where you need to have the first "slot" filled in the name of a record that's in your Songz directory. For some reason the first slot is often empty. You can fix this by playing a record in the sittingroom, then running Regedit.exe and navigating via the little crosses on the left to HKEY_LOCAL_MACHINE\SOFTWARE\PF.Magic\Babyz\1.00.00 then on the right-hand side scrolling down until you see RECORD 101's Song File (it may be RECORD 's Song File, but I'm sure you get the idea). This one will probably have nothing but 00 numbers next to it if you're having problems grabbing the record off the playroom shelf. If you've played any records in the game, some of the slots will have more than just 00 00 00 numbers in them. Double-click on one of those and a little hex editor will pop up. Select everything in there and choose copy and close the little editor. Now double-click on that first one and select everything in there and choose Paste and OK. Close Regedit. After this, you should be able always to get the record off the shelf -- if not, repeat the process with any other empty Record slots in the Babyz registry. Here are some items that are set to show up in a kitchen cupboard: 00034160 0000 0000 4D69 6C6B 2042 6F74 746C 6500 ....Milk Bottle. 00034176 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00034192 0000 0000 3B27 0000 8380 0000 0000 0000 ....;'.......... 00038592 0000 0000 4261 6E61 6E61 2046 6F6F 6420 ....Banana Food 00038608 4A61 7200 0000 0000 0000 0000 0000 0000 Jar............. 00038624 0000 0000 3627 0000 8380 0000 0000 0000 ....6'.......... 00038784 0000 0000 436F 6F6B 6965 204A 6172 0000 ....Cookie Jar.. 00038800 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00038816 0000 0000 2027 0000 8380 0000 5370 7269 .... '......Spri The location number is of course 8380 0000. Also in the kitchen cupboard is a medicine bottle, but you can see from the location number (0304 0000): 00037632 0000 0000 4D65 6469 6369 6E65 2042 6F74 ....Medicine Bot 00037648 746C 6500 0000 0000 0000 0000 0000 0000 tle............. 00037664 0000 0000 3A27 0000 0340 0000 0000 0000 ....:'...@...... that its base position is the diaper-cupboard, so you can be pretty sure that the game has used some other way of making it appear also in the kitchen. Hidden items, or itemns that you can't get off the shelf anywhere: --------------------------------------- playroom, big teddy, has number 2827 0000 8100 0000 Its individual ID number is 2827, and 8100 0000 means it's not on the shelf, so it is effectively "hidden" to the cupboards. 00034112 0000 0000 4269 6720 5465 6464 7920 4265 ....Big Teddy Be 00034128 6172 0000 0000 0000 0000 0000 0000 0000 ar.............. 00034144 0000 0000 2827 0000 8100 0000 0000 0000 ....('.......... Kitchen, High chair, has number 3427 0000 0100 0000 3427 is its individual ID number, and 0100 0000 means it is effectively "hidden" to the cupboards, or has no place there. If you change its "position" number to 8380 0000 you might expect to find it in the food cupboard under the sink, but unfortunately it does not have an "on the shelf" action, so it will be invisible and will crash the game if you try to get it out, unless you provide it with an on-the-shelf animation. 00042944 0000 0000 4869 6768 2043 6861 6972 0000 ....High Chair.. 00042960 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00042976 0000 0000 3427 0000 0100 0000 0000 0000 ....4'.......... I have given my version of the High Chair an on-shelf animation, so by all means use that if you want to make others of your own. The method for adding these animations, or .flh/.flm sections is the same as in the Petz 3 and 4 games; you can either add them to a subdirectory of your hard drive: \art\sprites\toyz\ (for instance, in the case of my Catty the would be Catty_X2, and if I'd wanted to have the filmstrips external, \art\sprites\toyz\Catty_X2 is where I'd have put them) here are some which show up in the playscenes only, not on a shelf: 00038048 0000 0000 4B69 7463 6865 6E20 4D61 676E ....Kitchen Magn 00038064 6574 0000 0000 0000 0000 0000 0000 0000 et.............. 00038080 0000 0000 3927 0000 0300 0000 0000 0000 ....9'.......... 00033392 0000 0000 5461 6C6C 2047 7265 656E 2050 ....Tall Green P 00033408 6C61 6E74 0000 0000 0000 0000 0000 0000 lant............ 00033424 0000 0000 4827 0000 0100 0000 0000 0000 ....H'.......... and one that doesn't show up at all: 00043872 0000 0000 5375 7270 7269 7365 0000 0000 ....Surprise.... 00043888 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00043904 0000 0000 4A27 0000 0300 0000 5370 7269 ....J'......Spri and the bunny, of course, which just turns up at random in the backyard: 00033600 0000 0000 4275 6E6E 7900 0000 0000 0000 ....Bunny....... 00033616 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00033632 0000 0000 1B27 0000 8100 0000 0000 0000 .....'.......... Now, you can change the ID numbers of these so that they would show up on the shelf in the Playroom or the Attic, just as with others, but the originals don't have the on-shelf filmstrip. As mentioned above, you can give them suitable filmstrips either by using a resource editor as I have with some of them, or you can give them filmstrips by placing suitable .flh and .flm files in a subdirectory on your hard drive. The advantage of the latter method is that you can swap them around with other suitable flh/flm pairs any time you want without messing around with the toy file. The disadvantage is that people passing your toyz around amongst themselves will inevitably forget to include these separate files. Incidentally it just so happens that you can make things show up on the Playroom _and_ Attic shelves by putting in the relevant positional numbers for both. They just happen not to overwrite each other :-) Addendum: How to make new toyz work separately ================================================ In all the games you need to give any toyz which are not to overwrite the originals their own ID numbers. You already should know from the above how to find the ID number. What you need to change is the 2-byte number which comes before the bytes that tell the game whether it's hidden or not. For instance, in the case of the Petz hermit crab, the ID is 2B27. Change either 2B or 27 or both to some hexadecimal number which does not clash with another toy in your game. Note that the game won't accept just any number for toyz or clothes, so you'll have to try numbers for yourself to see which ones work. Also, when you have the original in the game also and take it as well as a new item hexed from it off the shelf, the two will look the same. You need to separate them. You do that by changing all the "pointers". There are three areas in which you should to do this. Let's take the Blue Picture Frame, which is in all the games. The example below is mostly for a Petz one, but the same principle applies in Babyz: The "pointer" is Sprite_Pict_B1 Up here there are two instances (in Petz): 00012352 4830 0010 0700 0044 5844 6F77 6E6C 6F61 H0.....DXDownloa 00012368 6400 0000 5370 7269 7465 5F50 6963 745F d...Sprite_Pict_ 00012384 4231 0000 0000 0000 C027 0010 0000 0000 B1.......'...... 00012400 2E3F 4156 4261 6E6E 6572 4162 6C65 4040 .?AVBannerAble@@ 00012416 0000 0000 0000 0000 C027 0010 0000 0000 .........'...... 00012432 2E3F 4156 486F 7374 4040 0000 0000 0000 .?AVHost@@...... 00012448 C027 0010 0000 0000 2E3F 4156 5844 4C69 .'.......?AVXDLi 00012464 6E6B 4040 0000 0000 C027 0010 0000 0000 nk@@.....'...... 00012480 2E3F 4156 5853 6D61 7274 4F62 6A65 6374 .?AVXSmartObject 00012496 4040 0000 0000 0000 C027 0010 0000 0000 @@.......'...... 00012512 2E3F 4156 5853 6F75 6E64 4040 0000 0000 .?AVXSound@@.... 00012528 C027 0010 0000 0000 2E3F 4156 5853 7072 .'.......?AVXSpr 00012544 6974 6540 4000 0000 C027 0010 0000 0000 ite@@....'...... 00012560 2E3F 4156 5363 7269 7074 5370 7269 7465 .?AVScriptSprite 00012576 4040 0000 0000 0000 C027 0010 0000 0000 @@.......'...... 00012592 2E3F 4156 416C 706F 5370 7269 7465 4040 .?AVAlpoSprite@@ 00012608 0000 0000 0000 0000 C027 0010 0000 0000 .........'...... 00012624 2E3F 4156 546F 7953 7072 6974 6540 4000 .?AVToySprite@@. 00012640 C027 0010 0000 0000 2E3F 4156 5370 7269 .'.......?AVSpri 00012656 7465 5F50 6963 7440 4000 0000 0000 0000 te_Pict@@....... 00012672 C027 0010 0000 0000 2E3F 4156 5370 7269 .'.......?AVSpri 00012688 7465 5F50 6963 745F 4231 4040 0000 0000 te_Pict_B1@@.... (in Babyz): 00007110 6E6C 6F61 6400 0000 5370 7269 7465 5F50 nload...Sprite_P 00007120 6963 745F 4231 0000 5265 666C 6563 7469 ict_B1..Reflecti 00007130 7665 0000 4D6F 7573 656C 696B 6500 0000 ve..Mouselike... 00007140 5269 6465 6162 6C65 0000 0000 466C 6965 Rideable....Flie 000073D0 7074 5370 7269 7465 4040 0000 0000 0000 ptSprite@@...... 000073E0 C429 0010 0000 0000 2E3F 4156 416C 706F .).......?AVAlpo 000073F0 5370 7269 7465 4040 0000 0000 0000 0000 Sprite@@........ 00007400 C429 0010 0000 0000 2E3F 4156 546F 7953 .).......?AVToyS 00007410 7072 6974 6540 4000 C429 0010 0000 0000 prite@@..)...... 00007420 2E3F 4156 5370 7269 7465 5F50 6963 7440 .?AVSprite_Pict@ 00007430 4000 0000 0000 0000 C429 0010 0000 0000 @........)...... 00007440 2E3F 4156 5370 7269 7465 5F50 6963 745F .?AVSprite_Pict_ 00007450 4231 4040 0000 0000 0000 0000 0000 0000 B1@@............ Change that to, say, Sprite_Pict_B4 You need to change it also here: 00017120 0300 4600 4C00 4800 0700 5000 4900 4300 ..F.L.H...P.I.C. 00017136 5400 5F00 4200 3100 0C00 5000 4900 4300 T._.B.1...P.I.C. 00017152 5400 5F00 4200 3100 5F00 4100 5700 4100 T._.B.1._.A.W.A. 00017168 5900 0300 4600 4C00 4D00 0300 5400 5800 Y...F.L.M...T.X. 00017184 5400 0E00 4200 4500 5600 4500 4E00 5400 T...B.E.V.E.N.T. 00017200 5F00 5000 4900 4300 5400 5F00 4200 3100 _.P.I.C.T._.B.1. 00017216 0E00 5300 4F00 5500 4E00 4400 5300 5F00 ..S.O.U.N.D.S._. 00017232 5000 4900 4300 5400 5F00 4200 3100 0300 P.I.C.T._.B.1... 00017248 5700 4100 5600 0700 4200 3100 4800 4F00 W.A.V...B.1.H.O. 00017264 4F00 4B00 3100 0700 4200 3100 4800 4F00 O.K.1...B.1.H.O. 00017280 4F00 4B00 3200 0700 4200 3100 4800 4F00 O.K.2...B.1.H.O. 00017296 4F00 4B00 3300 0000 0000 0000 0000 0000 O.K.3........... 00017312 0100 0000 5370 7269 7465 5F50 6963 745F ....Sprite_Pict_ 00017328 4231 0000 0000 0000 0000 0000 0000 0000 B1.............. so that it's like this (no need to bother with the sounds ones unless you actually want to change the sounds, but you need to change the FLH/FLM ones to B4 and for your on-screen tips the BEVENT one): 00017120 0300 4600 4C00 4800 0700 5000 4900 4300 ..F.L.H...P.I.C. 00017136 5400 5F00 4200 3400 0C00 5000 4900 4300 T._.B.4...P.I.C. 00017152 5400 5F00 4200 3400 5F00 4100 5700 4100 T._.B.4._.A.W.A. 00017168 5900 0300 4600 4C00 4D00 0300 5400 5800 Y...F.L.M...T.X. 00017184 5400 0E00 4200 4500 5600 4500 4E00 5400 T...B.E.V.E.N.T. 00017200 5F00 5000 4900 4300 5400 5F00 4200 3400 _.P.I.C.T._.B.4. 00017216 0E00 5300 4F00 5500 4E00 4400 5300 5F00 ..S.O.U.N.D.S._. 00017232 5000 4900 4300 5400 5F00 4200 3100 0300 P.I.C.T._.B.1... 00017248 5700 4100 5600 0700 4200 3100 4800 4F00 W.A.V...B.1.H.O. 00017264 4F00 4B00 3100 0700 4200 3100 4800 4F00 O.K.1...B.1.H.O. 00017280 4F00 4B00 3200 0700 4200 3100 4800 4F00 O.K.2...B.1.H.O. 00017296 4F00 4B00 3300 0000 0000 0000 0000 0000 O.K.3........... 00017312 0100 0000 5370 7269 7465 5F50 6963 745F ....Sprite_Pict_ 00017328 4234 0000 0000 0000 0000 0000 0000 0000 B4.............. Then finally here, below the name: 00134768 7400 7500 7200 6500 2000 4600 7200 6100 t.u.r.e. .F.r.a. 00134784 6D00 6500 0700 5000 6900 6300 7400 5F00 m.e...P.i.c.t._. 00134800 4200 3100 0000 0000 0000 0000 0000 0000 B.1............. change to this: 00134768 7400 7500 7200 6500 2000 4600 7200 6100 t.u.r.e. .F.r.a. 00134784 6D00 6500 0700 5000 6900 6300 7400 5F00 m.e...P.i.c.t._. 00134800 4200 3400 0000 0000 0000 0000 0000 0000 B.4............. And eureka! Your picture frame and the original will come out as they are supposed to :-) Another note, for Babyz hexers. I'm using here as an example a problem which Dani, who is making beautiful Babyz books, sent to me. She had done the ID number correctly, and the redirecting, and the book showed up fine on the shelf. However, when she took either her book, which she had called simply Book.toy, or the original Alphabet book, off the shelf, the other one disappeared. This was caused by something which Babyz hexers have taken for granted, but which Petz hexers cannot get away with, as I show here: The real name of the Book inside is actually the same as the name of the Alphabet Book. In breedfiles etc for Petz, people are used to the fact that it is essential to re-name the file inside as well as outside; in Babyz people have learned to be lazy because the game actually allows us a lot more leeway. We're used to doing the ID number thing, hexers are even beginning to understand about the _X1 etc thing, but people often forget to rename properly. To make your book show up separately, you need to change the name. It's best to change things in the following three places: Instead of 00025056 0000 0100 0200 0300 0400 0500 0600 416C ..............Al 00025072 7068 6162 6574 2042 6F6F 6B2E 746F 7900 phabet Book.toy. 00025088 3F47 6574 4375 7272 656E 7450 6167 6543 ?GetCurrentPageC 00025104 6F6E 6365 7074 7340 5370 7269 7465 5F50 oncepts@Sprite_P 00025120 6963 426F 6F6B 5F58 3140 4055 4145 5841 icBook_X1@@UAEXA 00025136 4156 3F24 7066 7665 6374 6F72 4057 3457 AV?$pfvector@W4W 00025152 6F72 6443 6F6E 6365 7074 496E 6465 7840 ordConceptIndex@ 00025168 4050 4244 4040 405A 003F 4765 7443 7572 @PBD@@@Z.?GetCur 00025184 7265 6E74 5061 6765 5069 6374 7572 6542 rentPagePictureB 00025200 6F6F 6B52 6561 6374 696F 6E40 5370 7269 ookReaction@Spri 00025216 7465 5F50 6963 426F 6F6B 5F58 3140 4055 te_PicBook_X1@@U 00025232 4145 5841 4155 5069 6374 7572 6542 6F6F AEXAAUPictureBoo 00025248 6B52 6561 6374 696F 6E40 4040 5A00 3F50 kReaction@@@Z.?P 00025264 6C61 7946 6F6C 6579 536F 756E 6440 5370 layFoleySound@Sp 00025280 7269 7465 5F50 6963 426F 6F6B 5F58 3140 rite_PicBook_X1@ put 00025056 0000 0100 0200 0300 0400 0500 0600 426F ..............Bo 00025072 6F6B 2E74 6F79 0000 0000 0000 0000 0000 ok.toy.......... 00025088 3F47 6574 4375 7272 656E 7450 6167 6543 ?GetCurrentPageC 00025104 6F6E 6365 7074 7340 5370 7269 7465 5F50 oncepts@Sprite_P 00025120 6963 426F 6F6B 5F58 3640 4055 4145 5841 icBook_X6@@UAEXA 00025136 4156 3F24 7066 7665 6374 6F72 4057 3457 AV?$pfvector@W4W 00025152 6F72 6443 6F6E 6365 7074 496E 6465 7840 ordConceptIndex@ 00025168 4050 4244 4040 405A 003F 4765 7443 7572 @PBD@@@Z.?GetCur 00025184 7265 6E74 5061 6765 5069 6374 7572 6542 rentPagePictureB 00025200 6F6F 6B52 6561 6374 696F 6E40 5370 7269 ookReaction@Spri 00025216 7465 5F50 6963 426F 6F6B 5F58 3640 4055 te_PicBook_X6@@U 00025232 4145 5841 4155 5069 6374 7572 6542 6F6F AEXAAUPictureBoo 00025248 6B52 6561 6374 696F 6E40 4040 5A00 3F50 kReaction@@@Z.?P 00025264 6C61 7946 6F6C 6579 536F 756E 6440 5370 layFoleySound@Sp 00025280 7269 7465 5F50 6963 426F 6F6B 5F58 3640 rite_PicBook_X6@ instead of 00034848 5200 4E00 3700 0000 0000 0000 0000 0000 R.N.7........... 00034864 0100 0000 5370 7269 7465 5F50 6963 426F ....Sprite_PicBo 00034880 6F6B 5F58 3100 0000 0000 0000 0000 0000 ok_X1........... 00034896 0000 0000 416C 7068 6162 6574 2042 6F6F ....Alphabet Boo 00034912 6B00 0000 0000 0000 0000 0000 0000 0000 k............... 00034928 0000 0000 3D27 0000 A300 0100 0000 0000 ....='.......... put 00034848 5200 4E00 3700 0000 0000 0000 0000 0000 R.N.7........... 00034864 0100 0000 5370 7269 7465 5F50 6963 426F ....Sprite_PicBo 00034880 6F6B 5F58 3600 0000 0000 0000 0000 0000 ok_X6........... 00034896 0000 0000 426F 6F6B 0000 0000 0000 0000 ....Book........ 00034912 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00034928 0000 0000 412E 0000 A300 0100 0000 0000 ....A........... and finally, instead of 03187088 0000 0000 0000 0000 0D00 4100 6C00 7000 ..........A.l.p. 03187104 6800 6100 6200 6500 7400 2000 4200 6F00 h.a.b.e.t. .B.o. 03187120 6F00 6B00 0D00 4100 6C00 7000 6800 6100 o.k...A.l.p.h.a. 03187136 6200 6500 7400 2000 4200 6F00 6F00 6B00 b.e.t. .B.o.o.k. 03187152 0A00 5000 4900 4300 4200 4F00 4F00 4B00 ..P.I.C.B.O.O.K. 03187168 5F00 5800 3100 0000 0000 0000 0000 0000 _.X.1........... put 03187088 0000 0000 0000 0000 0400 4200 6F00 6F00 ..........B.o.o. 03187104 6B00 0400 4200 6F00 6F00 6B00 0A00 5000 k...B.o.o.k...P. 03187120 4900 4300 4200 4F00 4F00 4B00 5F00 5800 I.C.B.O.O.K._.X. 03187136 3600 0000 0000 0000 0000 0000 0000 0000 6............... 03187152 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03187168 0000 0000 0000 0000 0000 0000 0000 0000 ................ Note where I put the extra 00 bytes in each case to make up for the removal of all those letters which make up Alphabet, and note that in the last section I changed the letter-count in front of each name to 04 instead of 0D. Your book and the Alphabet book can now be brought out at the same time. Enjoy Carolyn Horn