The Warlords II Players' Encyclopedia -   Info, Tactics | FAQ | Demos, Patches | Scenarios | Army Sets (+) | Scenario Editing | WarBOT | Tournament | League | Remailer | Other Sites - This page last revised 27-Apr-02 by Bob Heeter


Converting Mac-Deluxe Scenarios to .SCZ files

Suppose you've edited a scenario on the Mac, and you want to make it a .SCZ file for general use by PC players. What do you do? Here's what we did for the Warlords II World Tournament... (Sorry for not organizing this better, but time is scarce and I have no clue how interested anyone will be...)

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





Google Search in heeter.net (including all Warlords sites):

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