Академический Документы
Профессиональный Документы
Культура Документы
*Zastai*
Note: MOMGAME.EXM contains example data and explanations illustrating the
information in this file.
If you have any additions to make to this file, mail them to:
Tim Van Holder <mailto:tim.van.holder@pandora.be>
NOTE: 2003.Sep.27 - Tim is no longer interested.
Now e-mail any additions to Eljay <love-jensen@mchsi.com>
2008.Apr.04 - Updates by Klaas van Aarsen <klaas.vanaarsen@xs4all.nl>
so they can be included in eventual new editions.
->The Saved Game
Offset in File
0x0000
5 wizards)
0x09E8
0x6FB8
0x88B8
t edit)
0x8AA8
0xB734
Size in bytes
Contents
0x0C * 35 * 5
0x4C8 * 5
0x20 * 128
0x20 * 10
0x72 * 100
0x20 * 1000
Cities
Units
Size in bytes
0x09DE
0x01
ormal, 3=hard, 4=impossible)
0x09E2-09E3
0x02s
Contents
Difficulty (0=tutorial, 1=easy, 2=n
Number of Units (0 ... 1000)
Detailed descriptions:
---------------------Notes on notation:
Values marked int/long are stored little-endian, i.e. an int with a value of
FF00 in the file corresponds to the hexadecimal value 0xFF (and not
0xFF00); a long that is 01234567 in the file means the hexadecimal value
0x67452301.
Values marked s can have negative values.
This means that 0x01s has a range of -128 to 127, while
0x01 has a range of 0 to 255.
Values marked bitmask are not numbers but a collection of binary 'flags';
the state of individual bits is important.
All numbers are decimal except when preceded by 0x, which indicates
hexadecimal values. (eg 0x13 is 19 decimal)
->Hero Data
Size in bytes
0x02s
Contents
Level & Status
0-8 = level (1 - 9)
-1 .. -9 (0xFFFF .. 0xFFF7) = dead
, level (1 - 9)
-20 (0xFFEC) = active in Wizard's
army
Note: not updated until no longer
part of the wizard's employed heroes
0x02
0x01
0x03
0x01
0x04
0x01
0x05
0x01
0x06
0x01
down)
0x07
0x01
0x08
0x09
0x0A
0x0B
0x01
0x01
0x01
0x01
Offset in WIZARD
0x000
0x001-015
0x016-017
0x018-019
Size in bytes
0x01
0x01 * 21
0x02s (int)
0x02s (int)
0x01A-01B
0x02s (int)
0x01C - 0x023
0x024-025
0x026 - 0x02D
0x02E-02F
0x02s (int)
0x02s (int)
Contents
Portrait (0-13)
Name (20 characters + '\0')
BannerColor (0-4)
Personality (0-5)
00=Maniacal
01=Ruthless
02=Aggressive
03=Chaotic
04=Lawful
05=Peaceful
Objective (0-4)
00=Pragmatist
01=Militarist
02=Theurgist
03=Perfectionist
04=Expansionist
*Unknown*
Fame
*Unknown*
X Coordinate of Summoning Circle (0
0x030-031
0x02s (int)
0x032-033
0x034 - 0x053
0x054-055
0x02s (int)
0x02s (int)
0x056-057
s turn
0x058-059
0x02s (int)
0x02s (int)
0x05A-063
Ch-Li-De)
0x064-075
0x076-111
0x112 - 0x11D
0x11E - 0x11F
0x120-127
0x128 - 0x25B
0x25C-25D
0x25E-261
re root of value stored
0x262 - 0x263
0x264-339
0x02s (int) * 5
Tax Rate
00=0 gold, 0% unrest
01=.5 gold, 10% unrest
02=1.0 gold, 20% unrest
03=1.5 gold, 30% unrest
03=2.0 gold, 45% unrest
03=2.5 gold, 60% unrest
03=3.0 gold, 75% unrest
Number of Spellbooks (0-12) (Na-So-
-59)
-59)
turn
0x01 * 18
0x1A * 6
0x02s (int) * 4
0x02s (int)
0x04 (long)
here, rounded up)
Abilities (0 or 1)
Heroes hired by wizard, six slots
*Unknown*
*Unknown*
Items in Slots (See below)
*Unknown*
Mana Crystals
Casting Skill (actual skill is squa
*Unknown*
Spells (0-3) (Na-So-Ch-Li-De-Ar)
00=unknown
01=?
02=known
03=researchable
0x33A - 0x357
*Unknown*
0x356-357
0x02s (int)
Gold Coins
0x358-35B
0x04 (long)
Adjusted Casting Skill (?) (actual
skill is square root of value stored here, rounded up)
0x01 * 214
0x35C - 0x481
0x482-499
0x01 * 24
0x49A - 0x4C7
*Unknown*
Global Enchantments (See below)
00=off
01=on
*Unknown*
Field Values:
Items:
The values stored are the number of the item in the item array
(which starts at 0x6FB8); 0 means the first item in the list.
A value of -1 means that that slot is empty. Make sure you
refer to an existing item when editing these values!
Portrait:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
Merlin
Raven
Sharee
Lo Pan
Jafar
Oberic
Rjak
Sss'ra
Tauron
Freya
Horus
Ariel
Tlaloc
Kali
BannerColor:
0
Blue
1
Green
2
Purple
3
Red
4
Yellow
Personality:
0
Maniacal
1
Ruthless
2
Aggressive
3
Chaotic
4
Lawful
5
Peaceful
Objective:
0
Pragmatist
1
Militarist
2
Theurgist
3
Perfectionist
4
Expansionist
Abilities
0
1
2
3
4
5
6
(order in file):
Alchemy
Warlord
Chaos Master
Nature Master
Sorcery Master
Infernal Power
Divine Power
7
8
9
10
11
12
13
14
15
16
17
Sage Master
Channeller
Myrran
Archmage
Mana Focusing
Node Mastery
Famous
Runemaster
Conjurer
Charismatic
Artificer
45 Confusion
46 Word Of Recall
47 Counter Magic
48 Nagas
49 Psionic Blast
50 Blur
51 Disenchant True
52 Vertigo
53 Spell Lock
54 Enchant Road
55 Flight
56 Wind Mastery
57 Spell Blast
58 Aura Of Majesty
59 Phantom Beast
60 Disjunction True
61 Invisibility
62 Wind Walking
63 Banish
64 Storm Giant
65 Air Elemental
66 Mind Storm
67 Stasis
68 Magic Immunity
69 Haste
70 Djinn
71 Spell Ward
72 Creature Binding
73 Mass Invisibility
74 Great Unsummoning
75 Spell Binding
76 Flying Fortress
77 Sky Drake
78 Suppress Magic
79 Time Stop
* CHAOS
80 Warp Wood
81 Disrupt
82 Fire Bolt
83 Hell Hounds
84 Corruption
85 Eldritch Weapon
86 Wall of Fire
87 Shatter
88 Warp Creature
89 Fire Elemental
90 Lightning Bolt
91 Fire Giant
92 Chaos Channels
93 Flame Blade
94 Gargoyles
95 Fireball
96 Doombat
97 Raise Volcano
98 Immolation
99 Chimeras
100 Warp Lightning
101 Metal Fires
102 Chaos Spawn
103 Doom Bolt
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Wind Mastery
Suppress Magic
Time Stop
Nature Awareness
Nature's Wrath
Herb Mastery
Chaos Surge
Doom Mastery
Great Wasting
Meteor Storm
Armageddon
Tranquility
Life Force
Crusade
Just Cause
Holy Arms
Planar Seal
Charm of Life
Detect Magic
Awareness
Size
0x02s (int)
0x0E
0x02s (int) * 3
0x02s (int) * 3
Contents
Unit Nr (see below)
Hero name (13 characters + '\0')
Items In Slot (see below)
Slot Types (0-6; see below)
Field Values:
Unit Number:
The value stored is the number of the hero in the unit array
(which starts at 0xB734); 0 means the first unit in the list.
A value of -1 means that that slot is empty. Make sure you
refer to an existing hero (not a non-hero unit!) when editing
these values!
Items:
The values stored are the number of the item in the item array
(which starts at 0x6FB8); 0 means the first item in the list.
A value of -1 means that that slot is empty. Make sure you
refer to an existing item when editing these values!
Slot Types:
0
None (do not use; causes instability)
1
Sword
2
Bow
3
Sword/Staff/Wand
4
Staff/Wand
5
Armor/Shield
Amulet
0x03
Size in bytes
0x01s
0x01s
0x01s
0x01s
0x04
0x01s
0x05
0x01
0x06
0x01s
ans not a hero) (see below)
0x07
0x01
Contents
X-Pos (0-59)
Y-Pos (0-39)
Plane
00=Arcanus
01=Myrror
FF=Dismissed / Deceased
'Owner'
00=Player
01=First Opponent
02=Second Opponent
03=Third Opponent
04=Fourth Opponent
05=Neutral Unit
FF=Dismissed / Deceased
Moves Total (in 1/2 moves)
Icon Number (0x00 - 0xC5)
Hero Slot Number (0-5; -1 (0xFF) me
Active
00=awaiting orders / "I need atte
ntion" (will "jump to" this unit when hitting wait)
01=finished (won't "jump to" this
unit when hitting wait)
0x08
0x01s
Moves Left (in 1/2 moves)
0x09
0x01s
X-Pos of destination (should be 0 i
f status is not GOING TO)
0x0A
0x01s
Y-Pos of destination (should be 0 i
f status is not GOING TO)
0x0B
0x01s
Status (0-5)
00=ready
01=patrol
02=building road (in place)
03=going to X,Y destination (coul
d be building road too, see 0x1C)
04=reached destination & expended
(0x07 == 01)
NOTE: it is a STATE MACHINE FA
ILURE to have 0x07 = 00 & 0x0B == 04!
05=wait until all other units hav
e had a chance to go (then clears all flags)
the SAVE game does not record
if we are traversing UP or DOWN the units!
??=building road
??=purifying
0x0C
0x01
Level (Units: 0-5; Heroes: 0-8; Sum
mon (other than Torin): 0)
0x0D
0x01
?? 00
0x0E-0F
0x02s (int)
Experience (should match level or l
evel will be lowered)
(Units: 0-120; Heroes: 0-1000; Sum
?? 00
Lifedrain Damage (for turning into
0x1B
0x01 (bitmask)
0x1C
0x01
to complete, -1 = n/a)
0x1D-1F
0x03
10=flame blade
08=magic immunity
04=resist magic
02=flight
01=wind walking
Unit Enchantment Flags #4
80=invulnerability
40=righteousness
20=holy armor
10=planar travel
08=giant strength
04=lion heart
02=bless
01=heroism
Road Building (number of turns left
?? parms for 0x1C
seems to be "where built FROM, pr
evious location"
(probably important so as to move
"naturally" to target MOVETO location)
Field Values:
Icon Number:
0x00-0x22:
35 Heroes (00=Brax; 22=Chosen One) => better heroes, hig
her number
0x23-0x26:
4 Inanimate units (23=Trireme, 24=Galley, 25=Catapult, 2
6=Warship)
0x27-0x9A:
115 Racial units (Sorted by race, then by power)
0x9B-0xC5:
44 Magical (summoned) Creatures
Status:
0 Ready
1 Done
2 Patrolling
3 Going to (be sure to set destination coordinates)
others for building/purify: unknown
Weapon Type & Mutation:
The lower 2 bits determine weapon type:
00 (0) normal
01 (1) magical
10 (2) mithril
11 (3) adamantium
The upper 6 bits are mutation flags:
Bit 2: Chaos Channels: Demon Skin
Bit 3: Chaos Channels: Fire Breath (->NO RANGE ATTACK)
Bit 4: Chaos Channels: Demon Wings
Bit 5: Undead
Bit 6 & 7: Stasis
Notes on converting units to heroes:
Follow the following steps to convert a unit to a hero:
-) choose any unit in the unit list
-) set Owner to 00 (your property)
-) set hero Nr to the number of your free hero slot
-) set Icon to the desired hero number
-) fiddle with level/xp/mutation etc. as desired
-) note the units index in the list
-) go to the wizard data
-) change the Unit Nr entry for the selected hero slot to the units numb
er
Size in bytes
0x01 * 31
0x02s (int)
0x01s
0x01s
0x02s (int)
0x01s * 7
0x01
Contents
Item's Name (30 characters + '\0')
Icon (0-0x73; see below)
Slot Required (0-6; see above)
Item Type (0-8; see below)
Cost (0xFFFF = destroyed on anvil,
Bonuses
Spell Number Charged + 1 (-> 0 mean
0x02s (int)
Number Of Charges
0x01 * 4 (bitmasks) Powers
0x08
0x13
0x1C
0x25
0x2E
0x36
0x3D
0x47
0x49
0x4D
0x53
0x59
0x5D
0x64
0x6A
0x73
Item Type
Sword
Mace
Axe
Bow
Staff
Chain Mail
Plate Mail
Shield (Note: Icon 0x46 and 0x47 are identical)
Pendant
Brooch
Ring
Cloak
Gauntlet
Helmet
Orb
Wand
Item Type:
0
Sword
1
Mace
2
Axe
3
Bow
4
Staff
5
Wand
6
Various
7
Shield
8
Chain Mail
9
Plate Mail
Cost:
The mana gained when destroying an item is equal to half its
cost/value.
Bonuses:
Byte
1
2
3
4
5
6
7
Effect
+Attack
+To Hit
+Defense
+Movement (in halves)
+Resistance
+Spell Points
-Spell Save
Powers:
Note: Some powers only have an effect when on a weapon. (eg Vampiric)
Byte
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
Bit Power
0
Vampiric
1
Guardian Wind
2
Lightning
3
Cloak Of Fear
4
Destruction
5
WraithForm
6
Regeneration
7
PathFinding
0
Water Walking
1
Resist Elements
2
Elemental Armour
3
Doom (= Chaos)
4
Stoning
5
Endurance
6
Haste
7
Invisibility
0
Death
1
Flight
2
Resist Magic
3
Magic Immunity
4
Flaming
5
Holy Avenger
6
True Sight
7
Phantasmal
0
Power Drain
1
Bless
2
LionHeart
3
Giant Strength
4
Planar Travel
5
Merging
6
Righteousness
7
Invulnerability
Example: suppose byte 2 had a value of 0x60. This means that bits
6 and 5 are set (0x60 == 01100000 binary) => Haste & Endurance.
Note: The different items that can appear in a savegame are stored
in ITEMDATA.LBX. There are 250 item records in there and they have
the same layout, except for a few (6) bytes at the end of
each record. These seem to have no real meaning (perhaps they are
an indication of how rare an item is and of where it can be gotten).
So edit this file if you want to create your own Whammo(TM) Items
without the restrictions of Itemmake.
(The first record starts at 0x224).
Size in bytes
0x01 * 14
0x01s
0x01s
0x01s
0x01s
0x01s
0x01s
0x01s
0x01s
0x01
0x01s * 35
0x01s * 25
0x01s
Contents
City Name (13 characters + '\0')
Race (0-0x0D; see below)
X-Pos (0-59)
Y-Pos (0-59)
Plane (0 or 1)
'Owner' (0-4)
Size (0-5; see below)
Population (in thousands) (0-25)
Number of farmers allocated (should
*Unknown*
Producing (0-??; see below)
*Unknown*
Building Status (see below)
City Enchantments
Nightshade (0 or 1)
*Unknown*
Barbarian
Beastman
Dark Elf
Draconian
Dwarf
Gnoll
Halfling
High Elf
High Man
Klackon
Lizardmen
Nomad
Orc
Troll
Size:
0
1
2
3
4
5
Outpost
Hamlet
Village
Town
City
Capital
Producing:
I don't know yet what the exact corresponding objects are.
Feel free to experiment...
Building Status:
Values are:
-1 Not Built
0
Replaced
1
2
Order of
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Built
Destroyed
Appearance:
Trade Goods (keep at -1!!!!!)
Housing (keep at -1!!!!!)
Barracks
Armory
Fighter's Guild
Armorer's Guild
War College
Smithy
Stable
Animist's Guild
Fantastic Stable
Shipwright Guild
Ship Yard
Maritime Guild
Sawmill
Library
Sage's Guild
Oracle
Alchemist Guild
University
Wizard's Guild
Shrine
Temple
Parthenon
Cathedral
Marketplace
Bank
Merchant's Guild
Granary
Farmer's Market
Forester's Guild
Builder's Hall
Mechanician's Guild
Miner's Guild
City Walls
City Enchantments:
Values are:
0 if not present
1-5: Number of casting wizard + 1
(Yes! This does mean you can put positive enchantments
on your cities and have opposing wizards pay their upkeep!
Don't expect them to keep on paying though :)
Order of
1
2
3
4
5
6
7
8
9
10
11
12
Appearance:
Wall Of Fire
Chaos Rift (!)
Dark Rituals
Evil Presence (!)
Cursed Lands (!)
Pestilence (!)
Cloud Of Shadow
Famine (!)
Flying Fortress
Nature Ward
Sorcery Ward
Chaos Ward
13 Life Ward
14 Death Ward
15 Nature's Eye
16 Earth Gate
17 Stream Of Life
18 Gaia's Blessing
19 Inspirations
20 Prosperity
21 Astral Gate
22 Heavenly Light
23 Consecration
24 Wall Of Darkness
25 Altar Of Battle
(!) indicates a city curse upon an enemy city.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That's it for this first edition! Hope it helped someone....
---------------------------------------------------------------------------Legal Mumbo-Jumbo:
This Document is (C) 1995 ZastaiSoft.
It may be freely distributed, as long as no money is charged for it.
Exception: Shareware CDs & Small copying fees.
I make no guarantees as to the correctness of the above; however I
did write my own editor according to these specs and it worked, so
it probably comes close.
I am not liable for any damages to your hard- or software as a result
of using the above info.
If someone uses the info in this file to write a savegame editor or
the like, I'd appreciate a little thank-you e-mail to the address
listed at the top of the file. It would make my day :)
----------------------------------------------------------------------------