Anatomy of a .SCZ file (How to convert a Mac-CD scenario into a .SCZ for PC use!!) The .SCZ file consists of bunch of data files glommed together. Files Tested: An older version of ZESDE.SCZ (from Martijn, nice and simple with no army set), and Hyboria.SCZ (with an army set) Used ZESDE.SCZ as a template to make AERO2.SCZ from Ivan's Aerolandia 2.0 scenario. Used AERO2.SCZ as a template to make DUEL3.SCZ from my Duel 3.0 scenario. ### ESSENTIAL: Either convert file to type "BINA" or turn off ZIP linefeed stripping! *** Part I: The .SCZ File Header Bytes What it is... ============================================================== 00-03: zeroes (all bytes are zeroes unless otherwise noted!) 04-??: Name of scenario (normal style, e.g. Zesde, Hyboria), followed by zeroes 1A-??: Name of scenario in all caps, followed by zeroes 24: ??? (is 00 in Zesde, 01 in Hyboria) Flag indicating contains army set? 28: Number of cities in hex 2A: Number of ruins in hex 2C: Number of sides in hex 2E-34: 7-letter lowercase code for army set name 38-3E: 7-letter code "Erythea", "Hyboria", etc. (suspect this is city graphics file) 42-48: 7-letter code "Erythea", "knight", etc. (suspect this is shield graphics) 4C-50: 5-letters: "grass" (terrain type, no doubt) 56: Number of chunks of scenario data that follow (hex 10 in Zesde, 1A in Hyboria) 58: Number of chunks of armyset data after scenario data (00 in Zesde, 0C in Hyboria) *** Part II: Data files stuck together, in sequence. The format of each data file ("chunk") is very similar. There is a 20-byte header followed by the data. The format of the header is: Header: 00 00 FILENAME.xyz 00 ?? dd cc bb aa (total 20 bytes) where: .xyz = DOS filename extension, ?? is at least one byte, more if name < 8 chars, and always the same for a given scenario, but variable from one scenario to the next. Currently believe this ?? data is irrelevant, but it's safest to find a template where the length of the scenario name is the same as the length of the name of the new scenario you're making, so you can just recycle the old scenario as a template, and only change what *must* be changed. This seems to work okay. dd cc bb aa = 32-bit data length, in reverse byte order, with bb aa typically zero. => Length of the data chunk is cc dd Each data chunk corresponds to a resource in the Mac scenario file, except for those that correspond to pieces of an army, city, or shield set. Here we consider only the scenario stuff (and thus the ideas apply only to scenarios that use standard army/city/shield sets). The rest is probably not hard to figure out, but it's left as an exercise to the reader to do so... :) To create a new .SCZ, just open up a template old .SCZ and the Mac scenario you wish to convert. Then for each chunk in the template, simply change the filename in the header (keep the length of the name constant), compare the data length of the template data with that of the corresponding resource in the Mac scenario (and tweak the data length value as necessary), and then paste the new data from the Mac scenario into the position occupied by the old data in the template. It's not hard, but there are a lot of chunks to worry about, which leaves room for a lot of dumb mistakes! There is one tricky stage, and that is dealing with the strategic map and scenario image graphics. On the Mac these are PICT resources, but in the .SCZ they are hacked-up .PCX images. But PhotoShop is up to the task, and the details are explained below. A simple scenario-only .SCZ file has the following contents: (using a beta of Zesde as the example) ********************************************************************************** Anatomy of ZESDE.SCZ: ********************************************************************************** Header Data Data Chunk name Start End Length Start End Mac Equivalent ==================================================================================== ZESDE.SCN 00060 00073 2E E1 00074 02F54 SCN resource - this chunk has the same length in all scenarios - ZESDE.MAP 02F55 02F68 DE 70 02F69 10DD8 MAP resource - this chunk has the same length in all scenarios - ZESDE.RD 10DD9 10DEC 44 40 10DED 1522C RD resource - this chunk has the same length in all scenarios - ZESDE.ITM 1522D 15240 03 FA 15241 1563A ITM resource - this chunk has the same length in all scenarios - ZESDE.CTY 1563B 1564E (06 0B) 1564F 15C59 CTY resource - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 21 1D) - ZESDE.SPC 15C5A 15C6D (00 00) n/a SPC resource - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 0D 80) - ZESDE.SGN 15C6E 15C81 (00 6A) 15C82 15CEB SGN resource - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 0F DA) - SCENARIO.PCX 15CEC 15CFF (3D EC) 15D00 19AEB converts to PICT #10000 - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 7C E7) - N.B. Both scenarios' PCX data start with 0A05 0108 0000 0000 0701 E000 (size header?) Figuring out how to tweak this is left as an exercise to the reader. The simple solution is just to clone the SCENARIO.PCX from your template .SCZ USER.DAT 19AEC 19AFF (00 05) 19B00 19B04 DAT rsrc "USER" (#10000) - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 04 B0) - N.B.: Hyboria has AI.DAT *instead*, which becomes the AI resource. The USER.DAT / AI.DAT data is either one or the other, not both. SCENARIO.DAT 19B05 19B18 00 54 19B19 19B6C SCEN resource - this chunk has the same length in all scenarios - *** Now the order of the data chunks becomes variable! (But the style is fixed.) *** *** Zesde anatomy shown below; Hyboria anatomy (after SCENARIO.DAT) shown later. TERRNAME.DAT 19B6D 19B80 00 06 19B81 19B86 DAT rsrc "TERRNAME" (#10001) - Always the same length. The data is the codename of terrain set used. - ARMYNAME.DAT 19B87 19B9A 00 08 19B9B 19BA2 DAT rsrc "ARMYNAME" (#10002) - Always the same length. The data is the codename of army set used. - SCENINFO.DAT 19BA3 19BB6 00 AA 19BB7 19C60 DAT rsrc "SCENINFO" (#10003) - Always the same length. This has scenario info for Warlords' preview screen. - STRAT0.PCX 19C61 19C74 43 A6 19C75 1E01A Mutates into strategic map PICT STRAT1.PCX 1E01B 1E02E 5B 85 1E02F 23BB3 Mutates into strategic map PICT STRAT2.PCX 23BB4 23BC7 52 09 23BC8 28DD0 Mutates into strategic map PICT - these 3 are strategic map info - save each data chunk (minus the header) as a .PCX file for Photoshop. - the 3 PCX files are three pieces of the map, from top to bottom: * STRAT0.PCX is 224 pixels wide, 114 high. Rows 0-99 are 100 rows of image, rows 100-113 are blank ocean * STRAT1.PCX is 224 by 128. Rows 0-13 and 114-127 are blank ocean; the image is in rows 14-113 (100 rows) * STRAT2.PCX is 224 by 126. Rows 0-13 are blank ocean; the image is in rows 14-125 (112 rows) - The combined image is 224 by 312 - The image uses a custom colormap (aargh!) - Technique to construct PCX pieces from a Mac Scenario's PICT: (1) Open the template .SCZ and find the STRAT0, STRAT1, STRAT2 data (2) Use hex editor to Copy-and-Paste the STRAT0, STRAT1, STRAT2 data into separate new .PCX files (the PCX data starts with 0A 05 01 08) (3) Open the .PCX versions of STRAT0, STRAT1, STRAT2 with PhotoShop to use as templates and colormap references. (4) Use Photoshop to *acquire the PICT resource* #2 from the Mac scenario (#1 is the equivalent of SCENARIO.PCX, #2 is the Strategic Map) (5) Cut & Paste the appropriate sections of the PICT image onto the three PCX images. Be careful to get the positioning exactly right! Photoshop automatically does the color table remapping. :) - STRAT0 gets pixel lines 0-99 from the PICT - STRAT1 gets pixel lines 100-199 from the PICT - STRAT2 gets the rest (lines 200-311) (6) Resave the new STRAT0.PCX, STRAT1.PCX, STRAT2.PCX (7) Open up the new .PCX files in the hex editor. (8) Be careful - the new PCX files are *NOT* the same length as the old ones! (9) Adjust the header info for each .PCX data chunk to match the new length. (10) Copy the new PCX data, select all the old data, and paste/replace/insert. Make sure you don't leave any old data behind or overwrite any good data! After the end of the STRAT2.PCX there's a few stray bytes that don't look terribly meaningful (it's a regurgitated chunk of filename). This chunk does seem to be important to avoid file-length errors. Just copy the final chunk from your template. The one thing that seems to matter is having 00 00 at the end. This appears to be the EOF sequence. ************************ Hyboria Anatomy (where it differs from ZESDE.SCZ, after the SCENARIO.DAT: Header Data Chunk name Start End Length Start End Mac Equivalent ==================================================================================== STRAT0.PCX 21715 21728 4E 48 21729 26570 PICT resource??? STRAT1.PCX 26571 26584 50 F8 26585 2B67C PICT resource??? STRAT2.PCX 2B67D 2B690 50 DA 2B691 3076A PICT resource??? CITYNAME.DAT 3076B 3077E 00 08 3077F 30786 DAT rsrc "CITYNAME" (#10000) ARMYNAME.DAT 00 08 DAT rsrc "ARMYNAME" (#10001) (army set name) SHLDNAME.DAT 00 07 DAT rsrc "SHLDNAME" (#10002) (shield set name) SCENINFO.DAT 00 AA DAT rsrc "SCENINFO" (#10003) (scenario info) HERONAM0.DAT DAT rsrc "HERONAM0" (#10004) - Hero names for each side, variable length for each one - HERONAM2.DAT DAT rsrc "HERONAM2" (#10005) HERONAM1.DAT DAT rsrc "HERONAM1" (#10006) HERONAM6.DAT DAT rsrc "HERONAM6" (#10007) HERONAM3.DAT DAT rsrc "HERONAM3" (#10008) HERONAM5.DAT DAT rsrc "HERONAM5" (#10009) HERONAM7.DAT DAT rsrc "HERONAM7" (#10010) HERONAM4.DAT DAT rsrc "HERONAM4" (#10011) TERRNAME.DAT DAT rsrc "TERRNAME" (#10012) - codename of terrain set used - As in Zesde, some gibberish fills out the end of the row and the next HYBORIA.DAT - army set, header starts 31110, length 0706 (+14h for header) HYBORIA0.PCX - army set pictures for each side + neutrals ... - HYBORIA1.PCX HYBORIA2.PCX HYBORIA3.PCX HYBORIA4.PCX HYBORIA5.PCX HYBORIA6.PCX HYBORIA7.PCX HYBORIA8.PCX HYBORIAS.PCX - ??????? - HYBORIA.ARM - Short file with codename of army set - - followed by additional gibberish to fill up the next line of hex. (??) Now for the fun part - here's the anatomy of the AERO2.SCZ I created! **************************************************************************** Aero2 anatomy as built on a Zesde template. :) **************************************************************************** *** Part I: AERO2.SCZ Header Bytes What ============================================================== 00-03: zeroes (all bytes are zeroes unless otherwise noted!) 04-??: Name of scenario (normal style, e.g. Zesde, Hyboria). -> Zesde goes to Aero2 1A-??: Name of scenario in all caps, followed by zeroes -> ZESDE goes to AERO2 24: ??? (is 00 in Zesde, 01 in Hyboria) -> 00 in Aero2 as in Zesde 28: Number of cities in hex -> set to 2A for Aero2 (42 cities) 2A: Number of ruins in hex -> set to 10 for Aero2 (16 ruins) 2C: Number of sides in hex -> set to 04 for Aero2 (4 sides) 2E-34: 7-letter lowercase code for army set name (tournam) 38-3E: 7-letter code "Erythea", "Hyboria", etc. (not sure what the use is) 42-48: 7-letter code "Erythea", "knight", etc. (not sure what the use is) 4C-50: 5-letters: "grass" (terrain type, no doubt) 56: Number of chunks of scenario data that follow (hex 10 in Zesde, keep in Aero2) 58: Number of chunks of armyset data after scenario data (00 in Zesde, keep in Aero2) *** Part II: Data files stuck together, in sequence. Header: 00 00 FILENAME.xyz 00 ?? dd cc bb aa (total 20 bytes) Aero2.SCZ file contents: Header Data Chunk name Start End Length Start End Mac Equivalent ==================================================================================== AERO2.SCN 00060 00073 2E E1 00074 02F54 SCN resource AERO2.MAP 02F55 02F68 DE 70 02F69 10DD8 MAP resource AERO2.RD 10DD9 10DEC 44 40 10DED 1522C RD resource AERO2.ITM 1522D 15240 03 FA 15241 1563A ITM resource AERO2.CTY 1563B 1564E 0B 6D 1564F 161BB CTY resource AERO2.SPC 161BC 161CF 04 C1 161D0 16690 SPC resource AERO2.SGN 16691 166A4 1B 3A 166A5 181DE SGN resource SCENARIO.PCX 181DF 181F2 3D EC 181F3 1BFDE converts to PICT #10000 - Cloned this from Zesde. Can always change it later if we wish! USER.DAT 1BFDF 1BFF2 00 05 1BFF3 1BFF7 DAT rsrc "USER" (#10000) - Identical to what was in Zesde, in fact. (But now in a different byte position.) SCENARIO.DAT 1BFF8 1C00B 00 54 1C00C 1C05F SCEN resource - This chunk had a few lingering numbers set wrong, so I fixed 'em. - - (It claimed the scenario has 65 cities, 40 ruins, 8 players in preview) - TERRNAME.DAT 1C060 1C073 00 06 1C074 1C079 DAT rsrc "TERRNAME" (#10001) - Identical to what was in Zesde, in fact. (But now in a different byte position.) ARMYNAME.DAT 1C07A 1C08D 00 08 1C08E 1C095 DAT rsrc "ARMYNAME" (#10002) - Identical to what was in Zesde, in fact. (But now in a different byte position.) SCENINFO.DAT 1C096 1C0A9 00 AA 1C0AA 1C153 DAT rsrc "SCENINFO" (#10003) STRAT0.PCX 1C154 1C167 44 1E 1C168 20585 top ~1/3 of Strat Map PICT (100 lines) - These last three are *not* the same length as the ones in Zesde! *** STRAT1.PCX 20586 20599 55 73 2059A 25B0C mid ~1/3 of Strat Map PICT (100 lines) STRAT2.PCX 25B0D 25B20 54 0A 25B21 2AF2A bottom ~1/3 of Strat Map PICT (112) I've tested this (briefly) on my Mac. The .SCZ installs fine and I even started up a quick game! Hopefully there's no "Mac pollution" and the PC players can also install from it!!! The overall process took a long time today, but I had to learn everything as I went. With practice I think a Mac scenario could be ported in ~1-2 hours. Not something you want to do every day, but for three tournament scenarios this is a piece of cake! -- Bob Heeter X-Sender: rheeter@mailhost.jet.uk Mime-Version: 1.0 Date: Sat, 16 Aug 1997 12:47:59 +0100 To: dashorst@nicole.sis.nl, bbrook@rna.bio.mq.edu.au, ijb@unb.ca, Bob.Heeter, gsb@compupick.com From: "Robert F. Heeter"Subject: Mac->PC Scenario Conversion, Take 2! Hi guys - It took me a couple of months to find time to do this, but I've just figured out (one of) the bugs in the previous AERO2.SCZ file I sent to y'all. The .SCZ worked fine on my Mac, but it turns out that when I Zipped it, the ZIP software used it's text-file interpreter and stripped out the linefeed characters to make the "text" file PC-compatible. When I unzipped the ZIP file and tried to use the .SCZ, I couldn't do it either. So I tweaked the ZIP software and verified that the Zipped-and-unzipped version works here. So, the big question is: Can you unzip and install the new Aero2.SCZ? If so, life will be very good in tournament land, because we have 2-3 well-playtested scenarios that we will be able to use in the tournament. This is a critical issue since the PC playtesting games on Sorcery and Dwarven mines didn't turn out so well, and the WCWars scenario needs a bit of help to be interesting, too. Here's the previous email I sent, which may be useful: At 8:02 pm +0100 5/25/97, Robert F. Heeter wrote: >Man, it's nice to get a day or two off the 'net! > >I spent most of the day today figuring out the contents of the >(uncompressed) .SCZ file. It turns out that there's a fairly simple >correspondence between the .SCZ file and the contents of a Mac scenario >file. I was able to take a scenario created in Mac-Classic and >ported to the Mac-CD version (both steps done by Ivan Baird), and then >generate a .SCZ file for it. The .SCZ installs properly into a playable >scenario on my Mac. If it also works on a PC (might need a little >hex editing to strip off any file header sort of pollution from the Mac OS), >then we don't need to wait for the Mac Deluxe Scenario Builder to >convert our Mac-Classic tournament scenarios into all-platform scenarios! > >Attached you should find AERO2.SCZ, zipped and uuencoded. Please >have a go at installing this on your PCs, and if it works, we're golden! > >If it doesn't work, have a look at it with your hex editor and let me >know how it deviates from the "anatomy" laid out below. We should >be able to figure out what doesn't belong and fix it. (I'm betting >that if there's a problem, it's just stuff at the beginning and end >having to do with the Mac file system, but you never know.) > >About the scenario: Ivan has a ReadMe (not included) which explains >it. Basically this scenario began life as a random map before being >heavily edited. It still has a random-map feel, but it's been pretty >well balanced (despite appearances) and has held up very well in the >Aerolandia and Aero2 playtesting games. We already know what ruin >contents we like. I think it would be a good tournament >scenario because it does have a random feel, which complements the >other scenarios we have available. > >There are two other Mac scenarios which I'm planning to port over if >this works, but I have to finish editing them first. :) > >Enjoy! :) > >-- Bob > >Anatomy of a .SCZ file (How to convert a Mac-CD scenario into a .SCZ for >PC use!!) > >The .SCZ file consists of bunch of data files glommed together. >Files Tested: An older version of ZESDE.SCZ (from Martijn, nice and simple > with no army set), and Hyboria.SCZ (with an army set) >Used ZESDE.SCZ as a template to make AERO2.SCZ from Ivan's Aerolandia 2.0 >scenario. > >*** Part I: The .SCZ File Header > >Bytes What it is... >============================================================== >00-03: zeroes (all bytes are zeroes unless otherwise noted!) >04-??: Name of scenario (normal style, e.g. Zesde, Hyboria), followed by >zeroes >1A-??: Name of scenario in all caps, followed by zeroes >24: ??? (is 00 in Zesde, 01 in Hyboria) Flag indicating contains army >set? >28: Number of cities in hex >2A: Number of ruins in hex >2C: Number of sides in hex >2E-34: 7-letter lowercase code for army set name >38-3E: 7-letter code "Erythea", "Hyboria", etc. (suspect this is city >graphics file) >42-48: 7-letter code "Erythea", "knight", etc. (suspect this is shield >graphics) >4C-50: 5-letters: "grass" (terrain type, no doubt) >56: Number of chunks of scenario data that follow (hex 10 in Zesde, 1A >in Hyboria) >58: Number of chunks of armyset data after scenario data (00 in Zesde, >0C in Hyboria) > > >*** Part II: Data files stuck together, in sequence. > >The format of each data file ("chunk") is very similar. There is a >20-byte header followed by the data. The format of the header is: > >Header: 00 00 FILENAME.xyz 00 ?? dd cc bb aa (total 20 bytes) >where: .xyz = DOS filename extension, > ?? is at least one byte, more if name < 8 chars, and always >the same for > a given scenario, but variable from one scenario to >the next. > Currently believe this ?? data is irrelevant, but >it's safest to > find a template where the length of the scenario >name is the same > as the length of the name of the new scenario >you're making, so you > can just recycle the old scenario as a template, >and only change > what *must* be changed. This seems to work okay. > dd cc bb aa = 32-bit data length, in reverse byte order, > with bb aa typically zero. => Length of the data >chunk is cc dd > >Each data chunk corresponds to a resource in the Mac scenario file, except for >those that correspond to pieces of an army, city, or shield set. Here we >consider >only the scenario stuff (and thus the ideas apply only to scenarios that >use standard >army/city/shield sets). The rest is probably not hard to figure out, but >it's left as an exercise to the reader to do so... :) > >To create a new .SCZ, just open up a template old .SCZ and the Mac scenario >you wish to convert. Then for each chunk in the template, simply change the >filename in the header (keep the length of the name constant), compare the >data length of the template data with that of the corresponding resource in >the Mac scenario (and tweak the data length value as necessary), and then >paste the new data from the Mac scenario into the position occupied by the >old data in the template. It's not hard, but there are a lot of chunks >to worry about, which leaves room for a lot of dumb mistakes! > >There is one tricky stage, and that is dealing with the strategic map >and scenario image graphics. On the Mac these are PICT resources, but >in the .SCZ they are hacked-up .PCX images. But PhotoShop is up to the task, >and the details are explained below. > >A simple scenario-only .SCZ file has the following contents: > (using a beta of Zesde as the example) > >******************************************************************************* >* >** >Anatomy of ZESDE.SCZ: >******************************************************************************* >* >** > Header Data Data >Chunk name Start End Length Start End > Mac Equivalent >=============================================================================== >= >==== >ZESDE.SCN 00060 00073 2E E1 00074 02F54 SCN resource > - this chunk has the same length in all scenarios - > >ZESDE.MAP 02F55 02F68 DE 70 02F69 10DD8 MAP resource > - this chunk has the same length in all scenarios - > >ZESDE.RD 10DD9 10DEC 44 40 10DED 1522C RD resource > - this chunk has the same length in all scenarios - > >ZESDE.ITM 1522D 15240 03 FA 15241 1563A ITM resource > - this chunk has the same length in all scenarios - > >ZESDE.CTY 1563B 1564E (06 0B) 1564F 15C59 CTY resource > - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 21 >1D) - > >ZESDE.SPC 15C5A 15C6D (00 00) n/a > SPC resource > - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 0D >80) - > >ZESDE.SGN 15C6E 15C81 (00 6A) 15C82 15CEB SGN resource > - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 0F >DA) - > >SCENARIO.PCX 15CEC 15CFF (3D EC) 15D00 19AEB converts to PICT #10000 > - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 7C >E7) - > N.B. Both scenarios' PCX data start with 0A05 0108 0000 0000 0701 >E000 (size header?) > Figuring out how to tweak this is left as an exercise to >the reader. > The simple solution is just to clone the SCENARIO.PCX from >your template .SCZ > >USER.DAT 19AEC 19AFF (00 05) 19B00 19B04 DAT rsrc >"USER" (#10000) > - this chunk is NOT THE SAME LENGTH in all scenarios! (Hyboria: 04 >B0) - > N.B.: Hyboria has AI.DAT *instead*, which becomes the AI resource. > The USER.DAT / AI.DAT data is either one or the >other, not both. > >SCENARIO.DAT 19B05 19B18 00 54 19B19 19B6C SCEN resource > - this chunk has the same length in all scenarios - > >*** Now the order of the data chunks becomes variable! (But the style is >fixed.) *** >*** Zesde anatomy shown below; Hyboria anatomy (after SCENARIO.DAT) shown >later. > >TERRNAME.DAT 19B6D 19B80 00 06 19B81 19B86 DAT rsrc "TERRNAME" >(#10001) > - Always the same length. The data is the codename of terrain set >used. - > >ARMYNAME.DAT 19B87 19B9A 00 08 19B9B 19BA2 DAT rsrc "ARMYNAME" >(#10002) > - Always the same length. The data is the codename of army set >used. - > >SCENINFO.DAT 19BA3 19BB6 00 AA 19BB7 19C60 DAT rsrc "SCENINFO" >(#10003) > - Always the same length. This has scenario info for Warlords' >preview screen. - > >STRAT0.PCX 19C61 19C74 43 A6 19C75 1E01A Mutates >into strategic map PICT >STRAT1.PCX 1E01B 1E02E 5B 85 1E02F 23BB3 Mutates >into strategic map PICT >STRAT2.PCX 23BB4 23BC7 52 09 23BC8 28DD0 Mutates >into strategic map PICT > - these 3 are strategic map info > - save each data chunk (minus the header) as a .PCX file for Photoshop. > - the 3 PCX files are three pieces of the map, from top to bottom: > * STRAT0.PCX is 224 pixels wide, 114 high. > Rows 0-99 are 100 rows of image, rows >100-113 are blank ocean > * STRAT1.PCX is 224 by 128. Rows 0-13 and 114-127 are blank >ocean; > the image is in rows 14-113 (100 rows) > * STRAT2.PCX is 224 by 126. Rows 0-13 are blank ocean; > the image is in rows 14-125 (112 rows) > - The combined image is 224 by 312 > - The image uses a custom colormap (aargh!) > - Technique to construct PCX pieces from a Mac Scenario's PICT: > (1) Open the template .SCZ and find the STRAT0, STRAT1, >STRAT2 data > (2) Use hex editor to Copy-and-Paste the STRAT0, >STRAT1, STRAT2 data > into separate new .PCX files (the PCX data starts >with 0A 05 01 08) > (3) Open the .PCX versions of STRAT0, STRAT1, STRAT2 with >PhotoShop > to use as templates and colormap references. > (4) Use Photoshop to *acquire the PICT resource* #2 from >the Mac scenario > (#1 is the equivalent of SCENARIO.PCX, #2 >is the Strategic Map) > (5) Cut & Paste the appropriate sections of the PICT image >onto the > three PCX images. Be careful to get the >positioning exactly right! > Photoshop automatically does the color table >remapping. :) > - STRAT0 gets pixel lines 0-99 from the PICT > - STRAT1 gets pixel lines 100-199 from the PICT > - STRAT2 gets the rest (lines 200-311) > (6) Resave the new STRAT0.PCX, STRAT1.PCX, STRAT2.PCX > (7) Open up the new .PCX files in the hex editor. > (8) Be careful - the new PCX files are *NOT* the same >length as the old ones! > (9) Adjust the header info for each .PCX data chunk to >match the new length. > (10) Copy the new PCX data, select all the old data, and >paste/replace/insert. > Make sure you don't leave any old data behind or >overwrite any good data! > >After the end of the STRAT2.PCX there's a few stray bytes that don't look >terribly >meaningful (it's a regurgitated chunk of filename). This chunk does seem >to be >important to avoid file-length errors. Just copy the final chunk from your >template. > >************************ >Hyboria Anatomy (where it differs from ZESDE.SCZ, after the SCENARIO.DAT: > > Header Data >Chunk name Start End Length Start End > Mac Equivalent >=============================================================================== >= >==== >STRAT0.PCX 21715 21728 4E 48 21729 26570 PICT >resource??? >STRAT1.PCX 26571 26584 50 F8 26585 2B67C PICT >resource??? >STRAT2.PCX 2B67D 2B690 50 DA 2B691 3076A PICT >resource??? >CITYNAME.DAT 3076B 3077E 00 08 3077F 30786 DAT rsrc "CITYNAME" >(#10000) >ARMYNAME.DAT 00 08 > DAT rsrc "ARMYNAME" (#10001) > (army set name) >SHLDNAME.DAT 00 07 > DAT rsrc "SHLDNAME" (#10002) > (shield set name) >SCENINFO.DAT 00 AA > DAT rsrc "SCENINFO" (#10003) > (scenario info) >HERONAM0.DAT > DAT rsrc "HERONAM0" (#10004) > - Hero names for each side, variable length for each one - >HERONAM2.DAT > DAT rsrc "HERONAM2" (#10005) >HERONAM1.DAT > DAT rsrc "HERONAM1" (#10006) >HERONAM6.DAT > DAT rsrc "HERONAM6" (#10007) >HERONAM3.DAT > DAT rsrc "HERONAM3" (#10008) >HERONAM5.DAT > DAT rsrc "HERONAM5" (#10009) >HERONAM7.DAT > DAT rsrc "HERONAM7" (#10010) >HERONAM4.DAT > DAT rsrc "HERONAM4" (#10011) >TERRNAME.DAT > DAT rsrc "TERRNAME" (#10012) > - codename of terrain set used - >As in Zesde, some gibberish fills out the end of the row and the next > >HYBORIA.DAT - army set, header starts 31110, length 0706 (+14h >for header) >HYBORIA0.PCX - army set pictures for each side + neutrals ... - >HYBORIA1.PCX >HYBORIA2.PCX >HYBORIA3.PCX >HYBORIA4.PCX >HYBORIA5.PCX >HYBORIA6.PCX >HYBORIA7.PCX >HYBORIA8.PCX >HYBORIAS.PCX - ??????? - >HYBORIA.ARM - Short file with codename of army set - > - followed by additional gibberish to fill up the next line of hex. >(??) > >Now for the fun part - here's the anatomy of the AERO2.SCZ I created! > >**************************************************************************** >Aero2 anatomy as built on a Zesde template. :) >**************************************************************************** > >*** Part I: AERO2.SCZ Header > >Bytes What >============================================================== >00-03: zeroes (all bytes are zeroes unless otherwise noted!) >04-??: Name of scenario (normal style, e.g. Zesde, Hyboria). -> Zesde >goes to Aero2 >1A-??: Name of scenario in all caps, followed by zeroes -> ZESDE >goes to AERO2 >24: ??? (is 00 in Zesde, 01 in Hyboria) -> 00 in Aero2 as in Zesde >28: Number of cities in hex -> set to 2A for Aero2 (42 cities) >2A: Number of ruins in hex -> set to 10 for Aero2 (16 ruins) >2C: Number of sides in hex -> set to 04 for Aero2 (4 sides) >2E-34: 7-letter lowercase code for army set name (tournam) >38-3E: 7-letter code "Erythea", "Hyboria", etc. (not sure what the use is) >42-48: 7-letter code "Erythea", "knight", etc. (not sure what the use is) >4C-50: 5-letters: "grass" (terrain type, no doubt) >56: Number of chunks of scenario data that follow (hex 10 in Zesde, >keep in Aero2) >58: Number of chunks of armyset data after scenario data (00 in Zesde, >keep in Aero2) > >*** Part II: Data files stuck together, in sequence. > >Header: 00 00 FILENAME.xyz 00 ?? dd cc bb aa (total 20 bytes) > >Aero2.SCZ file contents: > > Header Data >Chunk name Start End Length Start End > Mac Equivalent >=============================================================================== >= >==== >AERO2.SCN 00060 00073 2E E1 00074 02F54 SCN resource >AERO2.MAP 02F55 02F68 DE 70 02F69 10DD8 MAP resource >AERO2.RD 10DD9 10DEC 44 40 10DED 1522C RD resource >AERO2.ITM 1522D 15240 03 FA 15241 1563A ITM resource >AERO2.CTY 1563B 1564E 0B 6D 1564F 161BB CTY resource >AERO2.SPC 161BC 161CF 04 C1 161D0 16690 SPC resource >AERO2.SGN 16691 166A4 1B 3A 166A5 181DE SGN resource >SCENARIO.PCX 181DF 181F2 3D EC 181F3 1BFDE converts to PICT #10000 > - Cloned this from Zesde. Can always change it later if we wish! >USER.DAT 1BFDF 1BFF2 00 05 1BFF3 1BFF7 DAT rsrc >"USER" (#10000) > - Identical to what was in Zesde, in fact. (But now in a different >byte position.) >SCENARIO.DAT 1BFF8 1C00B 00 54 1C00C 1C05F SCEN resource > - This chunk had a few lingering numbers set wrong, so I fixed 'em. - > - (It claimed the scenario has 65 cities, 40 ruins, 8 players in >preview) - >TERRNAME.DAT 1C060 1C073 00 06 1C074 1C079 DAT rsrc "TERRNAME" >(#10001) > - Identical to what was in Zesde, in fact. (But now in a different >byte position.) >ARMYNAME.DAT 1C07A 1C08D 00 08 1C08E 1C095 DAT rsrc "ARMYNAME" >(#10002) > - Identical to what was in Zesde, in fact. (But now in a different >byte position.) >SCENINFO.DAT 1C096 1C0A9 00 AA 1C0AA 1C153 DAT rsrc "SCENINFO" >(#10003) >STRAT0.PCX 1C154 1C167 44 1E 1C168 20585 top ~1/3 of >Strat Map PICT (100 lines) > - These last three are *not* the same length as the ones in Zesde! *** >STRAT1.PCX 20586 20599 55 73 2059A 25B0C mid ~1/3 of >Strat Map PICT (100 lines) >STRAT2.PCX 25B0D 25B20 54 0A 25B21 2AF2A bottom ~1/3 >of Strat Map PICT (112) > > >I've tested this (briefly) on my Mac. The .SCZ installs fine and I even >started >up a quick game! Hopefully there's no "Mac pollution" and the PC players can >also install from it!!! The overall process took a long time today, but I had >to learn everything as I went. With practice I think a Mac scenario could >be ported in ~1-2 hours. Not something you want to do every day, but for >three tournament scenarios this is a piece of cake! > >-- Bob Heeter > From: "Barry W. Brook" Organization: School of Biological Sciences To: rfheeter@phoenix.Princeton.EDU, Bob.Heeter@jet.uk Date: Mon, 18 Aug 1997 11:36:44 GMT+1000 MIME-Version: 1.0 Subject: Re: Mac->PC Scenario Conversion, Take 2! Reply-to: bbrook@rna.bio.mq.edu.au CC: "Gary S. Best" , Ivan Baird , dashorst@nicole.sis.nl Priority: normal Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body On 16 Aug 97 at 12:47, Robert F. Heeter wrote: > So, the big question is: Can you unzip and install the new Aero2.SCZ? > Yes and no (but I fixed it and it *does* work now, he, he!). Here's the story: I unzipped aero2.zip, and installed it through the librarian. No problems this time! However, when I went to start a new game, I got the error message "cannot find 'bmods.scn'. Hey? I thought... I checked out the scenario file, and the part referring to the location was named "ijbmods", not "aero2" (must have been and Ivan-based modification!). The first two characters had been chopped, which gave "bmods". So, I hex edited and changed this to "aero2", and reinstalled...hey presto, it worked! The scenario looks interesting, and with some tweaking I think it will turn out well for the tournament! Anyway, the fixed version is attached to this message... > If so, life will be very good in tournament land, because we have 2-3 > well-playtested scenarios that we will be able to use in the tournament. > This is a critical issue since the PC playtesting games on Sorcery and > Dwarven mines didn't turn out so well, and the WCWars scenario needs > a bit of help to be interesting, too. > Yep, this is going to make things much easier (ie complete Mac / PC scenario compatibility & conversion). I never did like the Sorcery scenario, and so have no objections to dumping it ;^) Cheers, Bazza Barry W. Brook Key Centre for Biodiversity and Bioresources, Macquarie University N.S.W. 2109 Australia. Ph: 612 9850-9266; Fax: 612 9850-8245 e-mail: bbrook@rna.bio.mq.edu.au Content-type: text/plain; charset=US-ASCII Content-disposition: inline Content-description: Attachment information. The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: aero2.zip Date: 18 Aug 1997, 11:26 Size: 39341 bytes. Type: Binary Content-type: Application/Octet-stream; name=aero2.zip; type=Binary Content-disposition: attachment; filename="aero2.zip" Attachment converted: PowerGaming:aero2.zip (pZIP/pZIP) (0000E72B) Duel3.SCZ creation notes. 0. Following "anatomy of a .SCZ file" 1. Using Aero2.SCZ as template 2. Obvious tweaks made to header. Assuming 16 data chunks as in Aero2. 3. Replacement of initial AERO2 chunks with same-length DUEL3 resources easy. 4. At 1564F, start of .CTY data. Aero2 length was 0B6D, ending 161BC. Duel3 length is 0DBF, should end at 1640E. Checks out. 5. At 16422, start of .SPC data. Aero2 length was 04C1, ending 168E3. Duel3 length is 0A5A, should end at 16E7C. Checks out. 6. At 16E90, start of .SGN data. Aero2 length was 1B3A, ending 189CA. Duel3 length is 2F8A, should end at 19E1A. Checks out. 7. At 19E2D, SCENARIO.PCX. Length 3DEC. Left unchanged. Ends at 1DC19. 8. USER.DAT left untouched. 9. SCENARIO.DAT = SCEN resource. Data starts 1DC48, length 0054, ends 1DC9B. Same length in DUEL3. 10. TERRNAME, ARMYNAME, SCENINFO.DAT: one change: "The Diceman" -> "Bob Heeter " 11. Strategic Map data: Use AERO2 data for template purposes: STRAT0.PCX data starts 0A 05 01 08 at location 01DDA3. Length 441E, so it goes to 0221C1. STRAT1.PCX data starts at location 0221D6, length 5573, ends 027749. STRAT2.PCX data starts at location 02775C, length 540A, ends 02CB66 DUEL3 STRAT*.PCX data: STRAT0.PCX length is 4D8B, from 01DDA2 now ends at 022B2D. STRAT1.PCX length is 55D8, from 022B41 now ends at 028119 STRAT2.PCX length is 56F1, from 02812D now ends at 02D81E 12. Doesn't work first time. Damn! Must have miscounted/labeled bytes somewhere? Scenario installer gives end-of-file errors. Plan: Increase crud at the end. Current last byte is 02D831. Add another "00" byte. Works!!!
Back to the W2 Players' Encyclopedia
For bug reports, questions, comments, suggestions, etc, my email address
is:
Legal and Historical Disclaimers:
This site began in 1994 as Eugene Lee's
Warlords II Home Page in Australia. It has evolved steadily since then,
and now includes material by a variety of authors, including Bob Heeter,
Eugene Lee, Elam Birnbaum, Glen Barnett, Dirk Pellett, Vern Vaillancourt,
Gary Best, and others where indicated.
A number of graphics are copyright by SSG; copyright and other
rights to the Web source are reserved by the appropriate authors.
(This site is not the Official
Warlords Site by SSG.)