When emulator developers (particularly the MAME team) began reverse-engineering CPS-2 hardware, they faced a major hurdle: accurately emulating the QSound DSP.
Early attempts used High-Level Emulation (HLE) . Instead of replicating the original DSP’s internal logic cycle-by-cycle, HLE intercepts calls to the sound hardware and re-implements them using host (PC) audio code. For many years, MAME included a built-in HLE module for QSound. This worked decently but was not perfect—some games had missing channels, crackling effects, or inaccurate audio mixing.
However, the MAME team’s philosophy prioritizes preservation and accuracy. The HLE approach, while convenient, is essentially a “reimplementation.” To truly preserve the arcade hardware, they needed to emulate the original QSound DSP at the microcode level—a method known as Low-Level Emulation (LLE) .
This is where qsound-hle.zip enters the story. qsound-hle.zip rom
This is the most frequent question from new emulator users. Due to copyright and distribution laws, emulator projects like MAME cannot bundle proprietary code or ROM dumps with the emulator executable.
To avoid distributing copyrighted material, emulator developers require users to source this file legally (typically by dumping it from an original arcade board’s QSound DSP ROM chip). Hence, it is stored separately and loaded on-demand.
Even after you obtain qsound-hle.zip, problems can arise. Here is a rapid-fire troubleshooting guide: When emulator developers (particularly the MAME team) began
| Symptom | Likely Cause | Solution |
| :--- | :--- | :--- |
| “qsound-hle.zip: No such file or directory” | File is in wrong folder. | Move it to the emulator’s defined ROM/system path. |
| “qsound-hle.zip: Wrong CRC32” | You have a corrupt or outdated version. | Delete it and re-download from a verified source. |
| Game loads, but music is missing or scratchy. | Incorrect audio sync between HLE and main CPU. | In emulator settings, set “Audio Latency” to 64ms or enable “Sync to Exact Audio”. |
| Sound effects play, but positional audio (left/right panning) fails. | HLE stub is missing the QSound matrix decoder. | Ensure you are using the HLE version specifically (not the old qsound.bin). |
| Game crashes on “Initializing QSound” screen. | Conflict with a save state from a previous version. | Delete the game’s .sta or .srm file and restart. |
The Capcom Play System (CPS) series defined the 2D fighting game genre throughout the 1990s. While the CPU and graphics hardware have been successfully preserved through low-level emulation, the audio subsystem—specifically the QSound processor—remains a bottleneck for cycle-accurate performance on low-power devices.
The QSound system, developed by QSound Labs, Inc., provides stereo audio with positional 3D effects. In original hardware, a dedicated Z80 CPU manages the sequencing, while a custom QSound DSP handles the audio synthesis and spatial processing. The firmware for this DSP is contained within a specific ROM file, colloquially known in emulation circles as qsound_hle.zip or qsound.zip. This is the most frequent question from new emulator users
This paper outlines the transition from Low-Level Emulation to High-Level Emulation for this specific component.
The transition to HLE yields distinct advantages regarding resource utilization: