SV4 FILE FORMAT

Back to RCT home

The SV4 file stores the save game information. There is incomplete information about this file format. This page will be updated as information becomes available. The game saves SV4 files with RLE encoding. The decoded files have 2,065,676 bytes (0 .. 1F850B in hexadecimal).

000000..000001 - game time month (divide by 8 for years)

000002..000003 - game time day, counts in steps of 4. when this 16 bit value cycles, a month will have passed.

000004..000007 - game time counter, counts in steps of 1. does not begin at zero when scenario starts

000008..00000B,
00000C..00000F - contain psuedo random numbers which are related to each other.

000010..06000F - contains the game map. See the discussion below. The spatial dimensions used in the game are: one tile has 10 square meters of area; the height marks in the game are 4/3 meters (internal units are 1/3 meters).

060010..060013: an incrementing counter, two upper bits not used - not used as a trigger as far as I can tell

060014.. 198813 - sprite data structures. Each structure has 256 bytes. There are 5,000 sprite structures. Items stored in these structures include peeps (guest and staff) and ride vehicles. Ducks are also stored here. The vomit sprites are also stored here even though they are not moving objects.

198814, 198815: Sprite# of next sprite object to be added.
198816, 198817: Sprite# of first vehicle sprite
198818, 198819: Sprite# of 1st peep sprite
19881A, 19881B: Sprite# of 1st duck/moving text sprite
19881C, 19881D: Sprite# of 1st trash, vomit sprite
19881E, 10881F: Sprite# of 1st oversized ride car?
198820, 198821: Sprite structures available (counts down from 5000)
198822, 198823: Count of vehicles in game
198824, 198825: Count of peeps in game
198826, 198827: Count of ducks/moving text
198828, 198829: Count of trash/vomit
19882A, 19882B: Count of oversized?

19882C..19882F: Offset of park name in name string array - only use the lower 10 bits (the MSB is set if there is a string entry).
198830..198833: ?

198834..198837 - Cash amount (divide by 10 for dollars etc.)
198838, 19883B - Loan amount (divide by 10 for dollars etc.)

19883C..19883F - bit 0: Park status: 0 = closed, 1 = open; bit 2 set to prohibit land modification; bit 3 set to prohibit removing trees/scenery; bit 4 is set to "show real names"; bit 5 set to prohibit building above tree level; bit 6 set to indicate "low intensity peeps"; bit 7 set to prohibit advertising; bit 8 set for cheat detection?; bit 9 set for "high intensity peeps"(high intensity overrides low intensity); bit 11 = set if no use of money; bit 13 set if admission locked at free; bit 15 is set to prohibit changing "real names" option.

198840..198841: Park entry fee
198842,198843: Park Entry Point #1: X (32 per tile)
198844,198845: Park Entry Point #1: Y (32 per tile)
198846,198847: Park Entry Point #1: Z (16 per tile height)
198848 : park Entry #1: Direction

198849: ?

19884A,19884B: Peep Entry Point #1: X (32 per tile)
19884C,19884D: Peep Entry Point #1: Y (32 per tile)
19884E: Peep Entry Point #1: tile height
19884F: Peep Entry Point #1: Direction (0=East, 1=South, 2=West, 3=North)

198850,198851: Peep Entry Point #2: X (32 per tile) (FFFF if unused ?)
198852,198853: Peep Entry Point #2: Y (32 per tile)
198854: Peep Entry Point #2: tile height
198855 Peep Entry Point #2: Direction (0=East, 1=South, 2=West, 3=North)

198856: ?

198857 - Research rate: 0 = none, 1 = minimum, 2 = normal, 3 = maximum

198858.. 19885B: ?
19885C-198866: Rides Menu
198867..19887B: (reserve area for ride menu)
19887C..198887: Vehicle Menu (similar to above ride menu - one bit for each vehicle)
198888..19889B: (reserve area for vehicle menu)
19889C..1989FF: Ride feature 1 table = 89 (decimal) structures of 4 bytes for each ride.
198A00..198A9B: (reserve area for ride feature table 1)
198A9C..198BFF: ride feature table 2 (4 bytes for each ride)
198C00..198B9B: (reserve area for ride feature table 2)
198C9C,198C9D: Number of guests in park
198C9E,198C9F: ?

The following table presents the starting byte of the 4-byte value for the item indicated.Divide numbers by 10 for display values (dollars, etc.)

