Programs For The Sims 2

Sims 2 Programs - Sims 2 Editing - Sims 2 Downloads

Sims 2 NPC Replacer

Sims2NPCreplacer01.00.11.zip

Sims Houses

Sims 2 Pets

Sims 2 Pets

Sims Homes

Sims Houses

Sims 2 Pets

Sims 2 Pets

Sims Homes

Sims 2 Programs - Sims 2 Editing - Sims 2 Downloads

Sims 2 Hack Conflict

Detection Utility

Sims2HCDU-02.00.03.zip

Sims Houses

Sims 2 Pets

Sims Homes

Sims Houses

Sims Houses

Sims Homes

Sims Homes

Sims 2 Pets

Sims 2 Programs - Sims 2 Categorizer

Sims 2 Categorizer

Sims2cat01.01.11.zip

Note: All of the programs on this page require the Visual Basic 6 runtime files. Windows XP ships with these files pre-installed. If the program will not install or run, download and install the runtime files from the link below.

Visual Basic 6 Run Time Files

Sims Programs - Sims Downloads

 

Back to sims 2 content

 

It's nice to be finally creating programs for The Sims 2. It was a long and somewhat bumpy road to get here. I've been writing programs to edit computer games for over a decade, but writing a program to modify The Sims 2 was my greatest challenge.

Back in the days of Sims 1, I had written a rather extensive library of procedures for reading and writing the various file formats. Sims 2 managed to make almost the entire library obsolete. The only code that was reusable dealt with binary number conversion and a few utility procedures, all of which I have used in non-sims related programs. Starting over from scratch was really tough.

The first obstacle that I had to overcome was the extensive use of file compression in the Sims 2 data files. When Maxis put together the package files that contain the games content, the compressed virtually everything. Some of the files that were compressed were small enough that they actually became a few bytes larger after being "compressed". This had me wondering for a while if this was meant to be a form of encryption or if someone said "compression everything" and the instruction was taken too literally. It makes sense to compress the meshes and texture, as for Sims 2 they can be HUGE. It did not make sense to compress property sets that were only a handful of bytes to begin with.

I actually had written a decompression algorithm for Sims 2 entirely in Visual Basic. It was so unbelievably slow that I could go fix myself a snack while it decompressed a 1024 x 1024 texture file. Obviously that wasn't going to work in a program that had to decompress files on the fly. The problem seemed so insurmountable that I stopped working on Sims 2 stuff all together for a while.

I needed a solution to the decompression dilemma before I could go any further with my Sims 2 efforts. There were few good options available to me. I have not programmed in any language besides visual basic for years. I knew there had to be a solution out there somewhere. The solution as it turned out was the C programming language.

Way back before I even became computer professional I had taken a course in the C programming language. I knew that it was possible to create a DLL in C and to interface that DLL with a Visual Basic program. The details on how exactly to accomplish that had apparently leaked from my brain at some point. After searching the web I found a ten year old Microsoft document that gave me the basics on how to create a DLL that VB could hook up with. I was getting closer, but I still had a long way to go.

My next problem was that I have forgotten virtually everything about programming in C. It has been at least 10 years since that programming course and I never really used C for much of anything. I did have Visuall C++ 6 as a part of Visual Studio, so at least I had the tools, even if I did not know how to use them. I would like to point out that the DLL I eventually created is straight ANSI standard C and not C++.

Replicating my VB code in C proved to be interesting. I had never used Visual C++ before as my old efforts with C ran under MS-DOS. I spent way more time that I care to admit reading about C programming and Visual C++ on the web. Eventually I created a DLL and the damn thing even worked.

The first time I tested the DLL I thought it had failed because it came back almost instantly. I thought to myself, "Well, it can't be THAT fast." Guess what, it IS that fast! Free of any object oriented gobbledygook, the C programming language is a real speed demon. Once I got rid of the "Memory Leak From Hell", my C DLL worked pretty darn well.

As an encore to the decompression algorithm, I made a compression algorithm. Compressing things is much harder than decompressing them. I had no idea how the Maxis compression code worked. Actually I had no idea how ANY compression code worked. While it may not be rocket science, it's way more complex than what I am used to dealing with.

What I eventually decided to do was create my own custom compression algorithm that would output data in a format that could be read by The Sims 2. I am certain that it bears no resemblance to the code used by Maxis. I was able to use a form of sliding window compression that actually achieves a fairly high compression ratio. The algorithm even allows the calling procedure to set the data chunk size that is used, allowing the compression efficiency to be tweaked. It may not be the fastest or the most efficient algorithm possible (I am sure it isn't), but it does work very well for my purposes.

Once I had the whole compression issue behind me I could begin to concentrate on learning all the new file formats used in Sims 2. I am getting close to having the same type of code library for Sims 2 that I had for Sims 1. I already have a lengthy list of programs that I am going to create for Sims 2 and now that I have the basics in place, they should be fairly easy to create.

As I have stated before, I create Sims programs purely for my own use. The Sims 2 NPC Replacer was created so that I could replace the female maid and gardener NPCs without having to make custom NPC packages by hand. I have been greatly gratified that my first program for Sims 2 has been so well received.

This was supposed to be a short paragraph at the end of the page. I guess I do tend to ramble on a bit. :)

 

Sims 2 Objects - Sims 2 Programs - Sims 2 Downloads - Sims 2 Editing