DO/ARM

From Dark Omen Wiki

(Difference between revisions)
Jump to: navigation, search
(Regiment data: Head data)
(Header: Tabulation + Updated sector layout illustration)
Line 10: Line 10:
<p><span style="background:gray;">9E 02 00 00</span> <span style="background:CornflowerBlue">04 00 00 00</span> <span style="background:purple;">BC 00 00 00</span> <span style="background:CadetBlue;">01 00 00 00</span> <span style="margin-left:1em;background:gray;">670</span> <span style="background:CornflowerBlue">No. of Units</span> <span style="background:purple;">Size of Unit (188bytes)</span> <span style="background:CadetBlue;">Race (see below)</span><br />
<p><span style="background:gray;">9E 02 00 00</span> <span style="background:CornflowerBlue">04 00 00 00</span> <span style="background:purple;">BC 00 00 00</span> <span style="background:CadetBlue;">01 00 00 00</span> <span style="margin-left:1em;background:gray;">670</span> <span style="background:CornflowerBlue">No. of Units</span> <span style="background:purple;">Size of Unit (188bytes)</span> <span style="background:CadetBlue;">Race (see below)</span><br />
-
15 00 <span style="background:GoldenRod;color:black;">00 F8 02 00 E6 83 03 00 65 00 00 00 00 00</span> <span style="margin-left:1em;background:GoldenRod;color:black;">Regiment Name</span><br />
+
<span style="outline:1px solid red;">15 00</span> <span style="background:GoldenRod;color:black;">00 F8 02 00 E6 83 03 00 65 00 00 00 00 00</span> <span style="margin-left:1em;background:GoldenRod;color:black;">Regiment Name</span><br />
<span style="background:GoldenRod;color:black;">00 00 00 00 90 20 52 F7 35 01 39 01 02 00 79 00</span><br />
<span style="background:GoldenRod;color:black;">00 00 00 00 90 20 52 F7 35 01 39 01 02 00 79 00</span><br />
-
<span style="background:GoldenRod;color:black;">00</span> 00 <span style="background:DarkGreen;">5B 42 4F 4F 4B 53 5D 5C 68 73 68 69 65 6C</span> <span style="margin-left:1em;background:DarkGreen;">Path+Name of Small Banner Graphics File</span><br />
+
<span style="background:GoldenRod;color:black;">00 00</span> <span style="background:DarkGreen;">5B 42 4F 4F 4B 53 5D 5C 68 73 68 69 65 6C</span> <span style="margin-left:1em;background:DarkGreen;">Path+Name of Small Banner Graphics File</span><br />
<span style="background:DarkGreen;">64 2E 73 70 72 00 00 00 04 00 06 01 00 00 2A 01</span><br />
<span style="background:DarkGreen;">64 2E 73 70 72 00 00 00 04 00 06 01 00 00 2A 01</span><br />
-
<span style="background:DarkGreen;">E7</span> 00 <span style="background:DarkBlue;">5B 42 4F 4F 4B 53 5D 5C 68 67 62 61 6E 2E</span> <span style="margin-left:1em;background:DarkBlue;">Path+Name of Small Inactive Banner Graphics File</span><br />
+
<span style="background:DarkGreen;">E7 00</span> <span style="background:DarkBlue;">5B 42 4F 4F 4B 53 5D 5C 68 67 62 61 6E 2E</span> <span style="margin-left:1em;background:DarkBlue;">Path+Name of Small Inactive Banner Graphics File</span><br />
<span style="background:DarkBlue;">73 70 72 00 F7 11 AC F8 E7 05 42 00 56 16 04 00</span><br />
<span style="background:DarkBlue;">73 70 72 00 F7 11 AC F8 E7 05 42 00 56 16 04 00</span><br />
-
<span style="background:DarkBlue;">C4</span> 00 <span style="background:brown;">5B 42 4F 4F 4B 53 5D 5C 68 6C 62 61 6E 2E</span> <span style="margin-left:1em;background:brown;">Path+Name of Large Banner Graphics File</span><br />
+
<span style="background:DarkBlue;">C4 00</span> <span style="background:brown;">5B 42 4F 4F 4B 53 5D 5C 68 6C 62 61 6E 2E</span> <span style="margin-left:1em;background:brown;">Path+Name of Large Banner Graphics File</span><br />
<span style="background:brown;">73 70 72 00 4E 23 7F 17 08 03 B7 1F 67 1F 0C 05</span><br />
<span style="background:brown;">73 70 72 00 4E 23 7F 17 08 03 B7 1F 67 1F 0C 05</span><br />
-
<span style="background:brown;">44</span> 00 FB 00 <span style="background:Indigo;">64 00</span> <span style="background:DarkRed;">00 00 00 00 00 00 00 00 00 00</span> <span style="margin-left:1em;background:Indigo;">Money</span> <span style="background:DarkRed;">Magic Items</span><br />
+
<span style="background:brown;">44 00</span> <span style="outline:1px solid red;">FB 00</span> <span style="background:Indigo;">64 00</span> <span style="background:DarkRed;">00 00 00 00 00 00 00 00 00 00</span> <span style="margin-left:1em;background:Indigo;">Money</span> <span style="background:DarkRed;">Magic Items</span><br />
<span style="background:DarkRed;">00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br />
<span style="background:DarkRed;">00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</span><br />
-
<span style="background:DarkRed;">00 00 00 00 00 00 00 00 00 00 00 00 00</span> 00 <span style="background:blue;">DC 84</span> <span style="margin-left:1em;background:blue;">End of Header (not in every army file)</span><br />
+
<span style="background:DarkRed;">00 00 00 00 00 00 00 00 00 00 00 00 00 00</span> <span style="background:blue;">DC 84</span> <span style="margin-left:1em;background:blue;">End of Header (not in every army file)</span><br />
</p>
</p>
</div>
</div>
-
{| style="border:1px solid black; margin:1em;"
+
{| style="border:1px solid black; margin:1em; float:right;"
|- style="background:CadetBlue; "
|- style="background:CadetBlue; "
|Value || '''Race'''
|Value || '''Race'''
Line 41: Line 41:
|-
|-
|5 || Undead (Multiplayer)
|5 || Undead (Multiplayer)
 +
|}
 +
 +
{| class="wikitable" style="empty-cells:hide; border-collapse:separate;"
 +
! Data attribute !! Offset !! Byte size !! Notes !!
 +
|-
 +
| File ID || 0 || 4 || Always 9E 02 00 00  for Dark Omen .ARM files ||
 +
|-
 +
| # regiments blocks || 4 || 4 || &nbsp;
 +
|-
 +
| Regiment block size || 8 || 4 || Always 188 in Dark Omen .ARM files
 +
|-
 +
| Race || 12 || 4 || &nbsp;
 +
|-
 +
| Unknown || 16 || 2 || '''Unknown data'''
 +
|-
 +
| Army name || 18 || 32 || 0-term string
 +
|-
 +
| Small banner bitmap file || 50 || 32 || 0-term string (path + filename)
 +
|-
 +
| Small inactive banner bitmap || 82 || 32 || 0-term string (path + filename)
 +
|-
 +
| Large banner bitmap file || 114 || 32 ||  0-term string (path + filename)
 +
|-
 +
| Unknown || 146 || 2 || '''Unknown data'''
 +
|-
 +
| Gold in coffers || 148 || 2 || &nbsp;
 +
|-
 +
| Magic items || 150 || 40 || &nbsp;
 +
|-
 +
| Unknown || 190 || 2 || '''Unknown data'''
|}
|}

Revision as of 11:52, 5 May 2009

.ARM (army) files contains a list of regiments, their status, and some army data and statistics. The same format is used for multiplayer armies, single player mission enemy armies and save games. Edit with Mikademus' DOS WH2EDIT editor or Ghabry's forthcoming multi-platform Wh32Edit.

Contents


Header

The header of a army-file has a size of 192 bytes. Example (Allied1.arm):

9E 02 00 00 04 00 00 00 BC 00 00 00 01 00 00 00 670 No. of Units Size of Unit (188bytes) Race (see below)
15 00 00 F8 02 00 E6 83 03 00 65 00 00 00 00 00 Regiment Name
00 00 00 00 90 20 52 F7 35 01 39 01 02 00 79 00
00 00 5B 42 4F 4F 4B 53 5D 5C 68 73 68 69 65 6C Path+Name of Small Banner Graphics File
64 2E 73 70 72 00 00 00 04 00 06 01 00 00 2A 01
E7 00 5B 42 4F 4F 4B 53 5D 5C 68 67 62 61 6E 2E Path+Name of Small Inactive Banner Graphics File
73 70 72 00 F7 11 AC F8 E7 05 42 00 56 16 04 00
C4 00 5B 42 4F 4F 4B 53 5D 5C 68 6C 62 61 6E 2E Path+Name of Large Banner Graphics File
73 70 72 00 4E 23 7F 17 08 03 B7 1F 67 1F 0C 05
44 00 FB 00 64 00 00 00 00 00 00 00 00 00 00 00 Money Magic Items
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 DC 84 End of Header (not in every army file)

Value Race
0 Empire
1 Empire (Multiplayer)
2 Greenskin
3 Greenskin (Multiplayer)
4 Undead
5 Undead (Multiplayer)
Data attribute Offset Byte size Notes
File ID 0 4 Always 9E 02 00 00 for Dark Omen .ARM files
# regiments blocks 4 4  
Regiment block size 8 4 Always 188 in Dark Omen .ARM files
Race 12 4  
Unknown 16 2 Unknown data
Army name 18 32 0-term string
Small banner bitmap file 50 32 0-term string (path + filename)
Small inactive banner bitmap 82 32 0-term string (path + filename)
Large banner bitmap file 114 32 0-term string (path + filename)
Unknown 146 2 Unknown data
Gold in coffers 148 2  
Magic items 150 40  
Unknown 190 2 Unknown data

Regiment data

Regiment data starts at offset 192 (in savegames offset 696). Every regiment block has a size of 188 bytes. Example first regiment from B403NME.ARM:

10 00 00 00 81 00 00 00 00 00 00 00 D5 00 00 00 regiment status Unique Unit ID Mage type armour cost banner
20 00 00 00 30 00 4E 69 67 68 74 20 47 6F 62 6C Regiment attributes sprite Unit name
69 6E 73 20 23 31 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
21 00 80 1B 1B 05 00 00 00 00 name ID alignment max units alive units ranks
04 02 03 03 03 01 02 01 05 00 01 01 0B 04 00 00 Sldr attr mount armour weapon unit type point value missile
01 00 00 00 30 00 78 00 00 00 00 00 00 00 00 00 leader sprite leader name
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 Leader attributes
03 04 04 03 01 03 02 05 00 01 01 00 00 00 00 00 ld.mnt ld.armr ld.wpn ld.tpe ld.pnt ld.mssl
00 00 89 00 00 00 00 00 00 00 00 00 B8 0B 00 00 Leader 3D head X position Z position XP Dupl ID Min armour
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF magic book item slots
FF FF 00 00 00 00 00 00 00 00 00 00 .. .. .. .. Book profile