This month 1 month ago 2 months ago 3 months ago 4 months ago 5 months ago 6 months ago 7 months ago
Ride construction 198CA0 198CD8 198D10 198D48 198D80 198DB8 198DF0 198E28
Ride operation 198CA4 198CDC 198D14 198D4C 198D84 198DBC 198DF4 198E2C
Land purchase 198CA8 198CE0 198D18 198D50 198D88 198DC0 198DF8 198E30
Landscaping 198CAC 198CE4 198D1C 198D54 198D8C 198DC4 198DFC 198E34
Park tickets 198CB0 198CE8 198D20 198D58 198D90 198DC8 198E00 198E38
Ride tickets 198CB4 198CEC 198D24 198D5C 198D94 198DCC 198E04 198E3C
Shop sales 198CB8 198CF0 198D28 198D60 198D98 198DD0 198E08 198E40
Shop stock 198CBC 198CF4 198D2C 198D64 198D9C 198DD4 198E0C 198E44
Food sales 198CC0 198CF8 198D30 198D68 198DA0 198DD8 198E10 198E48
Food stock 198CC4 198CFC 198D34 198D6C 198DA4 198DDC 198E14 198E4C
Staff wages 198CC8 198D00 198D38 198D70 198DA8 198DE0 198E18 198E50
Marketing 198CCC 198D04 198D3C 198D74 198DAC 198DE4 198E1C 198E54
Research 198CD0 198D08 198D40 198D78 198DB0 198DE8 198E20 198E58
Loan interest 198CD4 198D0C 198D44 198D7C 198DB4 198DEC 198E24 198E5C

8 months ago 9 months ago 10 months ago 11 months ago 12 months ago 13 months ago 14 months ago 15 months ago
Ride construction 198E60 198E98 198ED0 198F08 198F40 198F78 198FB0 198FE8
Ride operation 198E64 198E9C 198ED4 198F0C 198F44 198F7C 198FB4 198FEC
Land purchase 198E68 198EA0 198ED8 198F10 198F48 198F80 198FB8 198FF0
Landscaping 198E6C 198EA4 198EDC 198F14 198F4C 198F84 198FBC 198FF4
Park tickets 198E70 198EA8 198EE0 198F18 198F50 198F88 198FC0 198FF8
Ride tickets 198E74 198EAC 198EE4 198F1C 198F54 198F8C 198FC4 198FFC
Shop sales 198E78 198EB0 198EE8 198F20 198F58 198F90 198FC8 199000
Shop stock 198E7C 198EB4 198EEC 198F24 198F5C 198F94 198FCC 199004
Food sales 198E80 198EB8 198EF0 198F28 198F60 198F98 198FD0 1990008
Food stock 198E84 198EBC 198EF4 198F2C 198F64 198F9C 198FD4 19900C
Staff wages 198E88 198EC0 198EF8 198F30 198F68 198FA0 198FD8 199010
Marketing 198E8C 198EC4 198EFC 198F34 198F6C 198FA4 198FDC 199014
Research 198E90 198EC8 198F00 198F38 198F70 198FA8 198FE0 199018
Loan interest 198E94 198ECC 198F04 198F3C 198F74 198FAC 198FE4 19901C

199020..199023: ?number of guests in park
199024: ?
199025: color for handymen
199026: color for mechanics
199027: color for security guards

199028..1990A7: Scenery Menu

1990A8: banner menu items: bit 0=standard, 1=jungle, 2=roman, 3=egyptian, 4=mining, 5=jurrasic, 6=asian,7=snow
1990A9: banner menu items: bit 0=space, 1..7=unused
1990AA..199107: ?

199108,199109: current park rating

19910A..199149: historical park rating (for curve) the low byte is in 19910A through 199129 while the high byte is in 19912A through 199149.  an FF indicates 'not used'

19914A: Research selection: bit 0=Rollercoasters, bit 1 = Thrill rides, bit 2 = Gentle rides, bit 3 = Shops/stalls, bit 4 = Theming, bit 5 = Ride improvements

19914B: research progress description: 0=initial research, 1=designing, 2=completing
19914C: last development - research item
19914D: last development - corresponding ride
19914E: last development - research category
19914F: last development - flag

