doomretro icon indicating copy to clipboard operation
doomretro copied to clipboard

PSX-style reverb

Open Blastfrog opened this issue 12 years ago • 10 comments

The Playstation 1 version of Doom applied reverb to the sound effects whenever the player was not in a sector with F_SKY1 as a floor and/or ceiling texture. The exact amount and type of reverb would need to be researched, though Quasar might know, or at least be able to investigate, as he's reverse engineered the PSX version down to the assembly code.

Blastfrog avatar Apr 29 '14 08:04 Blastfrog

This is an interesting idea. Never having played PS1 DOOM, I'll have to check out some YouTube vids to see how it sounds.

bradharding avatar Apr 29 '14 09:04 bradharding

This would definitely be a nice little extra.

L3gend avatar Dec 11 '14 11:12 L3gend

Did anyone ever figure this out?

MrSapps avatar Jul 09 '15 11:07 MrSapps

Eternity Engine has some PSX reverb routines, perhaps those would be ideal to take a gander at.

sneakernets avatar Jul 09 '15 15:07 sneakernets

Eternity Engine has some PSX reverb routines, perhaps those would be ideal to take a gander at.

It looks like it will require quite a bit to get such a feature working on SDL_mixer. I'll check out how the feature actually sounds in Eternity, but this is not a priority at the moment.

bradharding avatar Jul 09 '15 19:07 bradharding

https://github.com/kode54/foo_dsp_prvb not sure if this is any use/better?

MrSapps avatar Aug 12 '15 16:08 MrSapps

https://github.com/kode54/foo_dsp_prvb not sure if this is any use/better?

No, not really. But thanks. If there's an implementation in SDL_mixer floating around, I'll give it a go, but I haven't found one. What I'm waiting on is SDL_mixer's implementation of Mix_SetReverb(). At the moment it's commented out in SDL_mixer.h because:

/*
* !!! FIXME : Haven't implemented, since the effect goes past the
*              end of the sound buffer. Will have to think about this.
*               --ryan.
*/

Once this is in, it should be pretty straightforward. But don't hold your breath, as SDL releases (and especially SDL_mixer releases) are few and far between.

bradharding avatar Aug 12 '15 22:08 bradharding

That comment has been there for years :( Also I don't think that reverb will be on par with the one that the PSX SPU generates. Turns out there are not many decent free reverb algorithms - but the foobar plugin that emulates the PSX SPU should probably have the "best" sounding reverb.

For something I'm working on I'll be trying to get the foobar one integrated in to SDL so I'll ping back if you wanna try that when its working (?).

MrSapps avatar Aug 13 '15 12:08 MrSapps

Yes please, that would be great.

bradharding avatar Aug 13 '15 22:08 bradharding

I'm not sure the reverb would be easy to add, as in the PSX version the WADs will surely contain extra tags in areas to define what reverb for the sound-chip to apply? As PC WADs will never be built with such tags, as it's never been a thing in ports outside of the PSX, Saturn (I think?) and N64, all you could do is make guesses based on whether the player was indoors, and if so how big the room was.

Other PSX effects, such as lighting in a room, or making the entire facia of one of the coloured key doors match the colour of the key needed to open it, would likely be possible though, as then you could simply say "if a room mostly contains a nukage pool, apply a green tint", "if it's a small room with a Supercharge, apply a blue tint", "for this red-key door, tint the entire door texture red"

dftf-stu avatar Jan 26 '22 20:01 dftf-stu