31/03/2008 19:12. 31/03/2008 19:12 .. 07/03/1992 22:52 9.027 ARRAKIS.AGD 14/02/1992 22:33 8.998 ARRAKIS.HSQ 20/03/1992 14:00 12.210 ARRAKIS.M32 14/01/1992 16:17 5.761 ATTACK.HSQ 02/04/1992 15:16 20.172 BACK.HSQ 07/03/1992 22:52 5.553 BAGDAD.AGD 29/05/1991 17:29 5.523 BAGDAD.HSQ 20/03/1992 14:01 7.522 BAGDAD.M32 14/01/1992 15:41 16.809 BALCON.HSQ 22/12/1991 02:48 14.103 BARO.HSQ 16/02/1992 00:59 29.142 BOOK.HSQ 02/11/1991 20:08 18.618 BOTA.HSQ 28/10/1991 18:43 14.502 BUNK.HSQ 02/04/1992 15:54 8.670 CHAN.HSQ 31/10/1991 20:29 3.244 CHANKISS.HSQ 13/01/1992 02:26 10.824 COMM.HSQ 08/04/1992 00:28 4.525 COMMAND1.HSQ 04/04/1992 04:11 4.587 COMMAND2.HSQ 07/04/1992 01:11 4.656 COMMAND3.HSQ 07/04/1992 01:57 5.550 CONDIT.HSQ 28/12/1991 20:15 10.524 CORR.HSQ 06/04/1992 19:23 12.763 CREDITS.HSQ 06/04/1992 02:41 7.829 CRYO.HSQ 05/01/1992 23:21 45.408 DEATH1.HSQ 05/01/1992 23:21 44.024 DEATH2.HSQ 05/01/1992 23:21 42.098 DEATH3.HSQ 07/04/1992 01:57 4.222 DIALOGUE.HSQ 13/05/2000 21:49 50 DUNE.BAT 06/04/2008 22:19 9.565 DUNE21S0.SAV 06/04/2008 16:58 13.416 DUNE21S1.SAV 14/04/1998 19:45 13.601 DUNE21S2.SAV 06/04/2008 20:01 9.610 DUNE21S3.SAV 05/04/2008 23:14 9.720 DUNE21S4.SAV 27/03/1992 01:30 9.479 DUNE386.HSQ 30/03/1992 01:22 1.760 DUNEADL.HSQ 09/04/1992 20:36 2.780 DUNEAGD.HSQ 04/04/1992 04:13 963 DUNECHAR.HSQ 30/03/1992 01:21 941 DUNEMID.HSQ 25/02/1992 02:13 704 DUNEPCS.HSQ 13/04/1992 12:14 74.341 DUNEPRG.EXE 12/11/1991 19:21 21.874 DUNES.HSQ 14/11/1991 19:15 14.068 DUNES2.HSQ 14/01/1992 18:35 18.866 DUNES3.HSQ 07/04/1992 20:07 3.174 DUNESDB.HSQ 27/03/1992 01:29 9.338 DUNEVGA.HSQ 13/04/1992 12:45 6.514 DUNEVRF.EXE 02/04/1992 16:03 10.113 EMPR.HSQ 07/12/1991 19:04 7.007 EQUI.HSQ 22/12/1991 02:48 15.683 FEYD.HSQ 18/01/1992 17:04 16.274 FINAL.HSQ 28/10/1991 17:30 24.607 FORT.HSQ 10/01/1992 16:39 14.284 FRESK.HSQ 02/04/1992 16:26 28.711 FRM1.HSQ 02/04/1992 16:26 24.080 FRM2.HSQ 02/04/1992 16:26 18.417 FRM3.HSQ 24/08/1991 18:32 4.009 GENERIC.HSQ 03/02/1991 14:46 4.741 GLOBDATA.HSQ 02/04/1992 15:50 10.002 GURN.HSQ 23/12/1991 19:48 10.858 HARA.HSQ 02/04/1992 16:04 12.324 HARK.HSQ 02/04/1992 04:59 447 HARK.SAL 02/04/1992 15:45 11.511 HAWA.HSQ 02/04/1992 04:39 14.995 ICONES.HSQ 29/10/1991 19:13 4.672 IDAH.HSQ 13/04/1992 12:14 10.552 INSTALL.EXE 10/10/1991 20:33 15.155 INTDS.HSQ 21/02/1992 20:33 9.472 JESS.HSQ 15/11/1991 12:15 21.411 KYNE.HSQ 02/04/1992 15:39 6.991 LETO.HSQ 06/04/1992 23:38 2.437 LOGO.EXE 06/04/1992 02:32 18.417 LOGO.HNM 21/09/1991 01:46 15.984 MAP.HSQ 19/09/1991 16:44 5.146 MAP2.HSQ 28/01/1992 20:45 12.246 MIRROR.HSQ 15/11/1991 15:27 8.700 MOIS.HSQ 07/03/1992 22:52 5.812 MORNING.AGD 03/07/1991 00:01 5.787 MORNING.HSQ 20/03/1992 23:51 4.950 MORNING.M32 17/02/1992 13:57 13.907 ONMAP.HSQ 14/12/1991 17:01 2.993 ORNY.HSQ 07/10/1991 18:45 2.369 ORNYCAB.HSQ 17/12/1991 20:49 3.718 ORNYPAN.HSQ 15/12/1991 03:50 9.311 ORNYTK.HSQ 05/03/1992 14:03 493 PALPLAN.HSQ 11/01/1992 18:19 11.907 PAUL.HSQ 13/08/1991 02:59 14.360 PERS.HSQ 08/04/1992 00:31 17.476 PHRASE11.HSQ 08/04/1992 00:31 14.888 PHRASE12.HSQ 07/04/1992 01:24 19.047 PHRASE21.HSQ 07/04/1992 01:24 16.338 PHRASE22.HSQ 07/04/1992 03:33 19.908 PHRASE31.HSQ 07/04/1992 03:33 16.354 PHRASE32.HSQ 29/03/1992 19:39 19.275 POR.HSQ 13/01/1992 02:26 9.525 PROUGE.HSQ 05/04/1992 06:03 130.328 PRT.HNM 18/02/1992 19:49 15.410 SD1.HSQ 18/02/1992 19:49 11.992 SD2.HSQ 18/02/1992 19:49 16.473 SD3.HSQ 20/02/1992 23:36 3.567 SD4.HSQ 04/04/1992 18:36 25.259 SD5.HSQ 02/04/1992 05:11 10.546 SD6.HSQ 02/04/1992 05:11 12.621 SD7.HSQ 02/04/1992 05:11 23.865 SD8.HSQ 19/02/1992 16:09 2.986 SD9.HSQ 19/02/1992 16:10 10.880 SDA.HSQ 06/04/1992 22:07 49.687 SDB.HSQ 08/03/1992 12:03 10.802 SEKENCE.AGD 19/05/1991 19:44 10.774 SEKENCE.HSQ 20/03/1992 14:01 13.892 SEKENCE.M32 21/09/1991 18:34 20.814 SERRE.HSQ 09/10/1991 17:13 43.574 SHAI.HSQ 09/10/1991 17:13 41.838 SHAI2.HSQ 02/11/1991 20:09 4.392 SIET.SAL 14/12/1991 18:42 5.468 SIET0.HSQ 05/08/1991 23:13 32.634 SIET1.HSQ 07/03/1992 22:43 7.507 SIETCHM.AGD 12/06/1991 16:30 7.477 SIETCHM.HSQ 20/03/1992 18:09 7.344 SIETCHM.M32 06/01/1992 19:47 8.609 SKY.HSQ 02/04/1992 16:06 11.118 SMUG.HSQ 29/03/1992 17:20 42.234 STARS.HSQ 02/04/1992 15:52 11.043 STIL.HSQ 11/12/1991 16:54 2.139 SUN.HSQ 19/08/1991 00:29 21.837 SUNRS.HSQ 03/02/1991 15:06 792 TABLAT.BIN 14/01/1992 18:29 5.010 VER.HSQ 02/04/1992 14:04 660 VERBIN.HSQ 20/12/1991 18:04 27.724 VILG.HSQ 20/12/1991 17:59 1.937 VILG.SAL 12/09/1991 19:22 22.125 VIS.HSQ 07/03/1992 22:53 2.946 WARSONG.AGD 28/02/1992 02:00 2.919 WARSONG.HSQ 20/03/1992 17:56 4.285 WARSONG.M32 07/03/1992 22:53 1.935 WATER.AGD 29/05/1991 17:29 1.905 WATER.HSQ 20/03/1992 14:01 3.471 WATER.M32 07/03/1992 19:43 5.618 WORMINTR.AGD 08/03/1992 02:07 6.501 WORMINTR.HSQ 20/03/1992 18:09 8.274 WORMINTR.M32 07/03/1992 23:47 8.600 WORMSUIT.AGD 13/05/1991 15:08 8.283 WORMSUIT.HSQ 20/03/1992 14:02 5.074 WORMSUIT.M32 02/04/1992 04:59 1.859 PALACE.SAL 143 fichier(s) 1.902.320 octets
31/03/2008 19:12. 31/03/2008 19:12 .. 22/06/1993 20:12 78.700 DNCDPRG.EXE 23/06/1993 13:12 397.794.384 DUNE.DAT 13/03/1993 06:19 6.486 DUNE.EXE 30/03/1993 14:52 22.697 INSTALL.EXE 20/02/1993 18:49 30 README.BAT 13/03/1993 06:05 7.037 README.DOC 6 fichier(s) 397.909.334 octets
with palette | without palette | |||
attack.hsq back.hsq balcon.hsq baro.hsq book.hsq bota.hsq bunk.hsq chan.hsq chankiss.hsq comm.hsq corr.hsq credits.hsq cryo.hsq |
death1.hsq empr.hsq equi.hsq feyd.hsq final.hsq fort.hsq fresk.hsq frm1.hsq frm2.hsq frm3.hsq gurn.hsq hara.hsq hark.hsq |
hawa.hsq idah.hsq intds.hsq jess.hsq kyne.hsq leto.hsq mirror.hsq mois.hsq onmap.hsq orny.hsq ornycab.hsq ornypan.hsq ornytk.hsq |
paul.hsq pers.hsq por.hsq prouge.hsq serre.hsq shai.hsq siet1.hsq smug.hsq stars.hsq stil.hsq sunrs.hsq ver.hsq vilg.hsq vis.hsq |
death2.hsq death3.hsq dunes2.hsq dunes3.hsq dunes.hsq icones.hsq palplan.hsq shai2.hsq siet0.hsq sun.hsq sky.hsq |
BEGIN offset of "end of pal definition" (2 bytes) ... ... n sub-palette are now defined a sub palette is defined by: - the offset of the sub-pal in the general palette. (1 byte) - the number of colors in the sub palette. (Nb-col) (1 byte) - definition of Red-Green-Blue values for each of the Nb-col colors. (Nb-col * 3 bytes) (the RGB values are only defined on 6 bits, so you need to shift left by 2 (multiply by 4) to get the correct value) ... ... an End-of-bloc delimiter let you check the end of palette definition (value: 0xFFFF, 2 bytes) Take care, some garbage bytes may be following...(to realign on 4 bytes ?) ... ... Now is comming a list of index, to allow you to define where each sprite start and end. The base for these offsets is right here (before reading the first offset). n offsets ( n * 2 bytes ) ... ... n sprite data blocs structured like this: -width (and compression indicator on the most significant bit)(2 bytes) -height (1 byte) -base offset of the sub-pal to use (1 byte) -sprite content. If sprite content isn't compressed: just read bytes until you fill all the surface (knowing width and height). 1 byte is coding 2 pixels (half a byte indicate the pal-offset from the base offset of the sprite. Take care that at end of each line can exist garbage bytes ( to realign on 4 bytes ?) If content is compressed: you need to apply a sort of RLE decoding process. read a repeat-indicator (R) (1 byte). If repeat-indicator is negative so repeat (-R) times the following byte (2 pixels). If repeat-indicator is positive so read the R bytes following and draw them (R * 2 pixels). ENDHere is a source of dump program.
BEGIN n1 offsets indicating the place of each room in the file. (n1 * 2 bytes) ... n1 data blocs describing a room structured like this: - number of position markers (1 byte) - n2 drawing commands data blocs (size depend the drawing command) - end of room description indicator: 0xFFFF (2 bytes) ... ENDdifferent drawing command exists. They are like this: If its a normal sprite drawing command:
BEGIN number of the sprite (in the related graphic file) to draw. (value > 0x01) (1 byte) modificator (1 byte) x position (1 byte) y position (1 byte) sprite palette offset override (1 byte) END modificator is a bit field. In this case it work like this: MSB bit_7 0 bit_6 flip Left-Right indicator bit_5 rotate 180 degree indicator bit_4 reduction factor bit2 (MSB) bit_3 reduction factor bit1 bit_2 reduction factor bit0 bit_1 if set you need to add 256 to x position bit_0 0
BEGIN number of the sprite = 0x01 (1 byte) modificator (1 byte) x position (1 byte) y position (1 byte) sprite palette offset override (1 byte) END modificator is a bit field. In this case it work like this: MSB bit_7 0 bit_6 flip Left-Right indicator bit_5 rotate 180 degree indicator bit_4 reduction factor bit2 (MSB) bit_3 reduction factor bit1 bit_2 reduction factor bit0 bit_1 if set you need to add 256 to x position bit_0 0If its a shape drawing command, there is 2 possibilities:
BEGIN base color index (1 byte) modificator with bit_7=1 and bit_6=0 (1 byte) (bit_0 to bit_6 = ??) horizontal gradient (value related to the width of the vertical bands - if value is 0 there is no horizontal gradient(1 byte) vertical gradient (value related to the height of the horizontal bands - if value is 0 there is no vertical gradient(1 byte) n points to build the polygone: x (2 bytes) (MSB bits 14 and 15 probably are some kind of trigger to stop reading points, for now, each time I read a point, I'm addind the x position MSB byte &(0xF0) in a counter. I stop reading points when its 0xB0 or more). y (2 bytes) ENDline:
BEGIN base color index (1 byte) modificator with bit_7=1 and bit_6=1 (1 byte) (bit_0 to bit_6 = ??) 2 points to build the line: x1 (2 bytes) y1 (2 bytes) x2 (2 bytes) y2 (2 bytes) ENDbase color index have bit_7 (MSB) always set to 1 to make difference with the other command types.
warsong.agd wormintr.agd water.agd wormsuit.agd sietchm.agd sekence.agd morning.agd arrakis.agd bagdad.agd
warsong.hsq water.hsq wormintr.hsq wormsuit.hsq sietchm.hsq sekence.hsq morning.hsq arrakis.hsq bagdad.hsq
warsong.m32 water.m32 wormintr.m32 wormsuit.m32 sietchm.m32 sekence.m32 morning.m32 arrakis.m32 bagdad.m32
sd1.hsq sd2.hsq sd3.hsq sd4.hsq sd5.hsq sd6.hsq sd7.hsq sd8.hsq sd9.hsq sda.hsq sdb.hsq
globdata.hsq map2.hsq map.hsqGLOBDATA.HSQ seams to contain trigonometrics values and thing needed to display the globe. MAP.HSQ contain information about the map when displaying situation. (it is possible to directly use a uncompressed version) here is what we have in the map.hsq file once we managed to find the end of each line. the following big map is build using the same MAP.HSQ but with an interpolation process.
command1.hsq command2.hsq command3.hsq condit.hsq dialogue.hsq dune386.hsq duneadl.hsq duneagd.hsq dunechar.hsq dunemid.hsq dunepcs.hsq dunesdb.hsq dunevga.hsq phrase11.hsq phrase12.hsq phrase21.hsq phrase22.hsq phrase31.hsq phrase32.hsq generic.hsq logo.hnm tablat.bin prt.hnm verbin.hsq