Zajimavy, Win95 verze Carmageddonu mela dojebanej zvuk
https://twitter.com/dethrace_labs/status/1659384755471912961?s=20
The fatal flaw that was somehow never noticed is that the Win95 executable can only play a single instance of a particular sound at any time. This is a problem in a game where crashes, screams and engine sounds happen constantly. Some cars share the same engine sound, and (2/3)
fight over which car gets to play the sound. This is why sometimes the player car is silent. Why? The audio engine has "descriptors" and "channels". The descriptor describes a sound and can be bound to multiple channels, allowing multiple instances to be played simultaneously.
The port to DirectSound was done incorrectly, by attaching the DirectSound buffer to the _descriptor_, not the _channel_! All instances of that sound then shared the same buffer, so calls to change pitch/volume/start/stop affected the same single buffer.
Happily, this behavior is now fixed in dethrace after we traced and followed how the DOS code handles descriptors and channels!