VOGONS


SBEMU: Sound Blaster emulation on AC97

Topic actions

Reply 180 of 1276, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
crazii wrote on 2023-03-16, 23:25:

Not just Intel, according to the source code of MPXPlay, it also supports some SIS VIA boards, and ATI/nVidia (possibly HDMI sound through graphics cards), and Creative devices.

from Mpxplay's SNDCARDS.TXT:

- digital/spdif outputs are not tested (maybe the analog output works only)

Since video card's HDMI ports only support digital audio out it's not likely they work. Has anyone tested this?

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 182 of 1276, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Grand Prix 2 (DOS) is a great game to test SB16 support. It used to be really picky with DOS sound support on Win 9x back in the days.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 183 of 1276, by Alecio

User metadata
Rank Newbie
Rank
Newbie

Has anyone managed to get it working in VirtualBox successfully? The only game that worked for me was Whiplash (Fatal Racing), but without music and with several stutters. According to the official page it works , but I don't know if it needs any additional configuration beyond those mentioned in the readme.

Reply 185 of 1276, by BurnedPinguin

User metadata
Rank Newbie
Rank
Newbie
crazii wrote on 2023-03-16, 23:25:
BurnedPinguin wrote on 2023-03-16, 18:31:

Intel HDA got me interested. Does this mean all codecs on the HDA Bus or just Intel? The HDA bus is a very different beast from AC97 and if you managed this I would be twice as thrilled as I already am about this project.

Not just Intel, according to the source code of MPXPlay, it also supports some SIS VIA boards, and ATI/nVidia (possibly HDMI sound through graphics cards), and Creative devices.

So I suppose that excludes the ubiquitous RealTek codec?

Reply 186 of 1276, by Baron von Riedesel

User metadata
Rank Member
Rank
Member
BurnedPinguin wrote on 2023-03-17, 14:34:

So I suppose that excludes the ubiquitous RealTek codec?

Well, HDA defines a programming interface, so in theory a "HDA driver" should be able to handle all HDA devices. However, there's some special handling implemented in the mpxplay code for certain vendor/device combinations - might be just historical or some real incompatibilities.

Reply 187 of 1276, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

urbanus,

Unless my eyes deceive me you've linked to a copy of WIndows 98SE. You can do whatever you want on archive.org apparently but not here.
Also it's not my business but hopefully you reached out to those who created the programs before you included them and shared them out and abided by their license requirements (if they have any)
Removed the links.
If you don't care to clean it up then at least remove the vogons links from those sites or any packages.

How To Ask Questions The Smart Way
Make your games work offline

Reply 188 of 1276, by urbanus

User metadata
Rank Newbie
Rank
Newbie
DosFreak wrote on 2023-03-17, 16:48:
urbanus, […]
Show full quote

urbanus,

Unless my eyes deceive me you've linked to a copy of WIndows 98SE. You can do whatever you want on archive.org apparently but not here.
Also it's not my business but hopefully you reached out to those who created the programs before you included them and shared them out and abided by their license requirements (if they have any)
Removed the links.
If you don't care to clean it up then at least remove the vogons links from those sites or any packages.

Sorry, didnt mean to break any rules.

But remove Vogons links from other sites?
Can Vogons decide who links to them?
Thats not how the internet works?!?!

OP said to another that he was ok with including SBEMU in an installer.
I tried to be very clear about the origin of the software and where to find the latest version.

Also, Windows 98SE and Cygwin for Windows 9x is abandonware as far as I know. I doubt Microsoft etc cares?!?!

Reply 189 of 1276, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

On the site you linked to was a distribution of Windows 98SE which is copyrighted.
On that same site you mention vogons which gives the impression that vogons condones such actions.
I'm not just referring to the OP but all the other programs you include in the package. Did you correspond with their authors and/or abide by their licenses? 7-Zip, Japheth's for HX, etc?
There is no such thing as "abandonware".
As far as SBEMU any installation script should be incredibly simple and shouldn't involve any of the above. (Assuming the op did their due diligence)

How To Ask Questions The Smart Way
Make your games work offline

Reply 190 of 1276, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
BurnedPinguin wrote on 2023-03-17, 14:34:
crazii wrote on 2023-03-16, 23:25:
BurnedPinguin wrote on 2023-03-16, 18:31:

Intel HDA got me interested. Does this mean all codecs on the HDA Bus or just Intel? The HDA bus is a very different beast from AC97 and if you managed this I would be twice as thrilled as I already am about this project.

