Heroes of Might and Magic file formats

General remarks

It is worth noting that HoMM I, II and III share quite a lot of general characteristics regarding data files - both their layout and internal structure. While they are different in detail, the idea remains essentially the same and knowing one set of formats makes learning the rest very easy. All the formats are quite simple and logical, except maybe saved games, that, especially in HoMM III, look like some form of automated object serialization rather than a proper file format - which is expected, however unfortunate.

All HoMM files use little-endian, two's complement number format for integers, at least in the x86 game versions - that might not be the case for the Mac OS version of HoMM I (bi-endian architecture), Mac OS and RISC OS (most likely big-endian) version of HoMM II and Mac OS and Dreamcast (probably big-endian too) versions of HoMM III. GameBoy Color versions of HoMM I and II should be little-endian, as is the Z80 processor clone used in GBC. However, this is all just guessing - if you happen to have such a rare version of HoMM, please contact me, I'd be really interested in its inner workings.

As a side note, I dare to say that the small group of people working on WoG, H3DefTool, DefMaker, DefView and ResEdit should feel ashamed for their complete lack of cooperation with anyone willing to improve their tools. I'd praise them for their involvement in reverse engineering HoMM3, but looking at how mediocre and unwieldy the tools they released for the public are and how impossible it is for anyone with a clue about user interface design to make them any better, I just can't.

NOTE: writing decent descriptions of file formats takes as much time as actually researching them, if not more, so what you see below is just what I manage to write in my free time, not what I actually know about HoMM files, which is quite a bit more. I'll try to add a description every couple of days, but some might take a bit longer (especially maps). Just be patient.

HoMM1

Stay tuned, I'm working on that…

HoMM2

HoMM3

 
homm/file-formats.txt · Last modified: 2008/09/11 10:05 by enleth
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki