I finished my initial analysis of the "Alley Cat.cat" file. I presumed this file would just be data about the "Alley Cat" breed, but it was a whole executable compiled in C++.
Pic related, the Alley cat in question. (https://petz.miraheze.org/wiki/Alley_Cat)
I have downloaded HxD to analyze the file (it is a hex editor).
I went through it while documenting what's happening at each offset. Mostly the plain text because I'm not good at analyzing hex yet.
Offset: data.
Header section - Beginning.
—0: Beginning of the header section. MS DOS signature. "This program cannot run in DOS mode".
—1F1-296: Strings: text, rdata, data, rsrc, reloc. These are Windows portable executable headers.
Headers - End. (at 0xFFF)
Text - Beginning. (at 0x1000)
Text - Ending. (at 0x2fff)
Rdata - Beginning. (at 0x3000)
—3000: 32 bit structures that are likely array of some game data/lookup table
—3BAB: Section of FF's. Around like 168 FF's? I am not sure what these are for.
—5434: Import/Export table? Shows C++ functions
Rdata - Ending. (at 0x5fff)
Data - Beginning. (at 0x6000)
—6150: String table begins. Contains emotional states, personality traits, item properties, various filepaths in PtzFiles.
Data - Ending. (at 0x6fff)
Rsrc - Beginning (at 0x7000)
—8740: UTF-16 little-endian filenames (Breed sounds, etc)
—0x92E0 AlleycatSprite definition. Petz 5 uses c++ classes with inheritance, and AlleycatSprite is that for this breed.
—BCF0 data structure for the rigs, ie this is where the ingame sprites for cats are programmed.
—14D60 a lot of filenames for audio again (a lot of toyNN.wav files, etc)
—31450 onwards: This section is long as FUCK because there's a bunch of wav files for some reason. Like not filenames but just straight up audio
Rsrc - Ending (at 0x138fff)
Reloc - Beginning (at 0x139000)
—Some weird binary data in the middle of nothing here. Looks like an index and it refers to the rdata range.
Reloc - Ending (at 0x13afff)
—Somewhere here there's a lot of export strings, and interestingly enough there's pretty much all functions you can think of named here. Some examples:
>GetIsBehindPetDoor
>IsThisAPet
>AreWeIncestuous
>MutualHorniness
This is the most exciting for me because I'd like to get to the logic behind these exactly.
Tdb - ffdff000 to ffddfffff













