Jump to content

Rewriting Cryo's Dune 1 : it seems possible !!!

Monsieur OUXX

Recommended Posts

This app is in the very first posts of this thread and its writer even provided the core sound code.

Uh, true. I kind of double-backed with that.

anyway, adlib gold recordings:










Some tunes are shorter than the adlib/sb opl2 versions, unfortunetaly. There's a lot of bass on them, not sure if thats due to the recording, or if the real card outputs like that. Also, nice reverb effects on all of them (good 4 years before the Soundblasters could do this kind of thing).

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 months later...
  • 5 months later...

Hi. I have been following this project, and I just wanted to know if it's still on work and if some substantial progress has been made, since there seems to be a lack of communication and progress in this topic compared to what used to be before.

From what I can tell, an open-source rewriting of a HNM-based Cryo game like Dune is truly a great thing to have for the homebrew community, and if I'm not mistaken, once it's finished, it could be a starting point not only to have Dune ported to other platforms, but even to continue work on the engine to support advanced HNM-based games like MegaRace, Dragon Lore and Lost Eden (if there's people interested in the matter, that is).

So, keep the good work, guys!

Link to comment
Share on other sites

  • 2 weeks later...

I just wanted to know if it's still on work and if some substantial progress has been made, since there seems to be a lack of communication and progress in this topic compared to what used to be before.

It's not going very fast... At least, the dumper is available for anyone to use the source code.

The next things to do would be to make the music decoder's code more accessible or portable.

If someone could understand the palette files it'd also be great.

I've started writing a text version (no output, just textual return) of the game in Flash (Actionscript 3.0) to test the engine and then make it portable to any language. But, once again, it doesn't go fast!

it could be a starting point not only to have Dune ported to other platforms, but even to continue work on the engine to support advanced HNM-based games like MegaRace, Dragon Lore and Lost Eden

Yep. It would make it possible to add a Dune/Cryo module to ScummVM. It've started playing with the code some time ago and it's really not hard to do such a thing. ScummVM has already been ported to almost every possible platform, portable consoles in particular (PSP, Nintendo DS...)

And yes indeed, it opens the door to all other Cryo games, even though reading HNM videos is another step!

Link to comment
Share on other sites

It's not going very fast... At least, the dumper is available for anyone to use the source code.

The next things to do would be to make the music decoder's code more accessible or portable.

If someone could understand the palette files it'd also be great.

If anyone is interested in the dumper, try to look at http://www.bigs.fr/dune_old since the old address doesn't work (Bigs' site is under maintenance, and I've asked him if he could send me his dumper since I have lost it on my local computer).

About dynamic palettes, He told me that he thinks they are hard-coded in the game engine binary, no separate hsq files for them.

And yes indeed, it opens the door to all other Cryo games, even though reading HNM videos is another step!

Well, about this matter, I hope to bring some news, even if they are not that big ;)

I managed to contact Vladimir "VAG" Gneushev, the author of HNM1 page on the Multimedia Wiki, and I asked him if he had already implemented some kind of player/converter. Unfortunately he did not, but he developed a decoder prototype which generates the stills from a given HNM1 video, dumping the frames in TGA format. He enhanced a bit his program in order to extract the soundtrack (if present) which is stored in VOC format. Attached is a zip file containing:

1) hnm1dump_gui.exe, the windows executable of the program using file dialogs to select hnm videos.

2) hnm1dump_gui.cpp, its relative source

3) hnm1dump_console.cpp, same source but without specific windows gui part, in order to compile it on other platforms and run it from console.

Note that some HNM videos in dune.dat have the same issue of some hsq-compressed sprites: since they depend on the time of the day, they use a palette defined by the game engine dynamically. The resulting dumped frames will be all black. I'm trying to force a grey palette, just as Bigs did for the sprites, to see if some shapes appear.

VAG also told me that hsq files can be unpacked using LZunpack function in his source.



Link to comment
Share on other sites

Just to note, using VAG HNM dumper I have discovered that actually there is a hidden video in the CD version of Dune, not showed in the game. It's the SEQQ.HNM file, and it's a footage of the Harkonnen-Sardaukar attack on Arrakis from the Lynch's movie. In facts, I always wonderered why, in the description of the Harkonnen in the book of Dune, there is a video with scenes of Fremen raids... It's surely more appropriate this hidden video, while the other is best suited for the page describing Fremen attack techniques. It's amazing how, even after all this years, this game continues to surprise me :)