For an explanation of values for sprite and leader sprite, see Sprites.
Data attribute Offset Byte size Notes
Status 0 2  
unknown 2 2 Seems to be unused
Unique Unit ID 4 2  
unknown 6 2 Seems to be unused
Wizard type 8 1  
Armour 9 1  
Cost 10 2  
Banner 12 1  
unknown 13 3 Seems to be unused
Regiment attributes 16 4  
Sprite 20 1   Unit sub-record for rank-and-file
59 bytes
unknown 21 1 Seems to be unused
Regiment Name 22 32 Zero-terminated (or DO crashes)
Name ID 54 1  
unknown 55 1 Seems to be unused
Alignment 56 1  
Max units 57 1  
Alive units 58 1  
Ranks 59 1  
unknown 60 4 Seems to be unused
Rank-and-file stats 64 9  
Mount 73 1  
Armour 74 1  
Weapon 75 1  
Unit type 76 1  
Point value 77 1  
Missile weapon 78 1  
unknown 79 1 Unknown data
unknown 80 3 Seems to be unused
Leader sprite 84 1   Unit sub-record for regiment leader
59 bytes
unknown 85 1 Seems to be unused
Leader name 86 32 Zero-terminated (or DO crashes)
block of zeroes 118 9 Covers the name ID, align, ranks etc regiment data
Leader stats 127 9  
Mount 136 1 Unused == 0 for leader
Armour 137 1  
Weapon 138 1  
Unit type 139 1 Only used for fanatics
Point value 140 1 Only used for fanatics
Missile weapon 141 1  
unknown 142 2 Seems to be unused
unknown 144 1 Unknown data
unknown 145 1 Seems to be unused
Leader 3D Head ID 146 1   Unit leader 3D head data
unknown 147 1 Seems to be unused
X-Pos 148 4 Unverified
Y-Pos 152 4 Unverified
Experience 156 2  
Duplicate ID 158 1  
Base (minimum) armour 159 1  
Magic book 160 2  
Magic item slots 162 6 3 slots á 2 bytes
reserved space 168 10 Five unusable item slots
Book profile 183 1  
unknown 184 4 Seems to be unused

Soldier and leader Character Attributes

Further information: The Warhammer Attributes

Movement, Weapon Skill, Ballistic Skill, Strength, Toughness, Wounds, Initiative, Attacks, Leadership

Unit Character attributes Regiment attributes
Mv WS BS S T W I A Ld A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4
Mercenary cavalry

Regiment attributes

Regiment attributes are physical and psychological abilities or disadvantages of entire regiments. Attributes are stored in the regiment block at bytes 16-19. The different values are flags mapped to bits in four bytes (thus 32 unique attributes are possible).

Transcluded from DO/ARM/Regiment attributes

Note: The Bits in this table are going from lowest to highest bit. So the lowest bit is 1 and the highest 8.

