Hey all, long time AOW player (and hitherto anonymous site user) here.
Can anyone help me with the format of the release.hss file? I've consumed the excellent ILB documentation athttp://www.jongware.com/aow/aow1.html, and I've now noticed that release.hss contains several ILB files within it, including several core map tiles. I can use a little program to scan for "\x04ILB" and extract the files but it would be much nicer to know how to look them up properly.
The one clue I have so far is the front of the file appears to contain a table of contents of the form:
Line 0x90 has the first two 8-byte entries, and line 0xe30 the last two. The start of the first ILB file is shown at position 0xe55. In the entries, the first 2 (or 4 bytes) appear to be an incrementing id number. The last 4 bytes are an offset of sorts. The offsetsroughly correspond with the locations of ILB files plus a constant (approximately the size of this table of contents). But they don't line up exactly. There are gaps of around 20 bytes between files.
If you're wondering why, it's because I've got a modest game engine project heavily inspired by AOW, which can (optionally) reuse some of the same resources. Many of you are probably thinking, "oh great, another overly-ambitious amateur game attempt doomed to eventual abandonment!". Such cynicism is perfectly reasonable and I share it myself (though, of course, the project will never be abandoned; it'll simply be put into indefinite suspension). Nonetheless, as long as I'm having fun with it, none of the effort is wasted. And if someone can help me with a few fun technical details, then I'd be most grateful.
(I'm not prepared to give a demo, yet, but I would be delighted to discuss what I'm doing. I can show the code too, if you like.)
Updated 20170423 - I've made a lot of progress figuring out the HSS format.
Can anyone help me with the format of the release.hss file? I've consumed the excellent ILB documentation at
The one clue I have so far is the front of the file appears to contain a table of contents of the form:
00000080 41 53 45 02 02 00 01 01 03 81 b6 01 00 00 00 00 |ASE.............|
00000090 01 00 00 00 47 0a 00 00 02 00 00 00 9a 14 00 00 |....G...........|
000000a0 03 00 00 00 ed 1e 00 00 04 00 00 00 40 29 00 00 |............@)..|
... ...
00000e20 b3 01 00 00 58 f8 0f 00 b4 01 00 00 4b fd 0f 00 |....X.......K...|
00000e30 b5 01 00 00 8c fe 0f 00 b6 01 00 00 86 ff 0f 00 |................|
00000e40 53 01 02 00 03 02 00 07 04 08 0a 0b 00 00 00 01 |S...............|
00000e50 00 00 00 02 fe 04 49 4c 42 00 16 50 55 00 00 80 |......ILB..PU...|
Line 0x90 has the first two 8-byte entries, and line 0xe30 the last two. The start of the first ILB file is shown at position 0xe55. In the entries, the first 2 (or 4 bytes) appear to be an incrementing id number. The last 4 bytes are an offset of sorts. The offsets
If you're wondering why, it's because I've got a modest game engine project heavily inspired by AOW, which can (optionally) reuse some of the same resources. Many of you are probably thinking, "oh great, another overly-ambitious amateur game attempt doomed to eventual abandonment!". Such cynicism is perfectly reasonable and I share it myself (though, of course, the project will never be abandoned; it'll simply be put into indefinite suspension). Nonetheless, as long as I'm having fun with it, none of the effort is wasted. And if someone can help me with a few fun technical details, then I'd be most grateful.
(I'm not prepared to give a demo, yet, but I would be delighted to discuss what I'm doing. I can show the code too, if you like.)
[This message has been edited by ejrh (edited 04-22-2017 @ 11:16 PM).]