Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
kcghost

What's up with Heretic's GFRAG?

Question

I apologize if this isn't quite the right place to ask this question, but I think it is fairly relevant to technical aspects of Doom.

 

I have been playing around with Doom resources lately in Python using my project wadsnip. I just made some changes that autorecognize common filetypes in wads to extract them into namespaces, and noticed something odd when used on the heretic iwad (sum: 66d686b1ed6d35ff103f15dbd30e0341).

 

My code didn't recognize GFRAG as a DMX sound effect. All of the other sounds are fine, and when opened in a hex editor I can see some metadata attached to GFRAG like the date created (1994-12-15) and the sound editor used (Sound Forge 2.0).

 

So it isn't DMX, and it doesn't look like WAV, and it can't be a purely raw audio file with metadata at the end. What type is this file? And why is it special among the sounds? I haven't been able to find any info on the Doom wiki or otherwise, if anyone can point me to a resource that explains this format that would be very helpful.

Share this post


Link to post

5 answers to this question

Recommended Posts

  • 0
6 hours ago, kcghost said:

I apologize if this isn't quite the right place to ask this question, but I think it is fairly relevant to technical aspects of Doom.

 

I have been playing around with Doom resources lately in Python using my project wadsnip. I just made some changes that autorecognize common filetypes in wads to extract them into namespaces, and noticed something odd when used on the heretic iwad (sum: 66d686b1ed6d35ff103f15dbd30e0341).

 

My code didn't recognize GFRAG as a DMX sound effect. All of the other sounds are fine, and when opened in a hex editor I can see some metadata attached to GFRAG like the date created (1994-12-15) and the sound editor used (Sound Forge 2.0).

 

So it isn't DMX, and it doesn't look like WAV, and it can't be a purely raw audio file with metadata at the end. What type is this file? And why is it special among the sounds? I haven't been able to find any info on the Doom wiki or otherwise, if anyone can point me to a resource that explains this format that would be very helpful.

It's pretty correctly standard WAV.

 

Audacity will play it just fine: Unsigned 8-bit PCM, Little Endian, Mono, 11025 Hz sample rate. Precisely the same settings as all the other Heretic sound effects, and standard for most Doom Engine SFX settings, period. (Only thing I can think of that isn't is the Doom 2 SSG SFX.)

 

So what's the sound effect, you ask? After about 3/4ths of a second of silence, basically a lower-quality version of this.

 

 

Basically, Raven somehow screwed up a bit when importing it, but not in a way that fundamentally broke the file. If DMX just ignores zero-samples on start, then basically nobody would even notice something's wrong with it at all.

Share this post


Link to post
  • 0

Thanks, I can get it to play with Audacity with those settings. But that means it is (mostly) raw audio data, not WAV (No RIFF file signature). And the metadata at the end does mean it goes a little screwy at the very end, so it isn't quite correct to import all of the data as samples.

 

I still think the data at the end indicates some kind of unique file type, seems like you would have to read from the end of the file to identify it.

The footer is:
211629296_Screenshotat2019-09-2211-09-58.png.64cdc4479f3ab98a7d5459bbb22adf3a.png

Share this post


Link to post
  • 0

Huh, this is mighty interesting -- I never knew that sound existed in the IWAD until now. Looks like it's intended as a kill confirmation sound in multiplayer, according to the source code, which is pretty damn cool.

 

Share this post


Link to post
  • 1
4 hours ago, kcghost said:

Thanks, I can get it to play with Audacity with those settings. But that means it is (mostly) raw audio data, not WAV (No RIFF file signature). And the metadata at the end does mean it goes a little screwy at the very end, so it isn't quite correct to import all of the data as samples.

 

I still think the data at the end indicates some kind of unique file type, seems like you would have to read from the end of the file to identify it.

The footer is:
211629296_Screenshotat2019-09-2211-09-58.png.64cdc4479f3ab98a7d5459bbb22adf3a.png

Nope, that's just Raven screwing up when importing it. It's a WAV, with metadata attached (which WAV didn't really need/support). Presumably they meant to import a chopped-down version off whatever SFX Library CD they got it from, and they accidentally bungled it up and put in the downsampled (but not trimmed) version of the WAV instead - and so that's what made it into the IWAD.

 

It's like this even in the 1.0 version of heretic.wad, so I guess it never got fixed.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×