I use vlc, works regardless of the drivers you have and they have built in equalizers that you can easily adjust the max/min volume for until you find the volume you like, including one specifically for the dynamic range you're talking about.
It's been set how I like it for so long that I'm not sure anymore what the exact option is, but I'll try to find it and I'm sure you could find it in the audio settings.
It's some dynamic range compressor something in the audio options that you can very easily adjust for the maximum volume so that explosions won't be so crazy loud but you can keep voices at their normal volume.
Ah, here. It is under tools effects Compressor. Enable the compressor.
https://www.vlchelp.com/fix-movies-loud-music-low-dialogue/
You can use hotkeys to fiddle with the threshold until you find something that makes explosions or loud music quiet without affecting dialogue