THE COMMAND & CONQUER MAPS Rev. 1f by Vladan Bato (bat22@geocities.com) This document explains the format of the maps and the associated graphics files. It has also a complete listing of all available map values. This document is meant for people who want to make a C&C scenery editor. You can also use it to edit manually the maps but IMHO it's a suicide if you can't see what you are doing. ABOUT .MIX FILES First of all I will explain the structure of MIX files, since all the graphics are in the TEMPERAT, DESERT, and WINTER.MIX files. Each MIX file contains several internal files that can be extracted. I will refer to the internal files as just "files". The MIX file is made up of two parts: the first one is the Header, the second one is the Body that contains all the files. The structure of the header is: (I will use pascal notation here) Header = record NumFiles : word; {Number of internal files} BodyLength : longint; {Length of the body} Index : array [1..NumFiles] of record ID : longint; {ID of file, computed from filename} Start : longint; {Offset of file in the body} Size : longint; {Size of the file} end; end; Of course you can't use directly such a structure in pascal because its length is not fixed. Note that the offsets are relative to the start of the body so to find the actual offset in the MIX you have to add the size of the header which is NumFiles*12+6 Note also that the records in the Index are not in the same order as the files are physically stored in the MIX. In this document I will always refer to the record number in the index and not to the file's actual position in the MIX. ABOUT THE MAP All the maps are 64x64 squares large. There are 2 bytes of information for each square, thus the file is 8192 bytes long. The two bytes indicate which image should be placed there. The first one indicates in which of the internal files of TEMPERAT, DESERT or WINTER.MIX it is. Each of these internal files contains several images; the second byte tells which of those images should be taken. The images inside one of the internal files, if put together, form a larger image. It can be a bridge, a road section, etc. These are called "templates". Thus, each internal file contains a template. Each template is made of several "tiles" (images). Each square of the map contains one tile. It's not necessary to put all the tiles of a template on the map. There are templates of various sizes: from 1x1 to 6x8. (I will always write the dimensions as WidthxHeight) The tile numbers range from 0 to WxH-1. However there are some tiles, which I call "empty tiles", that don't have any images associated with them. If you try using them C&C will display the default terrain for that Theater instead. There are empty tiles especially in the corners of large templates. An example may be useful: The SW-NE bridge in the temperate theater has two empty tiles: XXOr X - Empty tile O - other tiles wbbO b - Bridge Obbw w - Water (This is probably wrong, I can't check now) rOOO r - road We can see that in the upper left corner there are two empty tiles. We can put the values 00 and 01 in our map (as the second byte; the first would be A5h for the bridge), in that case we'll see some grass there. But we can replace those two tiles with anything else without disturbing the rest. What I mean, is that if we changed any other tile, a piece of river would be missing or a rock could be cut, ruining the map; but if we replace the empty tiles everything is OK. So, when we have an empty tile, we can leave it there, or replace it with anything else. There are two exceptions to this rule however: 1) Sometimes the empty tiles should be water, but if we don't replace them C&C will show land in the middle of our lake or sea; 2) There are templates containing roads that finish in one of the corners, so that the next template must have an empty tile in the opposite corner to stick to the other. An example might help: Imagine that we have two road sections like these: OOrr OOrr Orrr Orrr rrrO rrrO rrOO rrOO and we want to stick them diagonally: OOrr Orrr rrrO rrOO OOrr Orrr rrrO rrOO Something is obviously missing. We need to add some tiles to fill it like this: OOrr Orrr rrrO RrrOO OOrrR Orrr rrrO rrOO The solution could be to have two templates like these: OOOO ROOO OOOO OOOO OOOO OOOO OOOR OOOO or to have one little template with empty tiles: RX XR (Where X are empty tiles) Now we can put this between the two road sections, replacing the empty tiles with the corner tiles of the road sections. There are many road sections like this and I've indicated them with "(Conn.)" in the table at the end of this document. ABOUT THE DESERT, TEMPERAT, and WINTER.MIX FILES These are the files that hold the graphics for the templates. There's one file inside the MIX for each template, and each file has several tiles inside. There are other files inside the MIXes, probably for the trees and other overlay elements but I don't know the format. If somebody knows their format, please let me know. In each MIX there's also a palette, the entries are: DESERT.MIX entry n. 26 TEMPERAT.MIX entry n. 62 WINTER.MIX entry n. 62 I will now explain the format of the files with map graphics. First of all there's a header with the following structure: Header = record Width : word; {Width of images, always 24 (18h)} Heigth : word; {Heigth of images, always 24} NumTil : word; {Number of Tiles (may differ from num. of Images} Zero1 : word; {Seems to be always 0000h} Size : longint; {size of file} ImgStart : longint; {Offset of first image} Zero2 : longint; {Seems to be always 00000000h} ID1 : word; {Always FFFFh} ID2 : word; {Always 1A0Dh (or 0D1Ah I can't remeber} Index2 : longint; {Offset of Index2} Index1 : longint; {Offset of Index1} {I will explain these later} end; The images follow the header but I suppose they could be anywhere. They are all 24x24 pixel, uncompressed and are one after the other. Note that the number of images may differ from the number of tiles if there are some empty tiles. If there are empty tiles, the actual number of images can be smaller than the number of tiles. To work out the number of images you can use the formula : (Index1-ImgStart)/(24*24). However, you won't have to do this if the index is not corrupt. Index1 has the following format: Index1 : array [0..NumTil-1] of byte; where NumTil is the number of tiles. Each entry in Index1 corresponds to one tile, and indicates which image (of that file) is associated with it. If the entry is FFh than that tile is empty. Index2 is an array of NumImages bytes where NumImages is the real number of images in the file. However it's always filled with zeros (sometimes there's a 1 somewhere but I don't know it's meaning). Note that there's no way to know the dimensions (Width and Height) of the template. If there are 6 tiles it could be 6x1, 1x6, 3x2, 2x3. I worked out the dimensions of all templates myself (It's easy, all you have to do is to try different widths and look at the screen). For example a procedure that has to display template 61h, tile 3 of the Desert theater would do: 1) Look in the table and find in which file it is in (entry 168 of DESERT.MIX) 2) Open that file (seek it inside the MIX) 2) Read the Header 3) Read Index1 and read the 4th byte (for tile 3), let it be N 4) Seek ImgStart+Width*Height*N 5) Read the Image and display it AND FINALLY THE TABLE Here is the table of all available map values (template numbers), the dimensions and the relative entries in the DESERT, WINTER, and TEMPERAT.MIX. There's also a brief description for those that don't want or don't know how to write an editor. However, I think that it will be difficult to stick the templates together without seeing them. An "x" means that the template doesn't exist in that theater. There are many templates that exist only in one theater and will show as black holes in the others (causing the HOM effect). The WINTER and TEMPERATE theaters are however very similar, and differ only in a few templates. The roads and cliffs are mostly the same for the three theaters, but be careful about the river and coast templates because they are not the same. V | DES | TEM | WIN | Dim. | Name | Description -----+-----+-----+-----+-------+----------+----------------------------------- 00h | 007 | 011 | 028 | [4x4] | CLEAR1 | Default terrain 01h | 002 | 007 | 007 | [1x1] | W1 | Water (not animated) 02h | x | 009 | 009 | [2x2] | W2 | Water 03h | x | 087 | 087 | [3x3] | SH1 | Coast WD (1) 04h | x | 106 | 105 | [3x3] | SH2 | Coast WD 05h | x | 126 | 124 | [1x1] | SH3 | Rock in water 06h | x | 143 | 140 | [2x1] | SH4 | Rock in water 07h | x | 159 | 157 | [3x3] | SH5 | Coast WD 08h | x | 018 | 017 | [3x3] | SH11 | Fjord WD 09h | x | 024 | 023 | [3x3] | SH12 | Coast WU 0Ah | x | 031 | 031 | [3x3] | SH13 | Coast WU 0Bh | x | 037 | 037 | [3x3] | SH14 | Coast WU 0Ch | x | 042 | 042 | [3x3] | SH15 | Coast WU 0Dh | 106 | 074 | 074 | [2x2] | S01 | Cliff Left Edge 0Eh | 122 | 093 | 092 | [2x3] | S02 | Cliff Wu-Wd (2) 0Fh | 138 | 112 | 110 | [2x2] | S03 | Cliff W-E 10h | 154 | 131 | 128 | [2x2] | S04 | Cliff W-E 11h | 170 | 147 | 144 | [2x2] | S05 | Cliff W-E 12h | 185 | 163 | 161 | [2x3] | S06 | Cliff Wd-Eu 13h | 200 | 180 | 179 | [2x2] | S07 | Cliff Right Edge 14h | 212 | 195 | 195 | [2x2] | S08 | Cliff Top Edge 15h | 225 | 208 | 209 | [3x2] | S09 | Cliff N-S 16h | 096 | 064 | 064 | [2x2] | S10 | Cliff N-S 17h | 108 | 078 | 078 | [2x2] | S11 | Cliff N-S 18h | 124 | 097 | 096 | [2x2] | S12 | Cliff N-S 19h | 140 | 117 | 115 | [3x2] | S13 | Cliff N-S 1Ah | 157 | 135 | 132 | [2x2] | S14 | Cliff Bottom Edge 1Bh | 172 | 151 | 149 | [2x2] | S15 | Cliff Left Edge 1Ch | 187 | 167 | 166 | [2x3] | S16 | Cliff Wu-Ed 1Dh | 202 | 184 | 184 | [2x2] | S17 | Cliff W-E 1Eh | 215 | 199 | 200 | [2x2] | S18 | Cliff W-E 1Fh | 228 | 211 | 213 | [2x2] | S19 | Cliff W-E 20h | 098 | 068 | 069 | [2x3] | S20 | Cliff Wu-Ed 21h | 110 | 082 | 082 | [1x2] | S21 | Cliff Right Edge 22h | 126 | 101 | 100 | [2x1] | S22 | Cliff Corner S-E Internal 23h | 142 | 121 | 119 | [3x2] | S23 | Cliff Sl-Nr 24h | 159 | 139 | 136 | [2x2] | S24 | Cliff N-S 25h | 174 | 155 | 153 | [2x2] | S25 | Cliff N-S 26h | 189 | 171 | 170 | [2x2] | S26 | Cliff N-S 27h | 204 | 188 | 188 | [3x2] | S27 | Cliff Nl-Sr 28h | 218 | 202 | 203 | [2x2] | S28 | Cliff Bottom Edge 29h | 230 | 213 | 215 | [2x2] | S29 | Cliff Corner N-E External 2Ah | 101 | 070 | 071 | [2x2] | S30 | Cliff Corner S-E Ext 2Bh | 113 | 084 | 084 | [2x2] | S31 | Cliff Corner W-S Ext 2Ch | 129 | 103 | 102 | [2x2] | S32 | Cliff Corner N-W Ext 2Dh | 145 | 123 | 121 | [2x2] | S33 | Cliff Corner N-E Internal 2Eh | 162 | 141 | 138 | [2x2] | S34 | Cliff Corner S-E Int 2Fh | 177 | 157 | 155 | [2x2] | S35 | Cliff Corner W-S Int 30h | 192 | 173 | 172 | [2x2] | S36 | Cliff Corner W-N Int 31h | 207 | 190 | 190 | [2x2] | S37 | Cliff Junction NW-SE 32h | 221 | 204 | 205 | [2x2] | S38 | Cliff Junction SW-NE 33h | x | 027 | 026 | [3x3] | SH32 | Coast Corner N-W Int 34h | x | 033 | 033 | [3x3] | SH33 | Coast Corner N-E Int 35h | 017 | x | x | [4x1] | SH20 | Coast WD 36h | 024 | x | x | [3x1] | SH21 | Coast WD 37h | 041 | x | x | [6x2] | SH22 | Coast WD 38h | 049 | x | x | [2x2] | SH23 | Coast WD 39h | 118 | x | x | [1x1] | BR1 | Bush 3Ah | 134 | x | x | [1x1] | BR2 | Bush 3Bh | 150 | x | x | [1x1] | BR3 | Cactus 3Ch | 166 | x | x | [1x1] | BR4 | Cactus 3Dh | 181 | x | x | [1x1] | BR5 | ??? Purple square (bug ?) 3Eh | 196 | x | x | [2x2] | BR6 | Bushes 3Fh | 210 | x | x | [2x2] | BR7 | Bushes 40h | 223 | x | x | [3x2] | BR8 | Bushes 41h | 234 | x | x | [3x2] | BR9 | Bushes 42h | 016 | x | x | [2x1] | BR10 | ??? Purple squares (bug ?) 43h | 105 | 073 | x | [1x1] | P01 | Bones / Wall (3) 44h | 121 | 092 | x | [1x1] | P02 | Bones / Wall (3) 45h | 137 | 111 | x | [1x1] | P03 | Mud / UFO (3) (6) 46h | 153 | 130 | x | [1x1] | P04 | Rock / UFO (3) (6) 47h | 169 | x | x | [2x2] | P05 | Gray Sand 48h | 184 | x | x | [6x4] | P06 | Gray Sand 49h | 199 | 179 | 178 | [4x2] | P07 | Mud 4Ah | x | 194 | 194 | [3x2] | P08 | Mud 4Bh | x | 045 | 045 | [3x2] | SH16 | Fjord WU 4Ch | 072 | 047 | 047 | [2x2] | SH17 | Water (anim.) 4Dh | 078 | 049 | 049 | [2x2] | SH18 | Water (anim.) 4Eh | 084 | x | x | [3x2] | SH19 | Coast WD 4Fh | x | 116 | 114 | [3x2] | P13 | Destroyed House 50h | x | 134 | 131 | [2x1] | P14 | Walls 51h | x | x | 148 | [4x2] | P15 | Snow 52h | 001 | 006 | 006 | [1x1] | B1 | Rock 53h | 003 | 008 | 008 | [2x1] | B2 | Rock 54h | x | 010 | 010 | [3x1] | B3 | Rock 55h | 004 | x | x | [1x1] | B4 | ?? Rock (7) 56h | 005 | x | x | [1x1] | B5 | ?? Rock (7) 57h | 006 | x | x | [1x1] | B6 | ?? Rock (7) 58h | x | 175 | 174 | [3x3] | SH6 | Coast WD 59h | x | 191 | 191 | [2x2] | SH7 | Coast Corner W-N External 5Ah | x | 205 | 206 | [3x3] | SH8 | Coast Corner S-E Ext 5Bh | x | 215 | 217 | [3x3] | SH9 | Coast Corner W-S Ext 5Ch | x | 012 | 011 | [2x2] | SH10 | Coast Corner N-E Ext 5Dh | 104 | 072 | 073 | [2x2] | D01 | Road Bottom End 5Eh | 120 | 091 | 091 | [2x2] | D02 | Road Left End 5Fh | 136 | 110 | 109 | [1x2] | D03 | Road Top End 60h | 152 | 129 | 127 | [2x2] | D04 | Road Right End 61h | 168 | 146 | 143 | [3x4] | D05 | Road S-N 62h | 183 | 162 | 160 | [2x3] | D06 | Road S-N 63h | 198 | 178 | 177 | [3x2] | D07 | Road S-N 64h | 211 | 193 | 193 | [3x2] | D08 | Road S-N 65h | 224 | 207 | 208 | [4x3] | D09 | Road W-E 66h | 095 | 063 | 063 | [4x2] | D10 | Road W-E 67h | 107 | 077 | 077 | [2x3] | D11 | Road W-E 68h | 123 | 096 | 095 | [2x2] | D12 | Road W-E 69h | 139 | 115 | 113 | [4x3] | D13 | Road Wu-Ed 6Ah | 156 | 133 | 130 | [3x3] | D14 | Road T N--W+E (4) 6Bh | 171 | 150 | 147 | [3x3] | D15 | Road Y S--N+E (4) 6Ch | 186 | 166 | 164 | [3x3] | D16 | Road Y S--N+E 6Dh | 201 | 183 | 182 | [3x2] | D17 | Road T S--W+E 6Eh | 214 | 198 | 198 | [3x3] | D18 | Road T W--N+S 6Fh | 227 | 210 | 211 | [3x3] | D19 | Road + W-N-E-S 70h | 097 | 067 | 067 | [3x3] | D20 | Road Corner N-E 71h | 109 | 081 | 081 | [3x2] | D21 | Road Corner S-E 72h | 125 | 100 | 099 | [3x3] | D22 | Road Corner W-S 73h | 141 | 120 | 118 | [3x3] | D23 | Road Corner W-N 74h | 158 | 138 | 135 | [3x3] | D24 | Road Diagonal NW-SE (5) 75h | 173 | 154 | 152 | [3x3] | D25 | Road Diag NW-SE 76h | 188 | 170 | 169 | [2x2] | D26 | Road Diag NW-SE (Conn.) (5) 77h | 203 | 187 | 187 | [2x2] | D27 | Road Diag NW-SE (Conn.) 78h | 217 | 201 | 202 | [2x2] | D28 | Road Corner W-SE (Conn.) 79h | 229 | 212 | 214 | [2x2] | D29 | Road Corner N-SE (Conn.) 7Ah | 100 | 069 | 070 | [2x2] | D30 | Road Y SE--N+W (Conn.) 7Bh | 112 | 083 | 083 | [2x2] | D31 | Road Corner E-NW (Conn.) 7Ch | 128 | 102 | 101 | [2x2] | D32 | Road Corner S-NW (Conn.) 7Dh | 144 | 122 | 120 | [2x2] | D33 | Road Y NW--S+E (Conn.) 7Eh | 161 | 140 | 137 | [3x3] | D34 | Road Diag SW-NE 7Fh | 176 | 156 | 154 | [3x3] | D35 | Road Diag SW-NE 80h | 191 | 172 | 171 | [2x2] | D36 | Road Diag SW-NE (Conn.) 81h | 206 | 189 | 189 | [2x2] | D37 | Road Diag SW-NE (Conn.) 82h | 220 | 203 | 204 | [2x2] | D38 | Road Corner E-SW (Conn.) 83h | 232 | 214 | 216 | [2x2] | D39 | Road Corner N-SW (Conn.) 84h | 103 | 071 | 072 | [2x2] | D40 | Road Y SW--N+E (Conn.) 85h | 115 | 085 | 085 | [2x2] | D41 | Road Corner W-NE (Conn.) 86h | 131 | 104 | 103 | [2x2] | D42 | Road Corner S-NE (Conn.) 87h | 147 | 124 | 122 | [2x2] | D43 | Road Y NE--W+S (Conn.) 88h | x | 017 | 016 | [5x4] | RV01 | River W-E 89h | x | 023 | 022 | [5x3] | RV02 | River W-E 8Ah | x | 030 | 030 | [4x4] | RV03 | River Wu-Ed 8Bh | x | 036 | 036 | [4x4] | RV04 | River Wd-Eu 8Ch | x | 041 | 041 | [3x3] | RV05 | River N-S 8Dh | x | 044 | 044 | [3x2] | RV06 | River N-S 8Eh | x | 046 | 046 | [3x2] | RV07 | River N-S 8Fh | x | 048 | 048 | [2x2] | RV08 | River Corner S-E 90h | x | 052 | 052 | [2x2] | RV09 | River Corner W-S 91h | x | 014 | 013 | [2x2] | RV10 | River Corner N-E 92h | x | 020 | 019 | [2x2] | RV11 | River Corner W-N 93h | x | 026 | 025 | [3x4] | RV12 | River Y N--W+S 94h | x | 032 | 032 | [4x4] | RV13 | River Y Eu--W+S 95h | 055 | x | x | [4x3] | RV14 | River W-E 96h | 060 | x | x | [4x3] | RV15 | River W-E 97h | 067 | x | x | [6x4] | RV16 | River Wd-Eu 98h | 073 | x | x | [6x5] | RV17 | River Wu-Ed 99h | 079 | x | x | [4x4] | RV18 | River N-S 9Ah | 085 | x | x | [4x4] | RV19 | River N-S 9Bh | 018 | x | x | [6x8] | RV20 | River Nr-Sl 9Ch | 025 | x | x | [5x8] | RV21 | River Nl-Sr 9Dh | 042 | x | x | [3x3] | RV22 | River Corner E-S 9Eh | 050 | x | x | [3x3] | RV23 | River Corner W-S 9Fh | 057 | x | x | [3x3] | RV24 | River Corner N-E A0h | 062 | x | x | [3x3] | RV25 | River Corner N-W A1h | 009 | 002 | 004 | [3x3] | FORD1 | River Crossing (Road W-E) A2h | 010 | 003 | 005 | [3x3] | FORD2 | River Crossing (Road N-S) A3h | 047 | 057 | 057 | [3x3] | FALLS1 | Falls W-E A4h | 048 | 058 | 058 | [3x2] | FALLS2 | Falls N-S A5h | x | 218 | 220 | [4x4] | BRIDGE1 | Bridge SW-NE A6h | x | 059 | 059 | [4x4] | BRIDGE1D | Fallen Bridge SW-NE A7h | x | 219 | 221 | [5x5] | BRIDGE2 | Bridge NW-SE A8h | x | 060 | 060 | [5x5] | BRIDGE2D | Fallen Bridge NW-SE A9h | 236 | x | x | [6x5] | BRIDGE3 | Bridge SW-NE AAh | 092 | x | x | [6x5] | BRIDGE3D | Fallen Bridge SW-NE ABh | 237 | x | x | [6x4] | BRIDGE4 | Bridge NW-SE ACh | 093 | x | x | [6x4] | BRIDGE4D | Fallen Bridge NW-SE ADh | 056 | x | x | [3x3] | SH24 | Fjord WD AEh | 061 | x | x | [3x2] | SH25 | Coast WU AFh | 068 | x | x | [3x2] | SH26 | Coast WU B0h | 074 | x | x | [4x1] | SH27 | Coast WU B1h | 080 | x | x | [3x1] | SH28 | Coast WU B2h | 086 | x | x | [6x2] | SH29 | Coast WU B3h | 019 | x | x | [2x2] | SH30 | Coast WU B4h | 027 | x | x | [3x3] | SH31 | Fjord WU B5h | x | x | 165 | [2x2] | P16 | Snow B6h | x | x | 183 | [4x2] | P17 | Snow B7h | x | x | 199 | [4x3] | P18 | Snow B8h | x | x | 212 | [4x3] | P19 | Snow B9h | x | x | 068 | [4x3] | P20 | Snow BAh | x | 038 | 038 | [3x3] | SH34 | Coast WR BBh | x | 043 | 043 | [3x3] | SH35 | Coast WL BCh | 069 | x | x | [1x1] | SH36 | Coast Corner S-E Int BDh | 075 | x | x | [1x1] | SH37 | Coast Corner W-S Int BEh | 081 | x | x | [1x1] | SH38 | Coast Corner N-E Int BFh | 087 | x | x | [1x1] | SH39 | Coast Corner N-W Int C0h | 020 | x | x | [3x3] | SH40 | Coast Corner S-E Int C1h | 028 | x | x | [3x3] | SH41 | Coast Corner N-W Int C2h | 043 | x | x | [1x2] | SH42 | Coast WL C3h | 051 | x | x | [1x3] | SH43 | Coast WL C4h | 058 | x | x | [1x3] | SH44 | Coast WR C5h | 063 | x | x | [1x2] | SH45 | Coast WR C6h | 070 | x | x | [3x3] | SH46 | Coast Corner S-E Int C7h | 076 | x | x | [3x3] | SH47 | Coast Corner S-E Int C8h | 082 | x | x | [3x3] | SH48 | Coast Corner N-E Int C9h | 088 | x | x | [3x3] | SH49 | Coast Corner N-W Int CAh | 021 | x | x | [4x3] | SH50 | Coast Corner S-E Ext CBh | 029 | x | x | [4x3] | SH51 | Coast Corner W-S Ext CCh | 044 | x | x | [4x3] | SH52 | Coast Corner N-E Ext CDh | 052 | x | x | [4x3] | SH53 | Coast Corner N-W Ext CEh | 059 | x | x | [3x2] | SH54 | Coast WD CFh | 064 | x | x | [3x2] | SH55 | Coast WD D0h | 071 | x | x | [3x2] | SH56 | Coast WU D1h | 077 | x | x | [3x2] | SH57 | Coast WU D2h | 083 | x | x | [2x3] | SH58 | Coast WR D3h | 089 | x | x | [2x3] | SH59 | Coast WR D4h | 022 | x | x | [2x3] | SH60 | Coast WL D5h | 030 | x | x | [2x3] | SH61 | Coast WL D6h | 045 | x | x | [6x1] | SH62 | Coast WD D7h | 053 | x | x | [4x1] | SH63 | Coast WD !! Warning !! Values from D8h-FEh will cause the game to crash (it just locks up on my computer)!!! The value FFh indicates the default terrain (I think the 4x4 template is used). Notes: (0a) There may be some errors in this table because I typed it in a hurry (you don't know how much time it takes), so if you find any errors please report them to me. (0b) The names are taken from the GAME.DAT file. I matched them with the files in the theater mix files. The complete filenames are the names above plus an extension that depends on the theater (.DES, .TEM, .WIN). (1) For Coasts, WD, WU, WL, and WR mean : Water on the bottom (Down), Top (Up), left and right. (2) For cliffs and roads the two letters indicate from which to which side the Road (or cliff) goes. The lowercase letter means up, down, left, right to indicate in which part of that side it starts. For Example: River Wu-Ed : OOOOO rOOOO OrrOO OOOrr OOOOO (3) These templates exist in both the DESERT and the TEMPERATE theaters but are not the same. I've put a description of both. (4) For Roads: Roads T and Y mean that the road splits in the shape of a T or a Y. E--N+S means it starts from the east edge then splits in two parts, one going to the north and the other to the south edge (5) NW or any other corner means that the road ends in that corner and if it says (Conn.), that means that it has an empty tile in that corner. So you have to use the (Conn.) templates to stick together the other ones. (6) In TEMPERAT.MIX these two files are buggy, they report there are 67h tiles, but if you look at the index you'll see they all point to the second image which (I think) is of uniform color. Only the first tile is ever used. (7) These three templates don't work in C&C (HOM effect), but their graphics exist in the DESERT.MIX file. Do not use them ! That's all. I hope this info will be used by somebody to make a scenery editor. Report any errors to me. Also, if you have any info about other file formats please share it with me.