Jump to content
  • Member Statistics

    • Total Members
      1,194
    • Most Online
      799

    DraconicEnvy
    Newest Member
    DraconicEnvy
    Joined
  • Who's Online (See full list)

    • Hawkkeye666
    • MarkBL20
    • Luz21

Causes of ZT crashes and how to avoid them by Jay


Fern

Recommended Posts

This lists some things that can cause Zoo Tycoon 1 to crash (ie, the program ends unexpectedly). It also gives some ways to avoid the crashes. This list does not cover most of the crashes that can occur from user made objects that were not configured correctly, since those should be found during testing. But the list will include some crashes that can occur from user made objects if they involve things that are often missed in testing.

 

Symptom: An object is changed to a different object, usually a user made object, in a zoo in MM or CC and the game soon crashes.

 

Cause: It is a mistake in the MM/CC program. In MM, Blue Fang added the ability for guests to go look at objects. Most of the objects that come with Zoo Tycoon and some user made objects can be looked at. Those objects have to have IDs that are in ".dll" files. When MM/CC sees such an object, MM/CC will eventually have a guest go look at it. If a guest starts walking to such an object and that object is then replaced with an object that does not have a ".dll" ID, which most user made scenery, rocks, and foliage do not, the guest continues to go to the object. But when the guest gets there, MM/CC do not check if the object was changed and the game crashes. Interestingly, if the object is replaced with an object that does have a ".dll" ID, the guest will still go to look at it, but will have the guest thought for the new object instead. For example, if the tar pit is replaced with the ring toss game while adults are on their way to look at the tar pit, those adults will go and look at the ring toss game without going in and will have the guest thought for the ring toss game, even though the ring toss game is only for children.

 

How to avoid: There are 2 approaches that can be used to avoid this problem. One approach is, after deleting an object that guests might go to look at, wait a length of time without the game being paused before putting another object at that location. It has to be enough time for all guests that are on their way to that location to get there. Once the guests get there, they will see that there is nothing there and will then go elsewhere. I do not know what that length of time to wait should be.

 

Another approach is, before replacing an object with another object, put a decorative fence around the object, at least 1 tile away from the object. Then replace the object. Wait a length of time without the game being paused before deleting that decorative fence. That way any guests that are on their way to the object will eventually get to the fence and stop. I do not know what length of time one would need to wait before removing the fence, but this approach would make it easier to wait longer and the fence could also make it easier to relocate that location if you decide to go and do other zoo building while waiting.

 

-----

 

Symptom: A saved game is loaded in MM or CC and the game crashes immediately or soon after.

 

Cause: This is the same problem as above. It just happens to be saved in a zoo.

 

How to avoid: Use one of the above approaches to avoid this problem before saving the zoo. If the zoo is already saved, there is no perfect solution. Try pausing the game immediately on loading the zoo to try to find which object guests might be going to see and delete it or put a decorative fence around it. If the zoo is too large to find the location or if the crash occurs immediately, you would have to remove everything from the dlupdate folder (for CC) or the Updates folder (for MM) and add them back into the folder a group at a time to see which object will prevent the crash. That does not mean there is anything wrong with that object; it just happens to be at the location where the guests are expecting to find the previous object.

 

-----

 

Symptom: A user made object is added to a zoo in MM or CC and, when a guest eventually goes near it, the game crashes.

 

Cause: This is similar to the above problems. When the object was created, it was intended to be one that guests do not go to look at. But the configuration was copied from an in-game object that guests do go to look at.

 

How to avoid: The configuration should be changed for the user made object. Ideally, it should be changed by someone at the site where it is available for download. The object's ".ucs" file should have the cEstheticWeight and cGawkOnlyFromFront lines removed.

 

-----

 

Symptom: A zoo is running in a ZT expansion pack and the game crashes, even when no changes were made for a while in the zoo.

 

Cause: There are 2 possible causes. It is possible that a patch program was run that changes ".dll" files. When buildings were made by users for the original Zoo Tycoon, this was often the approach used to get messages into the game for the building. But when the ZT expansion packs were created, some messages were officially changed. With the user made patch programs, though, that causes problems with the official changes.

 

The other possible cause is the map has a zoo wall in a tile along the edge of the map. It could be a user made map, but Zoo Tycoon also has 2 maps where this occurs: "Jungle River (Medium)" and "Marine Mania: Lake Resort (Large)".

 

How to avoid: No patch program should be run for user made objects. Also, some user made setup programs contain patch programs that are run when the setup program is run. So no setup program should be run for user made objects unless it is known they do not contain patch programs. Some user made downloads contain ".dll" files where the designer ran a patch program. These ".dll" files will always be large. Do not use any user made ".dll" files that are larger than 1.8 MB. If you believe you might have run a patch program or setup program that contains a patch program, compare the size of the lang0.dll in the Zoo Tycoon folder with the one on the Zoo Tycoon CD-ROM. If the sizes are different, then copy the lang0.dll from the CD-ROM to the Zoo Tycoon folder. If there are any user made ".dll" files in the Zoo Tycoon folder that are larger than 1.8 MB, delete them, but do not delete any ".dll" files that come with Zoo Tycoon.

 

