Music and sound exports
Listen in the resource browser or open the FLAC files directly. All exports use FLAC level 8, 48 kHz, signed 16-bit output (mono for the native-driver music masters), without normalising the emulator's output. There are no companion WAVs or ZIP copies.
Complete music
The three normal-game scores now come from unchanged MOAG/Ad Lib V1.51 driver captures, through complete native repeat boundaries. Other versions still use AdPlug renders through the complete ROL event stream followed by a two-second release tail. The original instrument bank is selected explicitly. Six compositions produce seven distinct sequence/bank combinations because the earlier title music uses a different bank.
| Composition | Bank | Full export |
|---|---|---|
| Normal title: DESTINY3 | CCMUSIC | 84.834 s |
| Earlier title: DESTINY3 | CCSMALL | 86.462 s |
| RIDINGT | CCMUSIC | 204.155 s |
| DREAMSO2 | CCMUSIC | 178.795 s |
| Other Worlds: DAYBREAK | BNK835 | 154.156 s |
| Other Worlds: HEAVENS | BNK835 | 231.647 s |
| Other Worlds: VOYAGE3 | BNK835 | 234.242 s |
The normal-game masters render captured original-driver register writes directly through the pinned Nuked OPL emulator: no replacement sequencer, gain changes or normalisation. Each capture contains two complete matching note-on streams. Their durations include the native restart gap and exclude the next note. These replace the earlier AdPlug files at the same URLs; only compact Vorbis quality-6 copies are embedded in corncob-cpp. Capture provenance and title/menu context checks retain the evidence. Actual CCTITLE confirms 2,907 consecutive identical musical register writes before its distinct shutdown/effects handling.
The other four exports use AdPlug 2.4's Visual Composer implementation and its Nuked OPL backend in OPL2 mode. Those remain sequence-and-bank renders, not recordings of the bundled DOS music driver. Event timing follows the ROL tempo stream; the output agrees with its integrated nominal duration to within one sequence tick. The two-channel AdPlug exports use the emulator's output format, not original stereo hardware. Native-driver masters retain the mono DAC path.
Render metadata retains sequence/bank SHA-256s, source paths, sample counts, timing and renderer details. FLAC decoding/integrity checks pass for all seven files.
Sound effects
The browser includes 35 patch auditions across the three distinct ADL files. Each uses the actual register definitions and the original engine's note-on/off protocol. For a melodic patch, the chosen pitch word is 0x100, held for one second, followed by two seconds of release. Rhythm patches use their original rhythm trigger. These chosen audition settings make the patches inspectable; they are not a claim that every patch is played at that pitch or for that duration during gameplay.
Two additional examples execute original retail 3.42 sound code:
- Engine pitch sweep: original engine patch, note protocol and pitch clamps; a controlled input ramp over twelve seconds, followed by release.
- Death/explosion sound: the original
0x0c68–0x0c93setup sequence, with its rhythm trigger stopped after a chosen 0.6 seconds.
The native register writer is at 0xe034; note-on and note-off are at 0xe0ce and 0xe0e9. The twelve register buffers start at DS:f5bd with a 29-byte stride. The normal engine patch is block 0. Other patches share channels and are switched by runtime conditions; a register patch alone does not describe a complete independently timed sound.
Effect metadata contains the audition settings and timed register writes for the native examples. Distance, damage, engine state and recurring gameplay triggers still belong to the game simulation, rather than to an unextracted sample archive.
Native captures can be regenerated with tools/capture_native_music.py; it uses private DOSBox/Xvfb copies and never modifies the supplied install. The C++ workspace's tools/render_music_capture.cpp and tools/import_music.py regenerate FLAC masters and embedded Oggs from these retained captures.
Reproduction and credits
On Debian/Ubuntu the optional renderer development dependencies are libadplug-dev, libbinio-dev, a C++ compiler and flac; the native-effect harness also uses Unicorn. No libraries have been installed system-wide for this research run: the Debian packages were unpacked in temporary storage.
c++ -std=c++17 tools/render_adlib.cpp $(pkg-config --cflags --libs adplug) -o /tmp/render-adlib
python3 tools/render_music.py --renderer /tmp/render-adlib
python3 tools/render_effects.py --renderer /tmp/render-adlib
python3 tools/extract_resources.py
The C++ tool is our glue around the existing AdPlug/Nuked implementations; it is not a new OPL emulator. The normal-game manual credits Jim Collymore / James L. Collymore for the music. Original game assets retain their original authorship.