Link to comment
Share on other sites

  • 2 months later...

I apologize for bumping this old thread.

By any chance, does anyone have working links to download the above Adlib Gold or OPL-3 versions of the Dune soundtrack? I've wanted to hear it for years, the DOSbox versions never seemed quite like I remembered, but of course now it's been so long I can't remember exactly what they sounded like besides the DOSbox versions.

Alternately, is there some place to find these tools that would allow me to unpack and play the original files? Apparently all of the files attached in this thread have been archived/inaccessible via FTP.

Thanks so much for your assistance.

Link to comment
Share on other sites

Ok, I found this site.


To open that document, use Korean encoding. I'll include the text in spoilers here.


  쩟컴?쩟컴?敏컴?敏컴?쩟컴?悶    敏컴?悶  ?    敏컴?    悶  敏컴?

  납  ?납  ?납  ?납    납  ?납    납  ?납  ?    납  ?   캑? 납  ?

  냉컫?납  ?납  ?읒컫?냉컴?납    냉컴?냉컴?    납  ?    납  냉컴?

  납 읏 납  ?납  ?   납 납    납    납  ?납        납  ?悶  납  납  ?

  잎  ?좋컴?읒컴?읕컨?잎    읒컴?잎  ?잎        읒컴?잎 컨좔 읒컴?


                 Written by Roman Dolejsi (RDOS of DIMENSION)

                               August 27, 1996

                Last update: September 5, 1996

      This is the documentation belonging to and explaining the use of

                            RDOSPLAY version 0.17e

                  OPL2/OPL3 music module player for MS-DOS

  TOPICS covered in this document:

















 Although RDOSPLAY has been tested on several systems, I cannot guarantee that

it is bugless. Therefore I do not  take  responsibility for any damage directly

or indirectly caused by RDOSPLAY as a result of known/unknown  errors in it  or

errors caused by its access to your devices.



 Sorry, english is not my  native language. However, I wrote this nice docy in

english without any help. I APOLOGIZE for any mistakes in the document. Take it

easy... Nobody is perfect.. :-)



 RdosPlay is a OPL2/OPL3 music module player for IBM PC  compatible  computers

running MS-DOS operating system. This  means  that  you  can use it for playing

your  favorite  melody  from some music editor, demo or game. It is FIRST known

generic OPL player. I've coded it because of lack of any player of this type in




 RdosPlay is coded in  pure 286-assembler  with  no 386+ optimalizations. This

means  you  can  use  your  old 286 and Adlib card for background playing while

doing some work. So The only required things  it needs  is  OPL2/3/4 compatible

card (Adlib or higher), 286 or higher and about 192kB of free mem. For  graphic

analyzers you would probably need at least 386-sx (not tested). The other thing

you need is some music module of course :-)



- first  you have to make some directory on your drive. Then you have to unpack

 there archive file RPLYxyyz.ZIP. Don't forget  to  unpack it WITH directories

 otherwise you would get a pretty nice garbage :-)

 (you probably did all this when you read these lines :-)

- RDOSPLAY pack should consist of these files:

   RDOSPLAY.EXE - Main file - OPL player

   RDOSPLAY.DOC - Documentation for RdosPlay (this file)

   RDOSPLAY.REV - RDOSPLAY changes/revision history file

   FILE_ID.DIZ  - bbs file_id header

   FILES*      - music module examples

- now you have RdosPlay successfully installed :-)



 Rdosplay  uses  your  sound  card's  OPL chip  for  producing synthetic music

typical  for  these  chips. For  OPL2 (mono) musics it can also simulate stereo

by  distributing  channels  in left/right speakers. It's not possible with OPL3

musics  which  do  their  own (precise) panning. OPL2 stereo and OPL3 modes are

both possible only on OPL3 chip of course.

 When  producing  music  RdosPlay  also  shows  some  analyzers  to make world

brighter :-). This  can  be  supressed  when  using slow computers or slow OPL2

emulation (GUS users).



While RdosPlay is running, you can use these keys:

 PgUp - increase track of music (for ADL only)

 PgDn - decrease track of music (for ADL only)