199150..199537 : Research items. up to 200 entries of 5 bytes each. Not  used in LL (goto 199C9C for LL)
199538: next development - research item
199539: next development - corresponding ride
19953A: next development - research category
19953B: next development - flag
19953C..19953D: ?
19953E..199541: ?
199542,199543: Cheat detection: count of owned land
199544..199545: ?
199546..199547: ?
199548..19954B: Max loan amount (divide by 10 to get dollars, etc)
19954C..19954D: "cash in pocket" base value for newly generated guests. Varies from -$10, base, +$10, +$20. A zero value defaults to $50.
19954E: avg hunger of newly generated guests.
19954F: avg thirst of newly generated guests.
199550 : scenario goal: 1 = #peeps (& park rating), 2 = park value, 3 = have fun!, 4 = competition,  5 = ten different coasters with excitement at least 6.00, 6 = maintain park rating & #peeps, 7 = monthly ride income, 8 = ten different coasters with excitement at least 7.00 and minimum length as specified, 9 = complete five coasters with minimum excitement as specified
199551: number of years to reach goal (10 for competitions)
199552,199553: ?
199554..199557: money (park value/ride income) goal / coaster excitement goal (only for goal type 9)
199558, 199559: #peeps goal / minimum coaster length (meters)

19955A ..19956D: Advertising, 1 byte for each type, lower 4 bits indicate weeks remaining.

19956E..199573: 1 Byte for each type of advertising, indicates the ride/food associated with the advertising that displays it.

199574..199583: ?
199584..199783: 128 DWords (previous cash values)
199784..199787: Recent change in cash
199788..19978B: previous recent change in cash multiplied by 7(?)
19978C..19978F: sum of "recent changes in cash"
199790..199791: ?
199792..199793: ?
199794..199993: 128 DWords: Weekly Profit over time
199994..199997: Park value
199998..199B97: 128 DWords: Park Value over time
199B98..199B9B: scenario objective value at completion Note: MSB set to indicated objective not met; if bit 0 set - failed objective
199B9C..199B9F: number of admissions
199BA0..199BA3: income from admissions
199BA4..199BA7: Company Value [cash + park value - loan]
199BA8..199BB7: ?
199BB8..199BC7: park awards - four structures of 4 bytes each. Each structure consists of two words. The first word is a flag to indicate if there is an award(zero=no, nonzero = yes); the second word indicates the award/string as follows: 0=most untidy, 1=tidiest, 2=best rollercoasters, 3=best value, 4=most beautiful, 5=Worst value, 6=safest, 7=best staff, 8=best food, 9=worst food, A=best bathrooms, B=most disappointing, C=best water rides
199BC8..199BC9: Price for purchasing land (div by 10 for dollars)
199BCA..199BCB: Price for buying Construction Rights (div by 10 for dollars)
199BCC..199BCD: ?

199BCE..199BCF: ?

199BD0..199BD3: contains 58 BB C3 00 if error detected????
199BD4..199C13: user name (null terminated string)
199C14..199C17: Version number of game - convert to decimal: first digit is major version number; next two digits are minor version number; last three digits are revision number.

199C18..199C1B: company value at scenario completion

199C1C..199C1F: 1st financial checksum [ 70093A minus cash, ror 5, minus loan, ror 7, add maxloan, ror 3 ]

199C20..199C21: number of ride structures used

199C22..199C23: negative of number of rides available (for cheat detection)

199C24..199C25: max number of tiles(land) allowed to own (for cheat detection)

199C26..199C27: negative of max number of tiles allowed to own

199C28..199C2B: 3rd financial checksum: [cash - loan - all values in monthly expense/income table.]
199C2C..199C2F: Scenario Slot Number Checksum
199C30..199C4F: Name of winner; if not won or unknown, the character '?' is used
199C50..199C53: 2nd financial checksum [ cash ror thirteen, xor 0F4EC9621 ]

199C54..199C7B: (copyright notice in SC4 files)
199C7C,D: 0 in SV4 files, FED3 in SC4 files (for cheat detection)
199C7E,F: 0 in SV4 files, F318 in SC4 files (for cheat detection)
199C80,1: 0 in SV4 files, B218 in SC4 files (for cheat detection)
199C82,3: 0 in SV4 files, 458A in SC4 files (for cheat detection)
199C84..199C85: ?
199C86..199C87: ?
The following four words are not used (contain zero) in original RCT files. They specify the size of the map in expansion pack files.
199C88..199C89: meaning unknown, 32*(park_size - 1)
199C8A..199C8B: meaning unknown, value in 199C88 plus 011E
199C8C..199C8D: park size (visible tiles per edge +2)
199C8E..199C8F: meaning unknown, value in 199C88 minus 1 (except full size park in which case the value is 0FFF)
199C90..199C93: "same price" flags:

  0 1 2 3 4 5 6 7
