Jump to content

I hacked a Zoo Tycoon 1 map to be 233×233


Gymnasiast

Recommended Posts

Like I mentioned in the topic where I introduced myself, I became interested in the .zoo file format that Zoo Tycoon 1 uses. This was right after implementing support for reading several binary formats that RCT uses. And so I set about investigating the format, with the goals of 1) hacking the saves and doing interesting stuff that the game does not normally allow, and 2) import the landscape into OpenRCT2.

 

Today, the focus is on the former. ZT1 does not include a map editor, and while you can enter developer mode to move the zoo walls a bit further towards the edge, you cannot increase the visible space and actually make your map bigger. So you’re basically stuck with a few standard sizes like 75×75 or 150×150.

 

Or are you? The map size is actually saved in the .zoo file, as you can see when looking at via a hex editor:

 

Schermafdrukvan2023-06-1223-07-09.png.1d83247fd7dc096dbeea8d0b183f7919.png

 

Now, just modifying this value will result in a crash. This is expected - the terrain data is saved in a continuous stream of mapSizeX × mapSizeY elements. So a 75×75 map contains 5625 elements, while a 150×150 map contains 22500 elements. For 233×233, we need 54289. Since I started with the Large Grassy Zoo map, which is 150×150, that thus means 54289 - 22500 = 31789 additional elements, inserted at the correct place. Note how quickly this number increases compared to map size - that’s exponential growth for you. This is not just me showing off maths though - it means quickly increasing memory usage. The map size is saved using a 32-bit integer, which has a theoretical maximum of about 2.1 billion (or 4.2 billion in certain circumstances). In practice though, testing with different map sizes has shown that 233×233 is the maximum that ZT1 will load. Anything bigger and it will freeze while attempting to load.

 

But then, having a 233×233 map is still quite an improvement from 150×150, is it not? Here is a screenshot. You can see the original borders of the Large Grassy Zoo map and the zoo wall continuing:

Schermafdrukvan2023-06-1223-18-38.png.a27f0e90380586adbd52cd0a4a592d6b.png

 

Zoo Tycoon 1’s extreme zoom makes it difficult to get an oversight of the size. But here is a neat trick to measure map size: use a dirt path, which costs $10 per tile and just divide by 10:

 

Schermafdrukvan2023-06-1223-05-02.png.a32bb7b12154b72d6c66124b46b1dc64.png

 

(In this example, I built the path outside the zoo walls using dev mode, but even if you build it within your zoo it should be easy to see that this map is indeed 233×233.)

 

Now, I’m sure you’re keen to try it out yourself. Well, for the low, low price of €49,95... nah, just kidding. Here it is.

enlarged5c.zoo

  • Like 1
  • Love 5
  • Thanks 1
Link to comment
Share on other sites

You are absolutely incredible. :worship: So many people are going to go nuts over this, and I can't wait to see what I can learn from your notes!

  • Love 1
Link to comment
Share on other sites

 You are a god among persons. :worship: Thank you! :wootsmiley::yaysmiles::cakesmileyf:

 

I assume this goes in the maps folder?

Link to comment
Share on other sites

That is interesting - and I never thought to use the dirt path (or any path for that matter) to judge the map size - I use the 5x5 terrain tool and alternate between two different terrains (5x5 = 25 squares) along the edges. Makes it easier for me if I loose count.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

25 minutes ago, Ashea said:

I use the 5x5 terrain tool and alternate between two different terrains (5x5 = 25 squares) along the edges. Makes it easier for me if I loose count.

Me, too.

Link to comment
Share on other sites

Cricket
4 hours ago, Gymnasiast said:

But here is a neat trick to measure map size: use a dirt path, which costs $10 per tile and just divide by 10

You should check out my $1 Decorative Picket Utility Fence by Cricket.  I made it specifically for the purpose of measuring map areas.  At first, I used it to determine exhibit sizes.  Then I started using it with the ZA map editor to place the entrance in the middle (give or take a tile or two, depending on the base map used).  Each fence section costs $1 so there's no extra math required!  :tongue:

 

I love what you've done so far.  I hope to test-drive your map later this week! 

  • Like 2
Link to comment
Share on other sites

nana_nytowl

This is awesome!!!  :loveshower:

 

I <3 using large maps for zoos and always do when I can.

 

I use Cricket's fence too. It's awesome. 

 

I will DEFINITELY be trying your map.  :heartshape1:

 

:post-40-1236625287:

Link to comment
Share on other sites

7 hours ago, HeatherL said:

 You are a god among persons. :worship: Thank you! :wootsmiley::yaysmiles::cakesmileyf:

 

I assume this goes in the maps folder?

Thanks!

 

This is just a simple save, so it should go in the Saved Games folder. If I have time, I might make it into a proper map that can be listed in the Freeform games selector.

 

4 hours ago, Cricket said:

You should check out my $1 Decorative Picket Utility Fence by Cricket.  I made it specifically for the purpose of measuring map areas.  At first, I used it to determine exhibit sizes.  Then I started using it with the ZA map editor to place the entrance in the middle (give or take a tile or two, depending on the base map used).  Each fence section costs $1 so there's no extra math required!  :tongue:

 

I love what you've done so far.  I hope to test-drive your map later this week! 

Sounds useful! I haven’t terribly well kept up with the community for the past years, so I’m still catching up on custom content.

  • Like 2
Link to comment
Share on other sites

7 minutes ago, Gymnasiast said:

This is just a simple save, so it should go in the Saved Games folder. If I have time, I might make it into a proper map that can be listed in the Freeform games selector.

If it requires ids you will need to check with Jay as to what is available since we use ids a lot for buildings and items. Jay is the person with a complete list of what has been used over the years and by who and what site.

Or you can look at what he did to make the scenario maps available in the Freeform section. Unfortunately that is at DG which seems to be having problems currently. If it still is tomorrow I will have to contact my host and find out what is happening there.

I did send Jay a copy of this thread.

  • Like 1
Link to comment
Share on other sites

Very nice job!

 

I wonder if it will be stable, or if people will run into other limitations (not just RAM° if they start filling all this room with different objects?

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...