Dialog line looks as following:

 RDOSPLAY.EXE [/p] [/t] [/l] <musfile.ext>


   /pXXX:Y - specifies port and type of OPL chip (avoiding autodetection)

             XXX: hexadecimal base port of the chip

               Y: 1 = OPL2 (Adlib compatible)

                  2 = OPL3 (Yamaha YM262 stereo chip)

                  3 = OPL4 (Yamaha OPL4 stereo chip)

   /tXXX   - specifies track to be played (for ADL format only, 1-118)

   /s      - enables OPL3-stereo for OPL2 musics (omitted with OPL3 musics)

   /lX     - enables LED-meter on LPT port

             X: port number, where:

                0 = 3BC (EGA's LPT port)

                1 = 378 (standard LPT1 port)

                2 = 278 (standard LPT2 port)



 RdosPlay  now  supports these formats (where are they and how to get them you

can read in another section):

 ?ADL (Adlib format similar to XMI)

 ?AGD (Herad system - DUNE game)              [OPL3]

 ?AMD (Amusic tracker packed files)

 ?CAL (ShadowLands game)

 ?D00 (JCH / Vibrants ver 1, 2 & 4)

 ?FXM (Fuxoft AY music chip language)

 ?HSC (HSC music composer)

 ?LDS (Loudness system - Zeppelin game)

 ?LEM (SI system - XMasLemmings game)

 ?MUS (First Samurai game)

 ?PLX (Palladix system - Logical game)

 ?RAD (Reality ADlib tracker)

 ?RAW (raw adlib data - Starport demo)

 ?SAT (SAdT music composer)

 ?SDB (Herad system - DUNE / KGB games)

 ?SIG (SI system 2 - DIZZY games)

 ?VIB (JO/Vibrants player)

RdosPlay also supports some internal file packers. They are:

 ?HSQ (mainly with SDB,AGD - Dune game)

 ?SQX (mainly with SDB - KGB game)

 ?ICE (mainly with CAL - ShadowLands game)




  This is  format  used  in  many games. Each  file  can  consist of up to 118

"tracks"  and  every  track  can  contain  separate  music. Default  track  for

RdosPlay is track number 1. Track can be  selected  with parameter /t. RdosPlay

will pack all used tracks so unused tracks won't be in selection field.


  This  extension  covers  files from Amusic tracker by Elyssis. There are two

types  of them. Packed and non-packed. RdosPlay currently supports packed files



  This  standard  is  used  in  ShadowLands  game.  Look  there  and find file

TUNE.CAL. It's ICE-packed file and RdosPlay has internal ICE-unpacker.


  These  files  are  for  JCH / Vibrants player. They are created in Vibrant's

editor  named  EdLib by packing standard *.EDL editor's files. Look for them in

intros or in that editor. Files for player ver 2+ begin with 'JCH' sign.

  Example: intro KUKKO2.EXE, offset B2A (module named CROONER.D00).


  These  files  are  special blocks of music code used in Fuxoft SoundTrack on

ZX Spectrum computer. This  computer  has  3-channel sound chip named AY3-8910.

RdosPlay  has  FXM interpreter and AY->OPL2 convertor. All the files that exist

in this format are supplied with RdosPlay standard distribution.


  HSC files are commonly used in short demos and intros. The source from where

they  came  is  mainly  HSC composer  which  is  available  on  anonymous FTP's

on I-net. There  you  can  get  most of these files (about 100 modules). If you

grab some file its extension must be HSC otherwise RdosPlay won't recognize it!


  These files are used in LOUDNESS system. Look  in  ZEPPELIN game's SOUND

directory and take all *.DAT files.


  These  files  are  used  in X-Mas Lemmings game. Grab  them  yourself. Their

sign is [0]=1C 52.


  This standard is used in FIRST SAMURAI game. Take file ADLIB.MUS.


  This standard is used in LOGICAL game. All  music  files  are stored in file

LOGICAL.EXE. You have  to  grab  them  from this file. Here are file positions:

13310, 165C0, 1B160, 1F320, 50360, 50550, 50730, 50990, 50B90, 50D10, 50FA0,

510F0, 51310, 56620, 59F90.


  This format came with Reality ADlib Tracker. Tunes often have  RAD extension

and if not, there is a 'RAD' sign at the beginning of the file.


  This format is very simple. It  consists  of  commands  directly sent to OPL

port. RAW format is used in STARPRT2.EXE intro (for example).

  format:   [0]=db     'RAWADATA'                 ... file identifier

            [8]=dw     clock                      ... clock (int8) speed

           [10]=dw     data_size dup (data)       ... adlib data

           [..]=dw     0ffffh                     ... end of file

  data: parameter, command.   command==0: data==n ... wait n times.

                              command==2: data==0 ... set speed (next word)

                              command==2: data==1 ... set OPL3 port A default

                              command==2: data==2 ... set OPL3 port B default

  This format is also generated by RAC (Rdos Adlib Catcher).


  These  files are made in SAdT music composer. They begin with 'SAdT' sign.


  These files are used in DUNE game. Look  in  game's directory and search for

*.SDB  or  *.AGD  files.  These  are  HSQ-packed.  You  can  unpack  them  with

UNHSQ (RDOS production)  or  use  them  as  they are. RdosPlay has internal HSQ

unpacker and recognizes both packed or unpacked modules. *.AGD files have to be

played on OPL-3  stereo  music  chip (that's why /s parameter doesn't work with

them), *.SDB are for standard AdLib (OPL-2) card.


  These  files  are used in DIZZY games. They are stored in main .EXE file and

you have to grab them. Here are  their respective filenames, offsets and sizes:

 FFOOD=6464E,3B38  KWIKSNAX=73C2E,2BC4  MAGICLND=689EE,4508  YOLK=6571E,33FD


  This is standard used in player by JO / Vibrants.

  Example: intro COPPER.EXE, offset 8990.



* RdosPlay have not detected my soundcard although I have OPL2 compatible card.

- You have to set sound card manually (ie. /p parameter).

- GUS users with SBOS running may use /p388:1.

* RdosPlay sounds HORRIBLE on GUS !

- That's the fault of OPL2 emulation on GUS, not mine. You have to stay with it

 or to wait until REMUS (Rdos Emulation Sound system) is released. It will

 bring a brand new OPL3 emulation for your GUS (hopefully).

* I have D/A converter (PC Speaker), does RdosPlay support it ?

- No, It does not. You have to wait until REMUS is released.

* I have some SAT modules and it seems some of them aren't played correctly

 with RdosPlay.

- Yes, it's the fault of RdosPlay's SAT playing routine. I have to improve it.

* What about a fileselector in RdosPlay ?

- It's currently in development, wait for new RdosPlay release.

* Why are sometimes FXM modules played incorrectly (i mean drums) ?

- Not 100% right FXM interpreter initialization causes that noise channel of

 adlib card is not initialized at all. FXM player is undergoing recontruction

 now. Wait for another release.



Each time I have a new version of RDOSPLAY available, I'll upload it to

this place:

ftp://sorry.vse.cz/dimension   (Dimension FTP site in Prague, Czech Republic)

http://sorry.vse.cz/dimension   (Dimension Inet HeadQuarters, Czech Republic)

RdosPlay will be probably also available at ftp.cdrom.com and ftp.sunet.se

FTP archives.

  Ask your local Internet or FTP expert on how to reach them.

Another way is to visit RdosPlay's homepage at address:

  http://sorry.vse.cz/dimension/rdos/rdosplay   (Http site in Prague, CZE)



Although I did all the programming, there are few friends which helped me with

some things about this program. Thanx go to:

Ondrej Stasek (Ondar/Dimension) - testing, suggestions, new formats delivery

David Voracek (Assassin/Dimension) -          - || -

and other friends for their (mostly) betatesting and suggestions..



 If you want to contact me, write to address listed below. If you want to send

me suggestions, tips or simply greets, send it freely. Also some money would be

good as a power and motivation for further work :-)  If you find any new module

