Talk:DO/ARM

From Dark Omen Wiki

Revision as of 18:49, 20 February 2010 by Mikademus (Talk | contribs)
Jump to: navigation, search

Contents

Working on Savegame Header

Just want to announce that I will work today on the savegame header ;)

Not related to savegame but normal header:

I found out what the unknown FB 00 means. It's for the status screen after the battle. For the "You collected X Coins from Treasures". The X is defined by this. Ok the FB doesnt really make sense (251) but when this value is different to 0 the treasure-message is displayed --Ghabry 13:52, 20 February 2010 (UTC)

About the savegame "junk"-block after the regiments:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00003CA0  01 00 00 00 00 00 00 00 E6 00 00 00 EB 00 00 00  ........æ...ë...
00003CB0  5B 53 50 52 49 54 45 53 5D 5C 6D 5F 69 6D 70 63  [SPRITES]\m_impc
00003CC0  61 31 2E 73 70 72 00 00 00 00 00 00 00 00 00 00  a1.spr..........

In the first line are 4 integers:

  • 1st: Animation is displayed
  • 2nd: padding?
  • 3rd: X-Coordinate of Animation
  • 4th: Y-Coordinate of Animation

So this defines what for animated things are on the current meeting point. --Ghabry 14:15, 20 February 2010 (UTC)

(Copy of praise from previous section, since I placed it in the wrong position anyway) Ghabry, really good work! Will you update the main article with this when you're done researching? This will go into the parsers immediately after that! :) Mikademus 18:47, 20 February 2010 (UTC)


Regiment Savegame Stuff

Head X and Z Position is wrong. This 4 Byte are used for savegame related things (for the summary displayed after battles)

The 8 byte are (16 bit per value):

  • Dead units in last battle
  • Unknown
  • Killed units in last battle
  • Experience gotten for last battle

And they are signed btw. But I guess we asume most of the things wrong with unsigned ;) --Ghabry 01:06, 20 February 2010 (UTC)

Ghabry, really good work! Will you update the main article with this when you're done researching? This will go into the parsers immediately after that! :) Mikademus 18:47, 20 February 2010 (UTC)


Unit Type Bitfield

Thx to ctl opcode #BA Rob found out that the unit type is actually a bitfield where the first 3 bits determine the race, the others are for the type:

Unused in ()

???:
(00000 000 Human)
(00000 001 Wood Elf)
(00000 010 Dwarf)
(00000 011 Night Goblin)
(00000 100 Orc)
(00000 101 Undead)
(00000 110 Townsfolk)
(00000 111 Ogre)
Infantry:
 00001 000 Human
 00001 001 Wood Elf
 00001 010 Dwarf
 00001 011 Night Goblin
 00001 100 Orc
 00001 101 Undead
 00001 110 Townsfolk
 00001 111 Ogre
Cavalry:
 00010 000 Human
(00010 001 Wood Elf)
(00010 010 Dwarf)
(00010 011 Night Goblin)
 00010 100 Orc
 00010 101 Undead
(00010 110 Townsfolk)
(00010 111 Ogre)
Archer:
 00011 000 Human
 00011 001 Wood Elf
(00011 010 Dwarf)
 00011 011 Night Goblin
 00011 100 Orc
 00011 101 Undead
(00011 110 Townsfolk)
(00011 111 Ogre) 
Artillery:
 00100 000 Human
(00100 001 Wood Elf)
(00100 010 Dwarf)
(00100 011 Night Goblin)
 00100 100 Orc
 00100 101 Undead
(00100 110 Townsfolk)
(00100 111 Ogres)
Wizard:
 00101 000 Human
(00101 001 Wood Elf)
(00101 010 Dwarf)
 00101 011 Night Goblin
 00101 100 Orc
 00101 101 Undead
(00101 110 Townsfolk)
(00101 111 Ogres)
Monster:
(00110 000 Human)
(00110 001 Wood Elf)
(00110 010 Dwarf)
(00110 011 Night Goblin)
(00110 100 Orc)
 00110 101 Undead (Dread King)
(00110 110 Townsfolk)
 00110 111 Ogres (Treeman)
Chariot:
(00111 000 Human)
(00111 001 Wood Elf)
(00111 010 Dwarf)
(00111 011 Night Goblin)
(00111 100 Orc)
 00111 101 Undead
(00111 110 Townsfolk)
(00111 111 Ogres)
Misc:
(01000 000 Human)
(01000 001 Wood Elf)
(01000 010 Dwarf)
 01000 011 Night Goblin (Fanatics)
(01000 100 Orc)
(01000 101 Undead)
(01000 110 Townsfolk)
 01000 111 Ogres (Playstation)
That's a fantastic find! I'll try to find a way to integrate this into the main article! Mikademus 21:25, 29 December 2009 (UTC)

DOC ARM File Explanation

Original ARM file info, taken from DOC111. It is older than Smurf and Mikademus' DOC project, though.

   				***EDITING IN DARKOMEN***
   
   
   What's in the file :
   
   Editing unit stats.
   Editing gold and magic items in the savegame files.
   Editing gold amount that can construct multiplayer armies with (eg 9000).
   
   NOTE : you need a hexeditor (or you can use debug if proficient with it) to make
          use of all this info.
   
   Not to be used unscrupulously!
   
   
   If there's anything else I'm missing that's important then ask and thou may receiveth.
   
   **********************************************************************************
   
   * Location of unit stats in savegame files.
   
   savegame files at x:\darkomen\savegame\
   
   
   * Location of multiplayer unit files = X:\darkomen\gamedata\2parm\
   
   hu_allmp.aud for human armies.
   gs_allmp.aud for greenskin armies.
   ud_allmp.aud for undead armies.
   
   (Note, in savegames the format is the same except there's some extra 
    values used which aren't important)
   
   ----
   
   after byte "DC 84" the first unit starts
   
   EXAMPLE :
   
   AA AA 00 00   BB 00 00 00   CC DD EE EE   FF 00 00 00
   GG GG GG GG   HH 00 un un   un un un un   un un un un   
   un un un un   un un un un   un un un un   un un un un
   un un un 00   00 00 II 00   JJ KK KK KK   00 00 00 00
   S1 S1 S1 S1   S1 S1 S1 S1   S1 LL LL LL   LL LL LL 00   
   00 MM 00 00   NN 00 hn hn   hn hn hn hn   hn hn hn hn
   hn hn hn hn   hn hn hn hn   hn hn hn 00   00 00 00 00   
   00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 S2   
   S2 S2 S2 S2   S2 S2 S2 S2   00 PP PP 00   00 PP 00 00   
   QQ 00 RR 00   ?1 00 ?2 00   ?3 00 ?4 00   SS SS TT UU   
   FF FF FF FF   FF FF FF FF   FF FF FF FF   FF FF FF FF   
   FF FF 00 00   00 ?6 00 ?7   VV 00 00 00
   
   BYTE MEANINGS : 
   
   AA AA = 11 00 = unit with you. 10 00 = don't have unit...
   BB = meaningless I think.
   CC = Mage number? (see below).
   DD = Number of armour shield slots.
   EE EE = Unit cost (see below).
   FF = Banner.
   GG GG GG GG = Psycholgy/Special abilities (see below).
   HH = Unit sprite.
   un = Unit name (can't be seen on opponent's computer in battle only yours)
   II = Unit name.
   JJ = 00 if good, 80 if eveil, 40 if neutral (eg traders).
   KK KK KK = Number of men in unit total/Number of men in unit alive/Number of Ranks.
   S1 = Stats of men/crew (see below).
   LL = see below.
   MM = 02 or FF, ?? (probably not important).
   NN = Hero sprite.
   hn = hero name (don't bother with this).
   S2 = Stats of leader/artillery (see below).
   PP = leader's armour/leader's weap/leader's(or artillery) missile.
   QQ = 00 or FF ?? (probably not important).
   RR = 3d head of leader.
   ?1, ?2... = used in singleplay for unit positioning/aren't important.
   SS SS = Experience.
   TT = Unit number in book for duplicates. eg 1st Dwarves have 01, 2nd Dwarves have 02...
   UU = Number of gold (initial and unsellable) shields.
   18 FF's = mage book/magic item slots (see below).
   VV = Profile in book. (banner/leaderhead/picture)
   
   
   **************************************************************************************
   
   
   CC : (Mage number ?)
   
   2 = Necromancer, Night Goblin Shaman(multi), Orc Shaman(multi), Night Goblin Champion Shaman
   3 = Orc Champion Shaman
   4 = Vamp lord, Master Necromancer, Orc Master Shaman
   5 = Necromancer Lord, Mannfred von Carstein, Hand Of Nagash, Dread King, Orc Shaman Lord 
   
        Note - Seems to have no effect at all. Most mages in multi have 2 regardless of level.
             - But is necessary for unit to cast spells. This and a mage book.
   
   Unit Cost :
   
   01 00 = 3    (1 * 3)
   10 00 = 48   (10 h or 16 * 3)
   00 01 = 768  (100 h or 256 * 3)
   00 10 = 12288 (1000 h or 4096 * 3)
   
   
   Psychology/Special abilities : 
   
   -Only sure on some of these. Just check values of the real units.
   -Used for Hate Greenskins, Hate dwarves, Cause fear, Fear elves, Never break/Immune to psych,
             Maybe Double wounds from fire, 360 degree vision, Ignore terrain, Magic resistance,
             Cannot be engaged and others.
   
   
   Statistics : 
   
   1st = Movement, 2nd = Weapon skill, 3rd = Ballistic skill, 4th = Strength,
   5th = Toughness, 6th = Wounds, 7th = Initiative, 8th = Attacks, 9th = Leadership.
   
       Note - normal values from 0 - A (10).
   
   
   LL :
   
   1st byte - 00 if not cavalry, 01 if have horse mount. 02 if boar.
   2nd byte - Armour type (see below).
   3rd byte - Weapon type (see below).
   4th byte - Unit type (see below).
   5th byte - PntVal (not really important I think...use value from similar unit)
   6th byte - Missile weapon (see below).
   
       Note : hero only needs armour, weapon and missile.
     
   
   Armour :
   
   00 = No shields.
   01 = 1 shield.
   02 = 2 shields.
   03 = 3 shields.
   04 = 4 shields.
   06 = 3 shields and Regenerate.
   07 = 2 shields and ???                   (Treeman's 'armour')
   08 = Wraith's 'armour' with no shields   (Normal weapon immunity I believe)
   11 = 2 shields.
   12 = 3 shields.
   13 = 4 shields.
   15 = 5 shields.
   
         Note - the 11 to 15 are only used for mounted units.
   
   
   Weapons : 
   
   00 = Hands/Claws       (nothing special I think)
   01 = Sword             (nothing special)
   02 = Two handed sword  (+2 S, strike last)
   03 = Halberd or Spear  (probably + 1 S)
   04 = Flail             (+2 S first round)
   05 = Wight blade       (does 1-3 wounds, magical)
   
   
   Unit type : 
   
   -affects horse or arrows pic in top right corner of profile
   -affects replacement cost for a man and armour increase.
   -affects special rules for unit on battlefield.
   
   Human Infantry = 08
   Wood Elf infantry = 09
   Dwarf Infantry = 0A
   Night Goblins = 0B
   All undead on foot = 0D
   Ogres = 0F
   Human Cavalry = 10
   Skeleton horsemen/Black grail = 15
   Mercenary Crossbowmen  = 18
   Wood Elf Archers = 19
   Night Goblin Archers = 1B
   Skeleton archers = 1D
   Human artillery = 20
   Skull catapult = 25
   Human Wizards = 28
   Undead wizards = 2D
   Dread King = 35 
   Monsters = 37
   Undead Chariot/Hand of Nagash = 3D  
   
      Note - Chariot has some unpredicatable effects including :  Cause crash when click on many
             parts of chariot unit icons in book, don't click on it at all! ; replacements cost is 
             screwed ; Doesn't auto-deploy ; crash when give items sometimes or just when buy item 
             and try to give to someone else ; can be used in battle though.  
           - Unit type normally affects the sound they make when for example they CHARGE!
   
   
   Missile weapons : 
   
   07 = Short Bow     (tiny range...about same as pistol!)
   08 = Normal Bow    (average range)
   09 = Elven bow     (great range, more than crossbow I think)
   0A = Crossbow
   0B = Pistol
   0C = Cannon
   0D = Mortar
   0E = Steam tank cannon (shorter range)
   0F = Rock lobber
   10 = Ballista
   11 = Screaming skulls 
   
   	Note: -giving missile ability to a unit requires that they have an 'archer' unit type ;
                  and a missile weapon. But remember, most units that aren't units wouldn't have
                  a 'shooting frame' for the sprite and so the game may crash...or you might see
                  their death frame instead when shooting!      
   
   
   
   Unit Level and Skulls : 
   
   70 17 = lev 4   (1770h = 6000 xp)
   B8 0B = lev 3   (0BB8h = 3000 xp)
   E8 03 = lev 2   (03E8h = 1000 xp)
   00 00 = lev 1   (0000h = 0000 xp)
   
   
   
   Magic item/Mage Book slots :
   
   1st 2 bytes determine which spells mage has.  
   
   1600 = Bright Book
   1700 = Ice Book
   1800 = Waaagh Book
   1900 = Dark Book  
   
   or any of the "FF FF" bytes can have the following for magic items.
   
   0100 = Grudgebringer
   0200 = Skabskrath
   0300 = Runefang
   0400 = Hellfire
   0500 = Storm Sword 
   0600 = Lightning Bolt  - don't use this one as causes crashes.
   0700 = Spelleater Shield
   0800 = Dragon Helm
   0900 = Shield of Ptolos
   0A00 = Enchanted Shield
   0B00 = Heart of Woe
   0C00 = Potion of Strength
   0D00 = Horn of Urgok
   0E00 = Ring of Volans  - can be selected but won't perform any action.
   0F00 = Banner of Arcane Warding
   1000 = Banner of Wrath
   1100 = Banner of Defiance
   1200 = Mork's War Banner
   1300 = Staff of Osiris
   1400 = Wand of Jet
   1500 = Book of Ashur
   
   
       Note - A unit needs a book number and the mage number to cast spells. Mage unit type isn't
              necessary like for shooting missiles. And sprite errors will also NOT occur if
              the unit doesn't have a spellcasting anim. The guy just doesn't move :) Pretty sure
              of this...well at least for some sprites.
            - Don't put a spell book it the other item slots (afters the first one) otherwise a
              crash will more thatn likely occur when selecting the 'book' item.
   
   **********************************************************************************
   
   GOLD LOCATION IN SAVEGAME FILES :
   
   offset : 00028C to 00028D  (2 bytes)
   
   MAGIC ITEMS LOCATION IN SAVEGAME FILES : 
   
   offset : offset : 00028E to 0002XX (1 byte each)
   
   ***********************************************************************************
   
   
   To change gold amount that you can construct multiplayer armies with : 
   
   In engrel.exe.
   
   offset 0043FC - D  for 9000 pts selection = normally 28 23
   offset 00440C - D  for 7000 pts selection = normally 58 1B 
   offset 00441C - D  for 5000 pts selection = normally 88 13
   offset 00442C - D  for 3000 pts selection = normally B8 0B
   
   
   
   ***********************************************************************************
   
   Compiled by Thorgrim (thorgrim@iinet.net.au)
Personal tools
communication