Jump to content

Unused sound files


MrFlibble

Recommended Posts

First I wanted to post this in the Super Dune II Second Edition Programming Thread, but then I decided that this question deserves a separate topic.

During my modding work with DUNE2.EXE I discovered that there are several sounds in Dune II that are not used in the game. The most interesting of those, in my opinion, are the files called #NEXT.VOC and #NEXT2.VOC (where # is the first letter of any House's name), which are located in the House Mentat voice archives (ATRE.PAK, HARK.PAK and ORDOS.PAK). These are actually each House's Mentat/vocal adviser saying "Select your next conquest" (divided in two parts because of the limit on sound file size). However, these are not used in the game because they are missing from the internal file list in the EXE (there are lists of files which are/should be located inside each of the PAK archives; if a file is not listed, the game does not "see" it even it is present in side a PAK archive). I put these two files into the Dune II folder, and indeed, the game plays #NEXT.VOC when going into the "Select your next conquest" map selection screen, but doesn't play #NEXT2.VOC for some reason.

Fixing that would be nice, wouldn't it? wink.png

Another thing, there are a few files in VOC.PAK, namely SANDBUG.VOC "Something's under the sand!", POPPA.VOC "Come to poppa!" and BUTTON.VOC (button clicking sound). I'm especially interested in the last one, enabling that would be also neat.

Now some stuff about how things are organized inside the EXE. Apart from the PAK listing, the sound file names are mentioned in a special list as zero-terminated strings, with the Mentat speech files having a %c prefix to denote House specific variants, and the sound effects having prefixes like +, / or ? (I haven't tested that extensively). Also, there are reference codes that point to each zero-terminated string, which are in a list (divided by two bytes like 00 13 or 00 14), directly preceding the list of file names. So far, I've no idea where the code is which decides what sound should be used, and when. Finding that would probably help to enable the unused sounds. My only assumption is that the variable which defines a unit's weapon firing sound (editable via Nyerguds' editor) is somehow connected to all this (perhaps sounds are internally referred to by their numbers on the list).

Link to comment
Share on other sites

  • 3 months later...

Next.voc

A8 13 42 43+                _soundVOC <aCnext_voc,  14h>; 70 (46h)

14 00 B6 13+                _soundVOC <aCnext2_voc,  14h>; 71

"missionMapScreen"

ovr204:04D3 B8 46 00                    mov    ax, 46h

ovr204:04D6 50                          push    ax              ; soundID

ovr204:04D7 9A 39 00 86+                call    j_soundFind?

No code anywhere for soundid 47h tho, also couldnt find anything relating to those other vocs...

i have got a feeling the sandbug.voc is used in the amiga version, altho i cant be certain of that

Link to comment
Share on other sites

  • 5 months later...

?NEXT.VOC and ?NEXT2.VOC aren't in that sounds list though.