To see if the crash is caused by the map, click Pause and turn on the grid lines in Zoo Tycoon. Then check all 4 edges of the map to make sure it does not have a zoo wall in any tile along the map's edge. If it does, do not use the map. That includes not using the "Jungle River (Medium)" map or the "Marine Mania: Lake Resort (Large)" map that come with Zoo Tycoon if you are using an expansion pack.

 

-----

 

Symptom: The game crashes when you click on a user made animal or object in a purchase menu or when you move the mouse cursor over a user made icon in a purchase menu or when you click on an animal in an exhibit and click the Zookeeper Recommendations. The game might not crash for other people doing the same thing.

 

Cause: A user made animal or object can support different languages. A line in the configuration says what language to use if someone is using a Zoo Tycoon version for a language that is different than any of those added to the configuration. Sometimes this line is not set correctly by the APE program. So the animal or object might work for someone using one language, but cause a crash when used by someone using another language.

 

How to avoid: The configuration should be changed for the user made animal or object. Ideally, it should be changed by someone at the site where it is available for download. The animal's ".uca" file or object's ".ucs" file should have a LCID line. The number on that line should match one of the numbers that is in brackets elsewhere in the ".uca" or ".ucs" file. For downloads at English speaking web sites, that usually means the file should have "LCID=1033" and "[1033]" lines.

 

-----

 

Symptom: The game crashes when you pick up a user made animal and try putting it on water terrain. Note that sometimes an animal can be placed on water when it is first adopted, but not later.

 

Cause: The configuration for the user made animal says it can be placed on water terrain but does not have all of the configuration needed by Zoo Tycoon to do so.

 

How to avoid: The configuration should be changed for the user made animal. Ideally, it should be changed by someone at the site where it is available for download. All "cSwims = 1" lines in the animal's ".uca" file should be changed to "cSwims=0".

 

-----

 

Symptom: The original Zoo Tycoon or DD is being used and the game crashes soon after a zookeeper enters an exhibit or is put in an exhibit.

 

Cause: The animal needs a type of food that was not created until a later expansion pack.

 

How to avoid: Do not use the animal in the original Zoo Tycoon or DD.

 

-----

 

Symptom: The game crashes after selecting Play Freeform Game, selecting a map, and clicking Play.

 

Cause: There are too many ".ztd" files.

 

How to avoid: ".ztd" files can be combined. The "Zoo Tycoon 1 Limits And Suggested Solutions" topic at Zookeeper's Lounge talks about the problem more:

http://www.lunamanar.com/zklounge/index.php?showtopic=1573

 

-----

 

Symptom: The game crashes when you try to load a saved zoo, continue a saved zoo, or start a new zoo.

 

Cause: The unlockCount number in the zoo.ini file is larger than 999.

 

How to avoid: The unlockCount number should be reduced to less than 999, such as setting it to 1. The "Zoo Tycoon 1 Limits And Suggested Solutions" topic at Zookeeper's Lounge talks about the problem more:

http://www.lunamanar.com/zklounge/index.php?showtopic=1573

Link to comment
Share on other sites

interesting bug - The Mars Bug, hehe.

 

i found another bug while making objects.

 

i edited the .ani files with wordpad (save as text file) and the game would immediately crash when i opened the menu the object was in. i reloaded the object into APE to see if it would crash there and saw the graphics were all gibbled. i reloaded them and everything was ok.

 

after reading jay's great post here, i wondered why this should be making the game crash since it was just a text file.

 

r-click > show properties

 

original file: 144 bytes

edited by wordpad: 156 bytes

 

and then i edited with notepad: 144 bytes

i noticed the EOL character displaying in notepad, but not working as a \n. on windows file systems, \n is <cr><lf> and on unix systems, it's one or the other (i can't remember which). so if there were some unix programmers working on zt1 OR this was some rudimentary hack proofing, someone used the unix 1 character \n instead of the 2 character one in the .ani files.

 

Solution: if you really feel a need to edit .ani files, set Open With to default to notepad and don't delete those little boxes.

Link to comment
Share on other sites

I learnt that leason a long time ago. I always get notepad and wordpad mixed up as my computer has been set to "open with" for a long time.

 

But this thread is more for players than designers. No designer should be releasing files without testing.

 

I have long since learned when testing new buildings etc that the point at which the game crashes is a good indicator as to where the likely problem is.

Link to comment
Share on other sites

This is for T'ni from Jay as I sent him a copy of your post and your file (part of an email conversation) and for those that do not know he is a computer programmer:

 