199C90 balloons cuddly toy map on-ride photo umbrella drinks burgers fries
199C91 ice cream cotton candy       pizza   popcorn
199C92 hot dogs seafood hats candy apple t-shirt doughnut coffee  
199C93 chicken lemonade           bathroom


199C94..199C95: ?
199C96..199C98: ?
199C99: Water color (0=normal, 1=red)
199C9A..199C9B: ?
199C9C..19A01F: Research items in LL only
19A020..19B57B: ?

19B57C..19B89B: banner info. 100 sets of 8 byte structures(byte 0: 0=standard, 1=jungle(wooden), 2=classical, 3=egyptian, 4=mining, 5=prehistoric(bone), 6=asian, 7=snowy, 8=space,FF= unused; byte1: 0=normal, 1=no entry; bytes 2,3: string index; byte 4: color; byte 5: text color; bytes 6,7: ?)

19B89C..1A389B: 1024 Null terminated Name strings for park, rides, peeps, etc. Each string is allocated 32 bytes. Names are entered starting at the last location (1A387C) and new names are entered in preceeding slots as the user creates them.

1A389C..1A389F: a game time counter - used to trigger various events

1A38A0..1C963F: Ride structure. 255 structures of 608 bytes each

1C9640, 1C9641 - a game time counter - not used as a trigger for any events as far as I can tell

1C9642,3: Horizontal view position (0000 to 1FFF, negated depending on Viewing angle)
1C9644,5: Vertical view position (0000 to 1FFF, negated depending on Viewing angle)
1C9646: Viewing Zoom factor (0 = closest, 1 = medium, 2 = far)
1C9647: Viewing angle (0 = from NE, 1 = from NW, 2 = from SW, 3 = from SE) [note: horizontal and vertical view position will be positive or negative depending on the view angle as indicated below:

angle Horiz Vert

0

-

+

1

-

-

2

+

-

3

+

+

1C9648..1CADB7: Animation object locations (includes Park/Ride entry banners, fountains, ride pieces, etc.) one thousand - six byte structures: first byte=height, second byte=object code, 3rd & 4th bytes = X (32 per tile), 5th & 6th bytes = Y(32 per tile). The object code is: 00=ride entrance, 02=scenery(eg fountain), 03=park entry, 04=waterfall, 05=rapids, 06=on ride photo, 07=whirlpool, 08=spinning tunnel, 09=ghost train cars, 0A=banner

1CADB8..1CADBB: number of animation objects (Park/Ride entry, queue & banner, fountains, etc) points
1CADBC..1CADC7: ?
1CADC8..1CADC9: progression of scrolling text (start point of scrolling text)
1CADCA..1CADCD: ?
1CADCE,1CADCF: ?
1CADD0..1CAE43: ?
1CAE44..1F06A3: Data Logging - 8 structures of 19,212 bytes each (graphic charts for G's, etc on rides)
1F06A4..1F06A7: next guest number
1F06A8..1F06A9: another game counter, two upper bits always zero
1F06AA..1F431D: Patrol areas

1F431E: ? - has the value 01
1F431F: ? - has the value 01
1F4320: ? - has the value 01
1F4321: ? - has the value 01
1F4322..1F4329: ?
1F432A: climate (0=wet, 1=normal, 2=dry, 3=cold)
1F432B: ? - usu has the value 05 but a few scenarios have the value 0B

1F432C..1F432D: weather timer - count down from 1920

1F432E : current weather (0=sunny, 1=partly cloudy, 2=cloudy, 3=showers, 4=rain, 5=thunderstorm, 6=snow)
1F432F: target weather
1F4330: current temperature (positive only)
1F4331: target temperature
1F4332: lightning/thunder, 0=none, 1=occasional, 2=frequent
1F4333: target lightning/thunder
1F4334: shade, 0=none, 1=some, 2=dark
1F4335: target shade
1F4336: rain, 0=none, 1=light, 2=heavy
1F4337: target rain

1F4338..1F8313: Message area. 61 messages. Each message structure uses 268 bytes. Current message at 1F4338, then put into last spot (1F8208) and others are moved up.
The first thirteen bytes of each structure are flags.
byte 0: Icon (00=[hide message], 01=ride, 02=peep walking, 03=peep walking, 04=Money (coins), 05=blank, 06=Scenery, 07=CrowdofPeeps, 08=Award, 09=Graph)
byte 02,03: associated item (ie ride index, peep thought, peep index)
byte 06: how many letters have been displayed
byte 08: month (div by 8 for year)
byte 0A: date: day of month
byte 0C: color (90=white, 91=red, 92=green, 93=gold, 94=brown, 95=grey, 96=blue, 97=purple, 98=beige, 99=pink, 9A=aqua, 9B=tan, 9C=green)
byte 0D: null terminated string starts here. (byte value 05 is used to indicate a new line.)

1F8314..1F8351: Scenario name (not park name)

1F8352,3: Scenario slot number

1F8354..1F8357: scenario flags (expansion packs only) bit 12: error while loading

1F8358..1F8507: ?

1F8508..1F850B - these last four bytes of the file contain an additional checksum in CF/AA and LL saved games. This is in addition to the checksum added after the file is RLE encoded. This was not present in the original RCT files. This checksum is calculated by starting with the hex value 00000031 in the summation register. The summation register is rotated left 13 bits and then the byte of [unencoded] data structure is added to the low byte. This is done for the data from 000000 to 1F8507.


GAME MAP

The game has a grid of 126 by 126 tiles. The save file contains 128 by 128 tiles. The tiles around the perimeter of the game "board" are not displayed but are apparently needed to display the rock edges around the "board". The save file contains (among other things) a sequence of map elements. A map element data structure is used for all stationary items which appear on tiles. The sequence is: rows of columns; where each column contains a variable number of map elements (at least one). Each map element has 8 bytes identified below as bytes 0 through 7. The map element data structure begins at address 000010. The first row consists of perimeter tiles so there is only one map element per tile. The second row consequently begins at 000410. The length of the second and subsequent rows depends on how many map elements are at each tile. I have used the arbitrary designation that the map begins at the SouthWest corner and the first row goes from West to East.

byte 0 - map element type identifier -
upper two bits: indicate quadrant for smaller objects and are used as the two highest bits for the color code on geometric objects. NOTE: all geometric edge (wall) objects on a tile will have the same color; a geometric scenery object can have a different color from the geometric edge objects. Also used to indicate direction a queue entry faces. SURFACE tiles - the upper bit is a flag to use extended edge types, see the description under "byte 4". TRACK pieces: the most significant bit is set to indicate lift chain.
00 = entire tile or SW quadrant -or- facing West
01 = NW quadrant -or- facing North
10 = NE quadrant -or- facing East
11 = SE quadrant.-or- facing South

middle four bits: indicate type of element
0000 = surface tile
0001 = path (& road)
0010 = track element  or shop/stall
0011 = scenery item (single tile)
0100 = ride entry/exit, Park entrance
0101 = fence(s)/wall(s)
0110 = scenery item (multiple tile)
0111 = banners

lower two bits:

bit values direction scenery/track item faces queue color path qualifier

00

West

blue

grey tarmac/dirt/crazy tile/tile

01

North

red

red tarmac/grey tile/black dirt

10

East

yellow

brown tarmac/red tile

11

South

green

green tarmac/green tile

In Loopy Landscapes, bit 0 of surface tiles is used to extend the surface type - see the description under "byte 5"

byte 1 - The most significant bit is set to indicate the 'last' map element at this tile position. A single -or- a sequence of 8-byte map elements will be present for each tile position. The four bits of the lower nibble are used to indicate which quadrant(s) are used. bit 3 = NW, bit 2 = SW, bit 1 = SE, bit 0 = NE. The middle two bits of the upper nibble are used to indicate the support type for paths: X00X= normal (truss), X01X= wood post, X10X= steel post, X11X= bamboo post. bit 6 is set for "indestructible" track elements (used in certain scenarios).

byte 2 - base height of this element. Surface elements have heights which are multiples of 4. An element (eg. a large tree) which is located at the center of a sloped tile would have a base height which is 2 greater than the base height of the sloped surface element. A small tree on a slope would have a base height either 1 or 3 greater than the surface element depending on which quadrant it is in.

byte 3 - clearance (construction) height for this map element. {A value of zero is used for perimeter tiles.} The vertical space between the values in byte 2 and byte 3 is occupied by this element. No other space filling map element is allowed to occupy this range.

byte:

4

5

6

7

surface slope terrain/water grass ownership
scenery (single tile) item age color
scenery (multiple tile) item index color color
Tracks element index color ride index
path type additions edges/corners addition status
entry/exit item rides = 0; park=index rides=0; park=path ride index
fence/wall slope item item item
banner index into banner structures position FF(FD=one way) 0

byte 4 - for multiple-tile scenery elements: byte 5 contains the sequence number for the part of the scenery object to be rendered at this tile. The number of tiles occupied are in brackets.
00 = Roman colosseum [12]
01 = house [6]
02 = Sphinx [8]
03 = house [8]
04 = Colonnade [4]
05 = Mine Hut #1 [4]
06 = Mine Hut #2 [4]
07 = Volcanoe [12]
08 = Pyramid [36] Note: the pyramid is "hollow" inside
09 = Mine Shaft [6]
0A = Martian Building [4]
0B = Skeleton [2]
0C = Dinosaur #1 [2]
0D = Dinosaur #2 [2]
0E = Dinosaur #3 [2]

the following are in Loopy landscapes:
0F = ice palace [4]
10 = castle tower square brown [1]
11 = castle tower tall brown [1]
12 = castle tower square grey [1]
13 = castle tower tall grey [1]
14 = tent [1]
15 = medieval house 1 [1]
16 = medieval house 2 [1]
17 = medieval house 3 [1]
18 = giant pumpkin [4]
19 = space rocket [4]
1A = town hall [4]
1B = urban house 1 [4]
1C = gas station [4]
1D = pagoda [4]
1E = office block [4]
1F = urban house 2 [4]
20 = satellite [4]
21 = space capsule [1]
22 = tenement [1]

byte 4 - for single-tile scenery elements

byte 4 - tracks: the track element code number. {includes: shops, info kiosk and ride bases}Track pieces which occupy more than one tile use byte 5 to indicate which section of the track element is located at this tile.

byte 4 - park/ride entry/exit: for park entrance, byte 5 indicates which section. Otherwise, the remaining bytes are 00's.
00 = Ride entrance
01 = Ride exit
02 = Park entrance

byte 4 - paths - upper nibble:
00 = queue
01 = tarmac
02 = dirt
03 = crazy tile
04 = roads (not available to user)
05 = tile

byte 4 - paths - lower nibble: bit 3 is set for a queue entry, bits 2, 1, 0 indicate the slope:
0 = flat
4 = up to West
5 = up to North
6 = up to East
7 = up to South

byte 4 - fences/walls: the upper three bits are the three lower bits of the color of geometric objects.

byte 4 - surface tiles - upper 3 bits: the edge style of surface elements. 000 = rock, 001 = brick, 010 = iron, 011 = wood, 100 = grey wall, 101 = yellow wall, 110 = black wall, 111 = red wall. In Loopy Landscapes, the MSB of byte 0 indicates an extended set of edge styles. If that bit is set on a surface element, use the following: 000 = Ice, 001 = purple wall, 010 = green wall, 011 = brown stone wall, 100 = grey stone wall, 101 = skyscraper A, 110 = skyscraper B, 111 = not used.

byte 4 - fences/wall - lower 5 bits: the slope of the surface. Thes same value as below.

byte 4 - banners: index into banner data structure (100 eight byte structures beginning at 19B57C)

byte 4 - surface tiles - lower 5 bits: the slope of surface elements. There are 19 possible tile slopes. (The stored tile height is the lowest point of a surface tile.) The lower four bits correspond to corners of the tile. If the bit is set, that corner is elevated by one unit. The case of all four bits being set is not used. If the fifth bit is set, three of the four lower bits will be set; and the corner opposite of the zero bit is elevated by two units rather than one. The image below shows the slopes as viewed from the SouthWest corner.

byte 5 - surface tiles - upper 3 bits: the terrain type for surface elements. 000 = grass, 001 = sand, 010 = dirt, 011 = rock, 100 = martian, 101 = checkerboard, 110 = dirt/grass clumps, 111 = roofing tiles. In Loopy Landscapes, the LSB of byte 0 is also used as a bit for terrain type. If that bit is set, the bits of byte 5 correspond to: 000 = Snow/Ice, 001= log roof, 010 = iron roof, 011 = grey roofing tile, 100 = red grid, 101 = yellow grid, 110 = purple grid, 111 = green grid

byte 5 - surface tiles - lower 5 bits: absolute height of water, if present.NOT the height of water above ground. The maximum allowed value in the game is 28. This value is to be multiplied by four.

byte 5 - banners - lower 2 bits: position of the banner posts (it faces toward the opposite direction). 0 = West, 1 = North, 2 = East, 3 = South.

byte 5 - paths: additions to path edge. All available edges will contain a copy of the item.
0 = nothing
1 = single lamps
2 = triple lamps
3 = litter bins
4 = benches
5 = jumping fountains
6 = egyptian lamps
7 = martian lamps
8 = vandalized single lamps
9 = vandalized triple lamps
A = vandalized liter bins
B = vandalized benches
C = vandalized egyptian lamps
D = vandalized martian lamps
E = jumping snowballs

byte 5 - fences/walls: four sets of the upper two bits of the edge element code for each side of the tile (I know... this is confusing) The table below maps the bits of this byte to the edge element codes for each side. For example, bit 3 maps to bit 5 of the North element code. The remaining bits of each edge element code are in bytes 6 & 7.

bit 7

bit 6

bit 5

bit 4

bit 3

bit 2

bit 1

bit 0

S5

S4

E5

E4

N5

N4

W5

W4

The descriptions of the edge elements are listed here. Every edge element has a clearance height of 4.

00 = mesh fence
01 = hedge
02 = white railing
03 = wood panel fence
04 = barb wire fence
05 = railing
06 = brick wall
07 = stone wall
08 = conifer hedge
09 = roman column wall
0A = castle tall with window brown
0B = castle tall with gate grey
0C = creepy gate
0D =
0E =
0F = no element at this edge

10 = mesh fence with gate (not available to user)
11 = hedge with gate (not available to user)
12 = white railing with gate (not available to user)
13 = wood panel fence with gate (not available to user)
14 = barb wire fence with gate (not available to user)
15 = iron railing with gate (not available to user)
16 = brick wall with gate (not available to user)
17 = stone wall with gate (not available to user)
18 = conifer hedge with gate (not available to user)
19 = castle wall tall brown
1A = castle wall medium brown
1B = castel wall tall with window grey
1C = barb fence with snow
1D =
1E =
1F = no element at this edge

20 = roman wall
21 = blue playing cards
22 = martian wall
23 = wood post fence
24 = primitive wood fence - tall
25 = leaded glass
26 = white wood panel fence
27 = wooden fence
28 = castle wall short brown
29 = castle wall tall with cross brown
2A = castle wall tall grey
2B = castle wall medium grey
2C = wooden fence with snow
2D =
2E =
2F = no element at this edge

30 = egyptian wall
31 = red playing card wall
32 = plate glass
33 = red-wood post fence
34 = primitive wood fence - short
35 = bone fence
36 = red-wood panel fence
37 = jungle fence
38 = castle wall short grey
39 = castle wall tall with gate brown
3A = castle wall tall with cross grey
3B = creepy wall
3C = post fence with snow
3D =
3E =
3F = no element at this edge

byte 5 - single tile scenery objects : age (flowers wilt at 28, die at 37)

byte 5 - multitile structures - upper 6 bits: contains a count (index) for which part of the structure is located at this tile.

byte 5 - track elements: contains a count (index) for which part of the structure is located at this tile.

byte 5 - banners: which edge banner is on: 0 = West; 1 = North; 2 = East; 3 = South

byte 6 - surface map elements: this value indicates the amount of grass growing on tiles. Tiles which are outside of the park boundary have the static value 01. Tiles within the park boundary have values which increase with time.(Least Significant 3 bits: 0=mowed, 1,2,3=clear, 4,5,6=clumps, 7=reserved)

byte 6 - scenery objects: this byte contains the color

byte 6 - fences/walls - upper nibble: the lower four bits (N3..N0) of the North edge element code.

byte 6 - fences/walls - lower nibble: the lower four bits (W3..W0) of the West edge element code.

byte 6 - paths - upper nibble: the bits are set if the path extends in that corner: bit 3 for SW, bit 2 for SE, bit 1 NE, and bit 0 for NW. Note: on "road" paths, the center stripe is drawn on the appropriate edge when two (and only two) adjacent corner bits are set.

byte 6 - paths - lower nibble: the bits are set if the path extends in that direction: bit 3 for South, bit 2 for East, bit 1 for North, and bit 0 for West. For example, a path which extends to the South and to the East would have 1100 for these four bits.

byte 6 - track elements: color code

byte 6 - multitile structure: color code

byte 6 - park entry: path code(hex) - 4=grey tarmac, 5=red tarmac, 6=brown tarmac, 7=green tarmac, 8=brown dirt, 9=black dirt, 0C=crazy tile, 14=beige tile, 15=grey tile, 16=red tile, 17=green tile

byte 7 - multitile structure: color code

byte 7 - paths: state of addition(upper two bits=south item, next two bits=east item, next two bits=north item, lowest two bits=west item) trashcans = capacity (0=overflowing, 3=empty)

byte 7 - fences/walls - upper nibble: the lower four bits (S3..S0) of the South edge element code.

byte 7 - fences/walls - lower nibble: the lower four bits (E3..E0) of the East edge element code.

byte 7 - track elements: ride index

byte 7 - surface map elements: upper nibble indicates land property rights.
0 = unowned
1, 3 or 5 = construction rights purchased
2 = owned
4 = construction rights available
8 = for sale
A = bought
i.e.
bit 0: set if construction rights purchased
bit 1: set if owned/purchased
bit 2: set if construction rights available
bit 3: set if land can be bought

lower nibble: each bit indicates presence of property boundary fence: bit 0 = North fence, bit 1 = East fence, bit 2 = South fence, bit 3 = West fence


RESEARCH AREA

There are 180 entries of 5 bytes each:

0

1

2

3

4

Research item corresponding Ride Research Category Flag Research Expenditure Area

Flag = FF to specify the following limits (Depending on Byte 0):

Byte_0

FF

End of Available items. Everything from the beginning to this flag is available to the user. Note: Special track/vehicle items may be listed here even if the corresponding ride is not available. This is the case when the special track/vehicle item is to be made available to the user as soon as the corresponding ride becomes available. For example, in some scenarios you may have "spining cars for steel mini roller coaster" available as soon as the steel mini roller coaster becomes available while in other scenarios you would have to research this item.

FE

End of Researchable items. All items which can be researched are located between the FF flag and this flag. As items are researched, they are moved from this section and placed in the above section.

FD

End of items. Pairs of entries between the FE and FD flag are randomly swapped in the above research order table. The swapping takes place when the scenario is first loaded.

Flag = 0 for research item entries.

Research Category
0 = Theming 'Research Item' contains an index for the  Theming item
1 = Rides/Shops 'Research Item' contains an index for the item
2 = Vehicles 'Research Item' contains an index for the vehicle to go on the ride indexed by 'Corresponding Ride'
3 = Specials 'Research Item' contains an index for the special track item to go with the ride indexed by 'Corresponding Ride'

Research Expenditure Area: Each entry has this code to specify the category it is in. The Research menu in the game lets you set check marks to specify these areas for research.

0 Rollercoasters
1 Thrill Rides
2 Gentle Ride/Transport Rides
3 Shops
4 Scenery/Themeing
5 Ride Improvements

Theming Items

1 Mine Theme
2 Classical/Roman Theme
3 Egyptian Theme.
4 Martian Theme
5 Jumping Fountains
6 Toyland Theme
7 Jurassic Theme
8 Graveyard Theme
9 Jungle Theme
A Abstract Theme
B Garden Clock
C Snow & Ice
D Medieval
E Space
F Creepy
10 Urban
11 Pagoda

Special Track Types

06 Banked Curves*
07 Vertical Loop
0C Steep Twist*
11 In-Line Twist
12 Half Loop
13 Corkscrew
15,16 Banked Helix*
17 Helix*
1A On-Ride-Photo*
1B Water Splash
1C Vertical Drop*
1D Barrel Roll*
1E Launched Lift Hill
1F Large Loop and Large Half Loop
21 Reverser Turntable
22 Heartline Roll*
23 Reversing Sections*
XX X