VOGONS


SBEMU: Sound Blaster emulation on AC97

Topic actions

Reply 1240 of 1632, by dr.zeissler

User metadata
Rank l33t
Rank
l33t
thp wrote on 2023-10-24, 19:48:
Update on the AD1980 issue. Was doing some test builds and dr.zeissler tested over the last two weeks with some back-and-forth. […]
Show full quote

Update on the AD1980 issue. Was doing some test builds and dr.zeissler tested over the last two weeks with some back-and-forth.

Turns out we were quite close to the real answer to begin with, 3 bits need to be set on the MISC (0x76) register:

0x4000 - AC97NC
0x0400 - HPSEL
0x0020 - LOSEL

Pull request for upstream SBEMU: https://github.com/crazii/SBEMU/pull/35

Sorry for going back for that solved AD1980 issue...is this the fix for linux for this issue?
That would be a big step forward if this is already added to amithlon kernel4
https://github.com/SnkBitten/amithlon4/blob/m … plugin_ad1980.c

Doc

Retro-Gamer 😀 ...on different machines

Reply 1241 of 1632, by thp

User metadata
Rank Member
Rank
Member
dr.zeissler wrote on 2024-04-14, 16:54:

Sorry for going back for that solved AD1980 issue...is this the fix for linux for this issue?
That would be a big step forward if this is already added to amithlon kernel4
https://github.com/SnkBitten/amithlon4/blob/m … plugin_ad1980.c

Use a more recent kernel, simple as that.

Reply 1243 of 1632, by DarthSun

User metadata
Rank Member
Rank
Member

VSBHDA: Tyrian has started, there are sound+effects, a demo runs long time, but load track ->freezes.
Tyrian2k: Midi Ok, Effect rattles.
Config: B450/R3800X/HDA/SB0060

The 3 body problems cannot be solved, neither for future quantum computers, even for the remainder of the universe. The Proton 2D is circling a planet and stepping back to the quantum size in 11 dimensions.

Reply 1244 of 1632, by MechWarriorZero

User metadata
Rank Newbie
Rank
Newbie

how do you install it in dos?

Reply 1245 of 1632, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie
MechWarriorZero wrote on 2024-04-16, 05:56:

how do you install it in dos?

SBEMU?

It's a software driver. It relies on either vintage quarterdeck XMS driver, or JEMMEX/Himem-X+Jemm, and a custom fork of HDPMI32i's HDMI handler.

What it does:

This driver installs a "Far call" interrupt handler to protected mode, that handles the fake soundblaster card's IRQ being addressed. To accomplish that, it needs some rather deep ring-0 access shenanigans, which it gets using the proprietary Quarterdeck API. JEMM/JEMMEX supports loading extenders, and on these memory managers, "QPIEMU.DLL" gets loaded to accomplish this. It's a minimalist implementation of the Quarterdeck API, used to accomplish this.

That over with, this is how you install/use it:

Create a config.sys entry that uses either the quarterdeck XMS driver, or JEMMEX.

device=C:\JEMMEX\JEMMEX.EXE I=B000=B7FF RAM
DOS=HIGH,UMB

for JEMMEX (which is free software) for example.

Pair it with an aut0exec.bat that calls HDPMI32i, loads the quarterdeck API emulation library, then calls SBEMU.


rem Load HDPMI32i high, limit reported handles for compatibility reasons, and remain resident after client closes
LH C:\SBEMU\HDPMI32i.exe -x -r

rem Use jload to load the QPIEMU library into JEMMEX
LH C:\SBEMU\JLOAD QPIEMU.DLL

rem Set the BLASTER variable! SBEMU picks this up automagically, and most dos games want this variable populated to configure themselves.
SET BLASTER=A220 I5 D1 H5 T6

rem Actually start SBEMU
LH C:\SBEMU\SBEMU.EXE

Reply 1246 of 1632, by MechWarriorZero

User metadata
Rank Newbie
Rank
Newbie

that did not work, no audio was loaded

Reply 1247 of 1632, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

It's very hit-and-miss which AC'97/HDA equipped devices will work (or work with a lot of fiddling) or not.

That's why there are so many "Use reports" being posted.

Reply 1248 of 1632, by MechWarriorZero

User metadata
Rank Newbie
Rank
Newbie

I used these in autoexec.bat

LH C:\SBEMU\HDPMI32i.exe -x -r
LH C:\SBEMU\JLOAD QPIEMU.DLL
SET BLASTER=A220 I5 D1 H5 T6
LH C:\SBEMU\SBEMU.EXE

and these in config.sys
device=C:\JEMMEX\JEMMEX.EXE I=B000=B7FF RAM
DOS=HIGH,UMB

Reply 1249 of 1632, by MechWarriorZero

User metadata
Rank Newbie
Rank
Newbie

I still need help getting sound in dos asap

Reply 1250 of 1632, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

Ok. My example was not meant to be a plug&play fix.

In order for that to work, the following must be true:

There is a folder called JEMMEX, that contains the jemmex.exe file, off the root of the c drive.

There is a folder called SBEMU, that contains jload.exe, qpiemu.dll, hdpmi32i.exe, and sbemu.exe. it too is right off the root.

You have a vga video card (that we can steal monochrome hercules mode display buffer from, for use as UMB)

