8000 GitHub - crazii/SBEMU: legacy sound blaster emulation for DOS
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

crazii/SBEMU

Repository files navigation

SBEMU

Emulate Sound Blaster and OPL3 in pure DOS using modern PCI-based (onboard and add-in card) sound cards.

Supported sound cards

Source code from MPXPlay is used to support the following sound cards/chips.

Enabled and working:

  • sc_ich: Intel ICH / nForce / SIS 7012
  • sc_inthd: Intel High Definition Audio (HDA)
  • sc_via82: VIA VT82C686, VT8233/37
  • sc_sbliv: SB Live! / Audigy
  • sc_sbl24: SB Audigy LS (CA0106)
  • sc_es1371: Ensoniq ES1371/1373
  • sc_cmi: C-Media CMI8338/8738

Support compiled-in, but untested:

  • sc_via82: VIA VT8235

Source code exists, but "doesn't work yet":

  • sc_sbxfi: Creative X-Fi EMU20KX

Additional Linux drivers ported by jiyunomegami

  • SB X-Fi (EMU20K1 & EMU20K2)
  • YAMAHA YMF7x4
  • ALS4000
  • OXYGEN(CMI8788)
  • ESS Allegro-1 (ES1988S/ES1989S)
  • Trident 4D Wave

Emulated modes

  • 8-bit and 16-bit DMA (mono, stereo, high-speed)
  • Sound Blaster 1.0, 2.0, Pro, Pro2, 16
  • OPL3 FM via DOSBox' OPL3 FM implementation
  • OPL3 passthrough to Hardware FM if it's present on the PCI sound card.
  • MPU401 UART emulation, or passthrough to PCI sound card if supported.

Requirements

  • HDPMI32i (HDPMI with IOPL0)
  • Optional, for real-mode game support (I/O trapping):
    • JEMM with QPIEMU.DLL loaded
    • or QEMM, commercial software

For memory management, use either:

  • JEMMEX only: Provides both HIMEM + EMM
  • HIMEMX and JEMM386: Separate HIMEM + EMM

In both cases, use JLOAD (from the Jemm distribution) to load QPIEMU.DLL before starting SBEMU, so that real-mode support is enabled. If you don't load JEMM+QPIEMU (or QEMM), only protected mode applications will be supported.

README for End Users

If your want to use SBEMU without building it, please read README.txt for setup and a list of command line options.

Building from source

macOS, Linux and Windows is supported. For Windows, consider using WSL2 + Linux binaries. If you need to frequently debug/test on your local DOS, there's a makefile.dos for you.

Installing a cross-compiler (DJGPP)

Scripts to build a recent GCC toolchain for DJGPP are available here:

There's also prebuilt releases for the toolchain if you don't want to build DJGPP yourself. The current version (October 2023) is using GCC 12.2.0, but in the future newer GCC versions might become available:

Installing make

This assumes a Debian/Ubuntu installation. If you are using any other distro, I'm assuming you know your way around and can translate those instructions to your specific distribution.

To get make and other tools, it's easiest to install host build tools:

sudo apt install -y build-essential

On MacOS, install the Xcode command-line tools, which should give you make and other host utilities.

If you are planning on building DJGPP from source, some additional build tools are needed. Refer to the build-djgpp README file for details.

Installing DJGPP on DOS