format  with  its  player  you can also send it to me. You can also send me any

module you want to be in new version of RdosPlay.

My address:                           E-Mail: (non-commercial)

 Roman Dolejsi (RDOS)                    roman@sorry.vse.cz

 Husova 419, Vcelna                      roman@romeo.pf.jcu.cz

 37382 Ceske Budejovice

 Czech Republic

Please do not send me E-mails longer than 150kB (because of our local smtp

server limit).

*** end of RDOSPLAY documentation ***


I think that works. There is an email address no-one seems to have found right at teh end.

Link to comment
Share on other sites

Hi everyone, ;)

It's been a while since I've discovered this nice thread and following with enthusiasm the Dune Revival Project. I'd like to ask some things about the structure of the game:

1) I have decompressed all the .hsq files (thanks to Monsieur OUXX who has sent me the unhsq already compiled :) ) and noticed that the files phrase11.unp, phrase12.unp, phrase21.unp, phrase22.unp, phrase31.unp and phrase32.unp contain all the dialogues used in the game in english, french and german. But actually in the game I can't change the language of subtitles, there is only english! ??? Is my version of the game corrupted or is this a normal thing? If so, why put also the french and german dialogues if they can't be used?

2) I have also the CD version of the game (with a lot more features, Dune movie footage, digitalized speeches, etc.), and, since there is the Italian version of the dialogues, I would like to extract it just like those I have unpacked now with unhsq. But in this version of the game there aren't any hsq files, just a huge dune.dat of 380 MB! I suppose it should be a kind of archive containing all the hsq files of the floppy version plus other things. Do you know if there is a mean to unpack this type of archive?