Reply 1251 of 1632, by MechWarriorZero

User metadata
Rank Newbie
Rank
Newbie
wierd_w wrote on 2024-04-20, 11:36:
Ok. My example was not meant to be a plug&play fix. […]
Show full quote

Ok. My example was not meant to be a plug&play fix.

In order for that to work, the following must be true:

There is a folder called JEMMEX, that contains the jemmex.exe file, off the root of the c drive.

There is a folder called SBEMU, that contains jload.exe, qpiemu.dll, hdpmi32i.exe, and sbemu.exe. it too is right off the root.

You have a vga video card (that we can steal monochrome hercules mode display buffer from, for use as UMB)

I'm using a wyse thin client

Reply 1252 of 1632, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

What is the exact output from sbemu?

Reply 1253 of 1632, by Matchstick

User metadata
Rank Newbie
Rank
Newbie
MechWarriorZero wrote on 2024-04-20, 18:38:

I'm using a wyse thin client

So you are not running DOS naively?

The wyse thin client even using a compatible AC'97 chipset?

Reply 1254 of 1632, by MAZter

User metadata
Rank Oldbie
Rank
Oldbie

Tested SBEMU works fine with Dell Inspiron l2500 PP02L, AC'97 laptop (Wolfenstein 3D & Lotus Ultimate Challange III)

Last edited by MAZter on 2024-04-22, 22:13. Edited 1 time in total.

Doom is what you want (c) MAZter

Reply 1255 of 1632, by vanfanel

User metadata
Rank Newbie
Rank
Newbie
Bondi wrote on 2024-04-05, 17:21:
vanfanel wrote on 2024-04-05, 14:35:
How do you get Jazz Jackrabbit running with JEMMEX? I always get: […]
Show full quote

How do you get Jazz Jackrabbit running with JEMMEX?
I always get:

Loader error (0025): cannot initialize

It's been said on this thread that the game works with VSBHDA, but I can't get it to work.
Other protected mode games like Doom, etc work fine, with sound and all.

Do you run the special 16 bit version of the VSBHDA?
Re: SBEMU: Sound Blaster emulation on AC97

I have tried with both the normal version and the 16bit version. But I believe the game needs the normal version, not the 16bit version... right?
EDIT: Tried the 16 bit version and it works! No stereo (audio seems to be missing one channel), but yeah, it sounds!

Reply 1256 of 1632, by zyzzle

User metadata
Rank Member
Rank
Member
The attachment SBAITSO.ZIP is no longer available

Has anyone successfully gotten DR. SBAITSO to work with either SBEMU or VSBHDA? I'm getting either "can't detect Soundblaster settings" or an "Interrupt error" from the program. I think the problem is related to the old 1991 BLASTER.DRV file which it uses, and I can find no updated version of this driver.

The main SBAITSO.EXE program is seemingly a compiled QuickBASIC program, which probably adds to the problems. There is no source code available, either.

I'd like to be able to have this ELIZA-like "therapist" speak in modern systems in bare metal. A sort of primitive ChatGPT in DOS. I remember using the program over 30 years ago, with much relish and delight.

Reply 1257 of 1632, by zyzzle

User metadata
Rank Member
Rank
Member

Also, I'm experiencing a freeze on all the userbuilds of SBEMU past February or so (since General Midi at port 0x330 was added). The SBEMU program detects all the usual settings, and then just freezes the system. All versions (even back to the first betas posted in Feb / March 2023) previously worked very well for me on Intel HDA and the same laptop - before the new MIDI / port 0x330 code was added to the program.

Are there commandline options to specificially disable this detection. I can't even run SBEMU to get a list of the commandline options, as it crashes my system immediately. Strange, indeed.

Reply 1258 of 1632, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
zyzzle wrote on 2024-04-22, 23:48:

Also, I'm experiencing a freeze on all the userbuilds of SBEMU past February or so (since General Midi at port 0x330 was added). The SBEMU program detects all the usual settings, and then just freezes the system. All versions (even back to the first betas posted in Feb / March 2023) previously worked very well for me on Intel HDA and the same laptop - before the new MIDI / port 0x330 code was added to the program.

Are there commandline options to specificially disable this detection. I can't even run SBEMU to get a list of the commandline options, as it crashes my system immediately. Strange, indeed.

Thanks for the report, I'll check it soon.

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 1259 of 1632, by crazii

User metadata
Rank Oldbie
Rank
Oldbie

Just a quick update:
I've read some documents about VXD and it seems a hell of work, including exporting & linking win32 vmm functions, while loading & linking is not quite a problem since the dpmi binary is already a OS2 linear executable (LE/LX) and the loader can load it and potentially other VXDs which are OS2 LE/LX, linking functions needed to be added. the most heavy works are a set of vmm functions to be implemented and tested.
So I've decided take a little step first and added port trapping through vendor api, now SBEMU works for the games I tested previously, plus 16 bit clients, jazz jackrabbit and tyrian 2k tested. it will be release on beta5 (or maybe 1.1 alpha1).

The next step is gonna make SBEMU a VXD first working for win9x, and then use it to finish the VXD codes. but before that, now I'm back to SBEMU and complete unfinished business with beta4, and create a history branch of beta4.

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