Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/14/2023 in all areas

  1. 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: 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: 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: (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
    2 points
  2. From Jay: I had ZT open that 233x233 zoo map and it did open. At some point I want to put nearly 66000 trash bins on that zoo map to see if ZT has any problems with it. The actual number I worry about is 65536, such as dll IDs wrapping around at that number. But it will take a long time to put that many trash bins on the zoo map. I did start, but probably did not do much. You can let the person know that I am interested what he found concerning the format of zoo files so that I can enhance the Zoo Object List program I wrote.
    2 points
  3. 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! I love what you've done so far. I hope to test-drive your map later this week!
    1 point
  4. 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.
    1 point
×
×
  • Create New...