Thanks :)


Wait.... I thought we were still looking for UNHSQ. Do you actually have it?

Link to comment
Share on other sites

[edit] Look at page 3; Roman Dolejsi himself posted the source of the HSQ decompressor, in asm code, and reposted as C code at the end of page 4. [/edit]

On a related note to all this, I just used an exe decompressor called CUP386 to uncompress the old DUNEMIDI.EXE. I can now see the actual song data in it. The names of the music files are all wrong though, for some odd reason. The track it starts with, called "Arrakis", is actually the "Sekence" one. I saw some similarities in the headers of the data in the exe and the music-containing hsq files; I'll see if extracting these makes em playable with that rdosplay tool.


Haha wow, it works.

[edit again]

Hm, these extracted files play exactly the same as the HSQ ones in rdosplay, but are a lot larger. I think these are simply the actual uncompressed versions. The data seemed a lot more like normal MIDI data in my hex editor, compared to the HSQ ones, anyway.

Anyway, I uploaded them (and the uncompressed dunemidi.exe) here:


This does mean that this tool's code should contain a player for the files too.

Link to comment
Share on other sites

This app is in the very first posts of this thread and its writer even provided the core sound code.


Anyway, I can't run RDOSplay because I have a 64-bit operating system. Could anyone post recordings of the OPL3/adlib gold versions of the songs?

I'm talking about this:

Link to comment
Share on other sites

Awwwwwwwwwwwwwwwwwwwwwwwwwwwwwesome!  :O

You knowww, maybe I didn't actually ever hear these before. I didn't think we owned an Adlib Gold or anything but Soundblaster and SB Pro cards, heh. But it's great to hear these recordings; it's like the difference between 16kbps and 256kbps audio bitrate of the exact same versions of the tracks -- and since I really don't like what Picq did in rearranging and synthesizing the Spice Album CD, this is pretty much the gold standard for the game score as far as I'm concerned.

Thanks so much, Nerdsguy  ;D

Link to comment
Share on other sites

  • 3 weeks later...

Oops, I missed that page with the source code on it.

I agree, the remixed tracks on Spice Opera suck. I managed to get my hands on a copy at a garage sale,($70 AUD) and I wish I hadn't wasted my money.

I've got a real 98 install disc, which I run in a virtual machine on my computer. Somehow RDOSplay thinks it's running on Adlib Gold, From what I've seen. But I was told the emulator didn't emulate good cards like that.

Let's all annoy Nerdsguy... ARGH! WHO GAVE HIM THAT LASGUN!!. Lol.

Anyway, I was searching through my Dune folder (where I keep all my Dune related stuff) and I found a few files that seemed to be opened graphics files, converted to .BMP. There was also a way I could change the pallet frame by frame and get the sunset. Unfortunately, my brother thinks it's very funny to hide my stuff on the myriad of hard drives and cds we have, so I have to track them down again.... :'(

I just hope he hasn't deleted them, like he deleted the only copy of the book I'm writing. I'll kill him this afternoon and work out what happened.


Link to comment
Share on other sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...