There are comments that the person made that are not correct. The "dos" way of ending lines uses 2 characters: \r\n. The "unix" way of ending lines uses 1 character: \n. ZT supports both. To prove that, I just changed all ".ani" files and the ".ucs" file in their ztd to use the "unix" way and my ZT had no problems with that ztd. So if there was a crash, it was because of something else. ZT can even open a file that is part the "dos" way and part the "unix" way. I was also able to open that "unix" version in APE without any problems. It has been a long time, but sometimes I would use the "unix" way when I create ZT files because it creates slightly smaller files. So they may have been using a file I created. But I do not go out of my way to use the "unix" way. WordPad knows how to work with either type of format: "dos" or "unix". Notepad only knows how to handle the "dos" format. So WordPad should be used instead of Notepad. I do not know if this is true for all versions of WordPad, but there is a mistake in the version of WordPad I have in my XP. If I have a "unix" formatted file and I save it as "Text Document", it saves it as a "dos" formatted file. If I save a "unix" formatted file using "Text Document - MS-DOS Format, it saves it as a "unix" formatted file. So this is backwards than the way it should work. But since ZT can handle either way, that is not a problem.<br clear="none"> - Jay

I replied with this: I think it crashed before this file that I sent you since I had no problems and he did say he solved it by switching to the other "....pad" program. I was more concerned that the number had no letters and also that he might just use the next one in sequence for new files. It really is the slow way of doing scenery. It is bad enough having to create everything for fences etc.

 

Jay's reply to me:

I do not know what the person did, since they used APE at some point. But maybe they used APE to create a new ID from an existing user made download. APE just copies ".ani" files, whether it is from in-game things or user made things, and then just changes the internal name. Technically, that is not correct, since the x0/x1/y0/y1 values would be for the object used as a base and not for the new object. But that doesn't seem to hurt anything (except for icons). But my point is them changing from WordPad to Notepad did NOT fix the problem. WordPad should be used over Notepad. Wordpad does not cause ZT crashes. So they changed something else besides just going from WordPad to Notepad, and it is that something else that fixed the problem. The reason I am bringing this up is because they are giving bad advice in the open. I repeat, WordPad should be used over Notepad, and not the other way around.

Link to comment
Share on other sites

"The "dos" way of ending lines uses 2 characters: \r\n. The "unix" way of ending lines uses 1 character: \n." well, that's what i said. only maybe i said it weird. but that's what i meant.

 

"If I save a "unix" formatted file using "Text Document - MS-DOS Format, it saves it as a "unix" formatted file." this i didn't know. i've actually never saved a file this way.

 

but really - all i did was edit the .ani file with wordpad, remake the .ztd and the game crashed. when i checked in ape after, the graphics were all gibbled and the .ani file was 12 characters longer than the original. since this was the number of lines in the file, i assumed it was the 2 character EOL instead of the 1 character EOL that was making the difference. i just reloaded the graphics in ape and the file worked.

Link to comment
Share on other sites

in some post of yours i think somewhere (lol, i've been reading "tech manuals" all over) you gave numbers for guest thoughts:

 

; flowerbed only

cUsedThought = 10216

; for statues

cUsedThought = 10222

; for fountains, else remove

cUsedThought = 10220

 

are these the numbers that cause the Mars Bug? i don't know about anyone else, but i don't really care what the guests think and would rather not cause game crashes. i can leave this characteristic out when i make stuff if it's going to cause problems.

Link to comment
Share on other sites

No it is these mentioned lines as they are what make a guest stop and look:

 

How to avoid: The configuration should be changed for the user made object. Ideally, it should be changed by someone at the site where it is available for download. The object's ".ucs" file should have the cEstheticWeight and cGawkOnlyFromFront lines removed.

 

They are okay in an ai or ucb file but not a ucs file.

 

So in zoogrammys zoo she had a tarpit which guests would look at and she deleted the tarpit while the game was on pause and replaced it with spiral sculture and then saved while still on pause. For those that are interested here is part of what Jay posted for zoogrammy.

 

 

Here is how I tested. I started the freeform Kid's Map, since that has all objects unlocked. On the path past the polar bear exhibit, I added a tar pit at the end of a segment of path. Since nothing else was near the tar pit, if guests headed toward it, I could see. That does not mean they are going to look at the tarpit, though. Sometimes guests wander around just for the sake of wandering around. Since I had to wait a while, I set the zoo entrance price to 0 and set marketing to maximum, in order to get more guests into the zoo. When I saw guests going toward the tar pit and it looked like they were going there to look at the tar pit, I paused the game, saved the game so I could test from that starting place over and over, deleted the tar pit, put the spiral sculpture where the tar pit was, saved the game into a different zoo file, reloaded that zoo, and waited. When the guests got to the spot where they would look at the object, the game crashed if the object was one without a ".dll"ID, such as the spiral sculpture. The object had to cover the center location of where the tar pit was. I retested with various objects to see what would happen. There was no crash when the tar pit was replaced with an object that has a ".dll" ID or if the object did not cover the center location of where the tar pit was, but would crash otherwise.

 

 

Link to comment
Share on other sites

I tried to follow that link but I get an error. "This is not a valid host name"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...