Bit BYTE 1 BYTE 2 BYTE 3 BYTE 4
1
Will never rout
Flagellants, steam tank and most undead have this
Immune to fear, can be routed
Most undead have this
Inflicting casualty causes fear
Screaming skull, undead chariot and Nagash has this
Goblin Flag (Trading Post Map only)
Only Night Goblins in B1_01 have this
2
Unused
Regenerates wounds
Only trolls have this
Cowardly
Only ghouls have this
Impervious to Magic
Only necromancer in B1_03 has this
3
Cause fear
Most undead have this
Never rally/regroup
Villagers and B1_04 Mage has this. When a regiment has been broken it will get the white flag immediately
Destroyed if routed
Wights, wraiths, zombies, Carstein and dummies have this
No retreat, no surrender!
No regiment uses this. Unit will never rout, retreat button without any use. Banner of Defiance and cheat code DONTMESSWITHME and Ctrl+C+I have the exact same effect
4
Cause terror
Black Grail, Dread King, Hand of Nagash and Wraiths have this
Always Pursue
No regiment has this; Regiment will follow retreating enemy until it is defeated
Flammable
Treeman and mummies have this
No Item slots
Treeman, scorpion, spider, and wraiths have this
5
Elf racial flag
Only elves have this
"Engine of War" Rule
Steam tank and goblin fanatics have this
360 Degree Vision
Only giant spider has this
Can't be selected
Only goblin fanatics have this
6
Goblin racial flag
Goblins and goblin fanatics have this
Indestructible
Only necromancer in B1_03 has this
Unit contains fanatics
Only goblin with fanatics has this
Fear Elves
Which unit has this- Goblins?
7
Hate Greenskins
Elves and treeman has this
Unused
Aetherial "racial" flag
Only wraiths have this
Unused
8
Unimpeded by difficult terrain
Elves, treeman, spider, black grail, skel horsemen and wraith
Suffer additional wounds
Only skeletons and training dummy have this.
Giant
Only Treeman has this
Unused
Certain and tested
Highly likely but not tested
Function basically undeterminable... :(
Guess and/or untested
I changed "psychology" to "attribute". I originally used the term psychology when I started mapping out the .arm files, and I thought that only the Warhammer psychology stuff (like hatred, saga animosity, fearless, etc) were stored there. But as also physical stuff like terrain striding etc are represented here "attributes" is a more descriptive term. Mikademus 23:24, 18 September 2008 (UTC)

I have started colour-coding the above table. Since it has been a while I am not certain which attributes I definitely determined and which I merely surmised. Ghabry is the the current authority on unit attributes, and I hope he will be able to complete the chart. Mikademus 12:43, 19 September 2008 (UTC)

Certain or likely flags

Flag #9 (byte 2 bit 1): In DO only skeletons have this set. It seems to be the undead army list rule that skeletons (which are immune to fear and don't take rout tests) take additional wounds from being pushed back

Flag #24 (byte 3 bit 8): This is an adaptation of Warhammer's special Screaming Skull Catapult rule. The Screaming Skulls fired by the catapult cause fear, so if even one casualty is dealt the receiving unit must take a rout test. Since Hand of Nagash also has this is is surmised that is is also used to give extra oomph to his attacks, and in extension, to the attack of any unit with this flag.

Uncertain flags

Flag #3 (byte 1 bit 3): Only goblins have this set. It could simply to indicate race, or it could be to indicate goblins' racial traits. The WHTTv4 rules about goblins are:

Races/Warhammer/Goblins/WHTT4

logo4thedminimalrn6.png

Relevant WHFB TT goblinoid rules v4. Goblins

  • have animosity toward other goblinoids
  • hate dwarves (and gnomes)
  • fear elves (of numbers > half the goblins)
  • and some special stuff about being led by snotlings and substituting spells.

Flag #4 (byte 1 bit 4): Only elves have this set. It could simply to indicate race, or it could be to indicate elves' racial traits. The WHTTv4 rules about elves are:

Races/Warhammer/Elves/WHTT4

logo4thedminimalrn6.png

Relevant WHFB TT v4 elves rules. Elves

  • are feared by Goblins if less than twice the numbers
  • have double encumbrance from armour

Wood elves

  • Suffer no movement or manoeuvre penalties in wooden areas
  • have 6" longer range with bows
  • and some special stuff about being substituting spells.

Are elves equipped with the same longbow (missile weapon type) as f.i. Helmgard Longbowmen? If so then we know that at least the additional distance rule applies.

Flag #18 (byte 3 bit 2): Only wraiths have this set. It could simply to indicate race, or it could be to indicate wraiths' special traits. The WHTTv4 rules about wraiths are:

Races/Warhammer/Wraiths/WHTT4

logo4thedminimalrn6.png

Relevant WHFB TT v4 wraith rules. Wraiths

  • are immune to all psychology (seems not to be true in DO)
  • cause fear 12" +2 in all living creatures regardless of size
  • can only be damaged by magic, magic weapons, daemons, or undead chill attacks
  • have chill attacks that automatically cause 1 wound, no save and no armour
  • are bound to a particular place and dematerialise if they leave this zone or the thing they're attached to is destroyed
  • can pass through any material obstacle unhindered

Flag #12 (byte 2 bit 4): This units can't fight in Closed Combat and can drive over other regiments while charging.

Personal tools
communication