I believe these two got disabled in the EU version (maybe also in HS, but I didn't check). In US v1.0 and v1.07, ?NEXT.VOC is played at the "Select your next conquest" screen if the file is either placed in the game directory or the EXE is modified so it can read it from one of the PAK files.

Link to comment
Share on other sites

Still, I test my editor on the US 1.07 version, and all sounds after #70 are just blank.

(looks like I counted the '-1 - None' entry in these '71 items'. Whoops :P )

[edit]

Eh, looks like these ?next.voc and ?next2.voc voices aren't even in the FILES list. In none of the versions, even. All other mentat voice files are in there, but these 2 aren't. Won't that mean the game might have trouble reading them from the pak files?

[edit again]

This is odd. In my editor, in the EU and HS versions, ?next.voc is in the German and French file lists (gnext.voc/fnext.voc). But no ?next2.voc for them.

Link to comment
Share on other sites

Eh, looks like these ?next.voc and ?next2.voc voices aren't even in the FILES list. In none of the versions, even. All other mentat voice files are in there, but these 2 aren't. Won't that mean the game might have trouble reading them from the pak files?

The game doesn't have any trouble reading them from the PAKs simply because they are not listed there :) The only way for them to be read is from the directory (unless you change file lists for some of the PAK archives).

This is odd. In my editor, in the EU and HS versions, ?next.voc is in the German and French file lists (gnext.voc/fnext.voc). But no ?next2.voc for them.

Perhaps it is the same as with the US version: ?NEXT2.VOC is not played even if the game can read it (see above).

Link to comment
Share on other sites

The game doesn't have any trouble reading them from the PAKs simply because they are not listed there :)

The only way for them to be read is from the directory (unless you change file lists for some of the PAK archives).

Ehh, these 2 statements kinds contradict eachother.

Link to comment
Share on other sites

No, they don't. The game does not read, for example, ANEXT.VOC and ANEXT2.VOC from ATRE.PAK, because they are not listed in its contents. Thus, it has no "trouble" reading them, as it doesn't even try doing that. However, if you put these files into the Dune 2 directory, ANEXT.VOC will be played during the "Select your next conquest" sequence.

Eh, looks like these ?next.voc and ?next2.voc voices aren't even in the FILES list. In none of the versions, even. All other mentat voice files are in there, but these 2 aren't. Won't that mean the game might have trouble reading them from the pak files?

To make it clear, there are different file lists out there. The one that looks like this:

[pre]%cLAUNCH.VOC %cATTACK.VOC %cVEHICLE.VOC %cREPAIR.VOC %cHARVEST.VOC %cWORMY.VOC %cCAPTURE.VOC %cNEXT.VOC %cNEXT2.VOC[/pre]tells the game what files to use. For the sounds with a prefix, it's a general pattern ("%c" in the place of the prefix), for other files, just plain filenames (sometimes without the extension). These lists of files are scattered throughout the EXE and are usually located somewhere near the parts of the code that they relate to.

On the other hand, there are lists that go like this:

[pre]AATTACK.VOC AARRIVE.VOC ACONST.VOC AONE.VOC ATWO.VOC ATHREE.VOC AFOUR.VOC AFIVE.VOC AAPPRCH.VOC[/pre]It's a list of a PAK file contents (in this case, it's ATRE.PAK). Basically, it tells the game where to look for files, and it does not affect what files the game uses. If a file is not listed in a PAK's contents, the game will ignore it even if the file itself is present in the archive (this is what happens to the ?NEXT.VOC files). For example, if you take the list for MENTAT.PAK and rename FARTR.WSA (Atreides herald/planet image) into FFREM.WSA, it won't make the game use a file called FFREM.WSA when you select House Atreides (even if such file is placed in the game directory) - rather, the game will not be able to find FARTR.WSA in MENTAT.PAK anymore. The lists for PAK files are located all in one place of the EXE.

Link to comment
Share on other sites

I know about the other strings it uses, I was really just wondering about the pak reading :P

But then there's the issue that certain files are only read if they're inside the pak archives... any idea where the difference is, there?

Then again, judging from C&C, this might just be related to the way the game opens the file (if it opens it as "file read from PAK", "raw file in game folder" or "file to be read from either game folder or pak".)

I'm also wondering if I could add these files to the file list in that unused space, or if I'd have to adapt some sort of list length value for that to work.

Link to comment
Share on other sites

I'm also wondering if I could add these files to the file list in that unused space, or if I'd have to adapt some sort of list length value for that to work.

the unused space after the list is used at runtime (except the null entry at the end of the list), the tileids for the current generated map are stored there

Link to comment
Share on other sites

We could always use the filler.voc entry :)

For what purpose?

Actually, FILLER.VOC seems to be used, at least theoretically. Certain observations lead me to the conclusion that it is used whenever a file is missing from INTROVOC.PAK, even though I am not 100% sure about that.

In my editor, in the EU and HS versions, ?next.voc is in the German and French file lists (gnext.voc/fnext.voc). But no ?next2.voc for them.

I believe that at first, the devs wanted to use the function that plays ?NEXT.VOC for German and French (since VOC files are 10,000 Hz in these languages, as opposed to 11,764 in English, the files were smaller and thus the entire phrase could fit into the "20Kb or less" limit for VOC files). But then they disabled that function for some reason (I think it's true for all three-lanaguge releases), and the files became obsolete.

But then there's the issue that certain files are only read if they're inside the pak archives... any idea where the difference is, there?

Maybe, at least in some versions, this was defined individually for each file? Or maybe a general rule was to read from the PAKs first, with some exceptions. I've got the impression that in the US and HS versions, DUNE.ENG is the only string table file that is read from the directory first, while in the EU version, this works for other ENG files as well. Actually, it seems to me that the EU version attempts to read all files from the directory first.

Link to comment
Share on other sites

Rather bizarre, to reserve actual space in the exe for that. Ah well. Guess it's a bad idea to try to use it, then :P

(..)

Not really bizarre, common practice in 16bit application. There is no code and data separation. Around code there are often local constants and variables. You see that all over the place ;) Rather annoying ..

Link to comment
Share on other sites

  • 1 month later...

It's in the vocsounds table used for the infantry responses, but beyond that, not a clue. It might indeed be possible to make it call the voc playing function at that point, if there were space in the exe to add the function call. That's one limitation I don't have in C&C95, at least...

Link to comment
Share on other sites

  • 1 month later...
  • 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.

Guest
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...