A .NET library and CLI tool for reading and converting Wwise soundbank (.bnk) files across the three Wwise versions found in Diesel engine titles: version 88 (2013), 113 (2015), and 145 (2022). It parses the major section headers—BKHD, STMG, DATA, DIDX, HIRC, ENVS, STID—and within HIRC handles a broad set of object types including Actions, Actor Mixers, Attenuations, Audio Devices, Buses, Events, FX Share Sets, Layer Containers, Music Random Sequence Containers, Music Segments, Music Switches, Music Tracks, Random Sequence Containers, Sounds, and Switch Containers.
The converter migrates soundbanks from an older version to a newer one so assets authored against an older Wwise SDK can be loaded by a newer Diesel build. The library exposes an in-memory object model inspectable via any IDE's object inspector, and an accompanying ImHex pattern is provided for raw binary exploration. Format reading was written using bnnm's wwiser as reference.
Doppler
Standalone Doppler reads the local EVE Online game client, locates all Wwise sound banks (.bnk) and loose Wwise media (.wem) in the shared cache, and exports them to a folder of playable MP3 or WAV files. It covers embedded bank streams, loose WEM resources, every language voice bank, music, UI, ambience, ship, weapon, and turret audio.
The tool downloads portable runtime dependencies (Node.js, vgmstream-cli, FFmpeg) into its own directory on first run, requires no admin access, and does not modify the game client. Output is resumable, grouped by source bank and authored client path, and accompanied by a JSON/CSV manifest and failure log.
Exports are configurable via command-line flags for format (MP3/WAV), bitrate, worker count, output path, and more. A full 320 kbps MP3 export of the current EVE client produces roughly 9.5 GiB across ~20,000 files.
DCSS Remastered Audio retrofits the native, unmodified Dungeon Crawl Stone Soup Windows Tiles executable (x86, 0.34) with an adaptive soundtrack and overlapping sound effects. It works by replacing winmm.dll with a proxy DLL that intercepts sndPlaySoundW calls, forwarding audio events and state-change marker paths over a named pipe to a Python/pygame-ce Audio Director process that runs a multi-channel mixer with per-branch crossfades and HP-based ducking.
The approach requires no source code changes and no recompilation. Game state (current branch, HP, events) is extracted via a sandboxed Lua ready() hook that calls crawl.playsound() with marker filenames — the proxy reads the filename rather than playing it, maps it to a mixer command, and the Director responds accordingly. SFX are synthesized locally via make_sfx.py; CC-BY music (Kevin MacLeod) is fetched from an external source at setup time via fetch_music.py.
A companion graphics layer extends the same architecture to video post-processing: a second proxy DLL (opengl32.dll) IAT-hooks gdi32!SwapBuffers and reads a shared-memory block written by the same Director process, applying GLSL fragment shader effects (color grading, vignette, bloom pulses) keyed to game state — all without touching the game binary.