Not just Intel, according to the source code of MPXPlay, it also supports some SIS VIA boards, and ATI/nVidia (possibly HDMI sound through graphics cards), and Creative devices.

So I suppose that excludes the ubiquitous RealTek codec?

Like AC'97, HDA is an open spec that different manufacturers can produce their devices that work with a most generic driver. The generic driver usually works with the chipsset/motherboard and doesn't care about the actual codec.

Toshiba Satellite Pro 4300 - YMF744, Savage IX
Toshiba Satellite 2805-S501 - YMF754, GeForce 2Go
IBM Thinkpad A21p - CS4624, Mobility Radeon 128
main: Intel NUC11PHKi7C Phantom Canyon: i7-1165G7 RTX2060 64G 2T760PSDD

Reply 192 of 1276, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Did you read that? I'll quote directly from it.. "Those ignorant of copyright law have incorrectly taken this to mean that abandonware is legal to distribute, although no software written since 1964 is old enough for copyright to have expired in the US."

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 194 of 1276, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie
crazii wrote on 2023-03-16, 06:43:
Kamerat wrote on 2023-03-08, 20:49:
Still no sound with /VOL9. […]
Show full quote
crazii wrote on 2023-03-08, 07:51:

Emmm, yet another PCs that reported not working. Can you try /VOL9 on the AMD RS880M to make sure it is not a volume problem?

Still no sound with /VOL9.

I also get no sound with MPXPLAY even that it detects IHD. Maybe the driver from MPXPLAY is the problem?

This is the device:

 Bus 0 (PCI Express), Device Number 20, Device Function 2
Vendor 1002h Advanced Micro Devices, Inc. [AMD/ATI]
Device 4383h SBx00 Azalia (Intel HDA)
Subsystem ID FF1E1179h Unknown
Subsystem Vendor 1179h Toshiba Corporation
System IRQ 7, INT# A

There was problem on MPXPlay and I did some fix, tested working by folk here, when MPXPlay doesn't work but SBEMU does. There might be more problems that are not fixed.
It uses IRQ7, so you need to use IRQ5 for SBEMU, I saw you've already done that. So what's the BLASTER env after running SBEMU?

As I wrote in a later post I actually got it working by running and exiting HDAplay before launching SBEMU.

I don't think the driver from Mpxplay sets up the codec correctly on that system, here are the main differences I discovered by running the HDAstat utility:

Cold boot        0/ 16/0F05/0  - power state control=0x433
SBEMU only 0/ 16/0F05/0 - power state control=0x33
HDAplay + SBEMU 0/ 16/0F05/0 - power state control=0x0

Cold boot 0/ 16/0F06/0 - link stream/channel: 0x0 (stream=0, channel=0)
SBEMU only 0/ 16/0F06/0 - link stream/channel: 0x0 (stream=0, channel=0)
HDAplay + SBEMU 0/ 16/0F06/0 - link stream/channel: 0x10 (stream=1, channel=0)

I don't know if both are needed for the codec to work correctly as I dont't know how to manually modify it's registers.

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 195 of 1276, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
Baron von Riedesel wrote on 2023-03-07, 15:18:
LSS10999 wrote on 2023-03-07, 13:14:

I have a discrete PCI sound card installed on the target system that works along with the onboard HDA (they're being used by different OSes), and both may be used for SBEMU, so I want to manually choose the audio device I want to use SBEMU with.

EDIT: Just took a look at the code and it doesn't seem to be implemented yet (though the related part is based on MPXPLAY and should in theory be doable).

It's surely doable, but how to tell SMEMU what card to use? Currently SBEMU scans the sound devices and uses the first it can handle. However,, in a system with a discrete sound card and a "modern" video card, there might be 3 HDA devices: the one on board, the discrete one and the one included in HDMI. They may be distinguished by the PCI bus/device numbers, but is the user supposed to know such infos?

I just added a list option and a selection option, it's OK that users first list all sound cards, and then select the index(just a number) in the list.

Toshiba Satellite Pro 4300 - YMF744, Savage IX
Toshiba Satellite 2805-S501 - YMF754, GeForce 2Go
IBM Thinkpad A21p - CS4624, Mobility Radeon 128
main: Intel NUC11PHKi7C Phantom Canyon: i7-1165G7 RTX2060 64G 2T760PSDD

Reply 196 of 1276, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
keenmaster486 wrote on 2023-03-16, 15:50:
crazii wrote on 2023-03-16, 07:03:

I can further reduce the period buffer size and build a low-latency-testing version for you to test. but small buffer may also cause distortions since interrupt routines might not be called strictly in time that can feed enough data to the soundcard.

Hmm, I am interested in trying this since my laptop has a Pentium M, not exactly a lightweight DOS CPU. But maybe I would need even more than that.

I build a beta2b binary that tries to reduce latency, you may want to check that one. It's uploaded in the first post.

Toshiba Satellite Pro 4300 - YMF744, Savage IX
Toshiba Satellite 2805-S501 - YMF754, GeForce 2Go
IBM Thinkpad A21p - CS4624, Mobility Radeon 128
main: Intel NUC11PHKi7C Phantom Canyon: i7-1165G7 RTX2060 64G 2T760PSDD

Reply 197 of 1276, by sergio_prado

User metadata
Rank Newbie
Rank
Newbie
crazii wrote on 2023-03-05, 06:13:
Hi, I'm happy to announce that SBEMU is ready for more tests. :D […]
Show full quote

Hi, I'm happy to announce that SBEMU is ready for more tests. 😁

Purpose: for PCs with AC97/Intel High Definition Audio sound cards that doesn't have Sound Blaster support (vintage PCs after 2000 era, or modern PCs with HDA).
Supported PCI soundcards:

  • Intel ICH
  • nForce (nForce2 tested working)
  • Intel High Definition Audio
  • VIA VT8233 & VT82C686
  • SB Live/Audigy (thanks to Baron von Riedesel for debugging)

Emulated cards: SB 1.0, 2.0, Pro, 16, 8 bit DMA & 16 bit DMA.
Notes: All on chip AC97 mother boards including Intel ICH and nForce both will reported as ICH. And it doesn't report the actual codec (e.g. realtek), but only the board (ICH). For HDA codec its the same.

Supported both real mode and protected mode games. Requirements:
HDPMI32i is needed for protected mode support, which is included in the zip file.
QEMM or JEMM is needed for real mode support. JEMMEX is included in the zip. It's optional, SBEMU can run without it and so without real mode support.

For more information, read the readme.txt in the zip and use /? in the command line.

Thanks to:

  • MPXPlay's: sound card drivers
  • DOSBox: DBOPL emulation
  • HDPMI & JEMM: Port traps
  • Folks in the forum that helped guiding & testing & improving the emulation

The original discussion can be found here: Possibility to write OPL3 sound driver for protected mode games, which initially intended for RetroWave OPL3 but then led to a pure soft emulation of SB & OPL.
The source code of SBEMU can be found here: https://github.com/crazii/SBEMU

Known issues: some games might not work properly, need more tests & improvement. 16 bit protected mode games are not supported - this remains a challenge so far.
Some games prefer VCPI over DPMI, need use "JEMMEX NOVCPI" AFTER loading HDPMI, or remove QEMM/JEMM and run the system without VCPI (also no real mode support).
Use /t6 to enable SB16 emulation.
Use /i5 to change the virtual IRQ if you get an IRQ conflict error, or adjust IRQ assignment in the BIOS.
Any suggestion and bug report are welcomed.

1.0Beta2b:
Fix SB Live/Audigy interrupt.
Add option "/SCL" to list sound cards, use "/SC[n]" to select sound card.
Experimental: adjust sound buffer to reduce latency. (1/8 to original).
This is a single binary of SBEMU.
SBEMU1.0beta2b.zip

1.0 Beta2:
SBEMU.zip

Thanks for this amazing software. This is something that many people was wanting for many years.

On my libretto U100 with ICH4 AC97, i noticed that the music have a lower volume compared to the sound effects. I already tryed /VOL9. There's any other way to increase the music volume?

Reply 199 of 1276, by stanwebber

User metadata
Rank Member
Rank
Member

my compaq armada e500 laptop has a 440bx chipset and the system architecture block diagram in the user manual clearly indicates the ac97 codec. does this mean sbemu should work?

the audio chip is an ess es1978 and it's working under pure dos using ddma; however, the opl3 midi is a wavetable hybrid mess. i've tried sbemu with and without the ddma drivers, but it always reports no soundcard found.

is there some trick to get sbemu working with my laptop or is it a hopeless case?