VOGONS


SBEMU: Sound Blaster emulation on AC97

Topic actions

Reply 320 of 1390, by L4MD4

User metadata
Rank Newbie
Rank
Newbie
stamasd wrote on 2023-03-29, 20:44:

If I try to use mpxplay without loading SBEMU, it will not do anything.

Ah....
Sorry, for reading you wrong.
That does change it a bit.

What happens if you used Xtc-play? https://modland.com/pub/software/players/DOS/XTC-Play/

Note: I have no experience using Xtc-play. It is just an idea, that I am throwing out there.

Edit: It might interesting to see if the issue occurs when you play WAV files.

Reply 321 of 1390, by stamasd

User metadata
Rank l33t
Rank
l33t

Did some testing with a HP thin client 5570t, Via Nano C7 CPU at 1GHz, 2GB RAM, Via VX900 chipset, Via Unichrome9 VGA. Installed FreeDOS 1.3 (because I was unable to install MS-DOS) and replaced Jemmex 5.79 with 5.84.
Used SBEMU both beta2 and the one with the VT power fix. I did not notice any differences between the two as far as games working or not.
One peculiarity is that if I only load SBEMU (either version) without parameters, it complains of IRQ conflict. It specifically wants the /i7 parameter to work. When loaded as "SBEMU /i7" it installs itself successfully. I have not needed to specify that on any other system I tested so far.

Games that did work:
XCOM with full music+sound effects;
Frontier: Elite2 with OPL sound;
Dune with full sound;
Quake works with full sound effects;
OPL440.com (generates a 440Hz sound using OPL)

Games that did not work:
Frontier First Encounters, both the game and the setup program crash at launch;
AdLib Tracker 2 crashes;
Dune2 crashes;
Monkey Island crashes;

Most of the crashes seem to be Jemmex-related.

That's about what I had time to do today.
Also the sound volume in all of the games that worked was adequate.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 322 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
Bruno128 wrote on 2023-03-25, 09:58:
Test report, Realtek ALC655 @ ICH5 MS-DOS 6.22 SBEMU ver.1.0b2 […]
Show full quote

Test report,
Realtek ALC655 @ ICH5
MS-DOS 6.22
SBEMU ver.1.0b2

Output:

Found sound card: ICH AC97
Real mode support: enabled.
Protected mode support: enabled.
OPL3 emulation enabled at port 388h.
Sound Blaster Pro emulation enabled at Adress: 220, IRQ: 7, DMA: 1

Games tested:
Duke3D: sound and FM music are OK, reversed stereo.
Doom: sound and FM music are OK.
Disney’s Jungle Book: sound and FM music are OK.
Prince of Persia: freeze on “Loading…” screen.

Overall it is really good, sound is clear, fm is correct. Thank you!

Just tested Prince of Persia VER 1.0 demo, it freezes but I found no clue in the log - every DSP command is handled correctly.
I was testing Prince of Persia 1.3 or 1.4 which is working. You can try it if you have one (legal) copy.

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 323 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
stamasd wrote on 2023-03-30, 00:40:
Did some testing with a HP thin client 5570t, Via Nano C7 CPU at 1GHz, 2GB RAM, Via VX900 chipset, Via Unichrome9 VGA. Installed […]
Show full quote

Did some testing with a HP thin client 5570t, Via Nano C7 CPU at 1GHz, 2GB RAM, Via VX900 chipset, Via Unichrome9 VGA. Installed FreeDOS 1.3 (because I was unable to install MS-DOS) and replaced Jemmex 5.79 with 5.84.
Used SBEMU both beta2 and the one with the VT power fix. I did not notice any differences between the two as far as games working or not.
One peculiarity is that if I only load SBEMU (either version) without parameters, it complains of IRQ conflict. It specifically wants the /i7 parameter to work. When loaded as "SBEMU /i7" it installs itself successfully. I have not needed to specify that on any other system I tested so far.

Games that did work:
XCOM with full music+sound effects;
Frontier: Elite2 with OPL sound;
Dune with full sound;
Quake works with full sound effects;
OPL440.com (generates a 440Hz sound using OPL)

Games that did not work:
Frontier First Encounters, both the game and the setup program crash at launch;
AdLib Tracker 2 crashes;
Dune2 crashes;
Monkey Island crashes;

Most of the crashes seem to be Jemmex-related.

That's about what I had time to do today.
Also the sound volume in all of the games that worked was adequate.

HP T5570 is a Intel HDA machine, glad to hear that it works. Did you set BLASTER before loading SBEMU? you can set I7 in BLASTER so that SBEMU will use /i7 equivalent by default.

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 324 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
wbahnassi wrote on 2023-03-29, 04:22:
crazii wrote on 2023-03-28, 09:41:

which version are you testing with skyroads? I think 1.0 beta2b will improve on the latency problem. never tested Crusader No Remorse, I'll check it later.

Just tested with beta2c, it's now snappy and immediate, no delays sensed. However, the explosion sound is clipping hard in Skyroads. Generally all digital SFX is too high compared to FM in all games. I think digital sfx are over-boosted. I tried using the Sound Blaster Pro tools (sbp-set.exe / sbp-mixer.exe) to set mixer levels but it was only able to control FM a bit, making it a little louder.. but VOC channel is not affected even if I try to mute it.

I adjusted some volume related code and then test SBP-MIX.EXE with prince of persia, the MASTER/VOC/FM volumes are working correctly now. it will be on next release. 😁

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 325 of 1390, by Baron von Riedesel

User metadata
Rank Member
Rank
Member
stamasd wrote on 2023-03-30, 00:40:

Games that did not work:
Frontier First Encounters, both the game and the setup program crash at launch;

Most of the crashes seem to be Jemmex-related.

I checked this - and got FFE to run. There are a few things to take care of:

  • FFE uses the 32-bit Borland extender 32RTM/DPMI32VM.OVL. This extender easily chokes if too much memory is available. Best fix is to set environment variable "DPMIMEM=MAXMEM 16383" ( documented )
  • 32RTM isn't quite DPMI compatible. HDPMI has a special fix for it - set environment variable "HDPMI=2048" ( documented )
  • FFE ( or 32RTM ) tries to set register CR0 directly - HDPMI rejects that. So a small adjustment in HDPMI is needed ( see below )

The adjustment in HDPMI is in file hdpmi.asm:

emuspecregmove2:
ife ?EMUMOVCR0REG
ife ?PMIOPL
test ss:[bEnvFlags2], ENVF2_CLRHIWORD ; allow "mov cr0, reg" (32RTM.EXE)
jnz @F
endif
mov al,[esi]
and al,0F8h
cmp al,0C0h ; mov cr0, reg?
jz done ; return and do a GPF
@@:
endif

Reply 326 of 1390, by stamasd

User metadata
Rank l33t
Rank
l33t
Baron von Riedesel wrote on 2023-03-30, 10:18:
I checked this - and got FFE to run. There are a few things to take care of: […]
Show full quote
stamasd wrote on 2023-03-30, 00:40:

Games that did not work:
Frontier First Encounters, both the game and the setup program crash at launch;

Most of the crashes seem to be Jemmex-related.

I checked this - and got FFE to run. There are a few things to take care of:

  • FFE uses the 32-bit Borland extender 32RTM/DPMI32VM.OVL. This extender easily chokes if too much memory is available. Best fix is to set environment variable "DPMIMEM=MAXMEM 16383" ( documented )
  • 32RTM isn't quite DPMI compatible. HDPMI has a special fix for it - set environment variable "HDPMI=2048" ( documented )
  • FFE ( or 32RTM ) tries to set register CR0 directly - HDPMI rejects that. So a small adjustment in HDPMI is needed ( see below )

The adjustment in HDPMI is in file hdpmi.asm:

emuspecregmove2:
ife ?EMUMOVCR0REG
ife ?PMIOPL
test ss:[bEnvFlags2], ENVF2_CLRHIWORD ; allow "mov cr0, reg" (32RTM.EXE)
jnz @F
endif
mov al,[esi]
and al,0F8h
cmp al,0C0h ; mov cr0, reg?
jz done ; return and do a GPF
@@:
endif

Interesting. Do you have a fixed HDPMI binary? I don't have a toolchain suite set up to compile my own custom binary with that fix.

That being said, I think there are 2 separate problems. One is the main game itself, which you addressed. The other is the sound setup program (firstenc/game/setup.exe), which AFAIK used DOS4GW. That one doesn't work either with SBEMU loaded. It gives the "loading DOS4GW" message and then it hangs, nothing else happens and I have to power cycle the computer. That happens on many machines. I tried various versions of DOS4GW, all do the same.

Also, my preferred way of running the game is by using the JJFFE binary (because the original binary is too buggy). I have in the past compiled it myself from the JJFFE 2.8a7 sources. I'm attaching my binary, hopefully you can give it a try and see the crashes I'm experiencing. Just drop it in the firstenc/game folder and run it from there.

Attachments

  • Filename
    JJFFEDOS.7z
    File size
    588.44 KiB
    Downloads
    63 downloads
    File comment
    JJFFE 2.8a7
    File license
    Fair use/fair dealing exception

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 327 of 1390, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

I wonder if it's anything to do with FFE's midi problems... which I don't know a whole lot about... but it was apparently broken somehow, which is why some instruments sound off, wrong indexing or something... anyhooo, just wondering if it's one of those bugs that real hardware tolerates and does the best it can, while "theoretically correct" implementations trip over on it.

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 328 of 1390, by Baron von Riedesel

User metadata
Rank Member
Rank
Member
stamasd wrote on 2023-03-30, 12:24:

That being said, I think there are 2 separate problems. One is the main game itself, which you addressed. The other is the sound setup program (firstenc/game/setup.exe), which AFAIK used DOS4GW. That one doesn't work either with SBEMU loaded. It gives the "loading DOS4GW" message and then it hangs, nothing else happens and I have to power cycle the computer. That happens on many machines. I tried various versions of DOS4GW, all do the same.

Yes, that setup program definitely relies on the DOS/4GW runtime -accessing some variable at 0x400017 - it won't work with hdpmi. But, since you don't need the "autodetect" feature, as a "fix", just disable hdpmi32i before running setup.exe, and then enable it again ( running "hdpmi32i -d" and "hdpmi32i -e" ).

Also, my preferred way of running the game is by using the JJFFE binary (because the original binary is too buggy). I have in the past compiled it myself from the JJFFE 2.8a7 sources. I'm attaching my binary, hopefully you can give it a try and see the crashes I'm experiencing. Just drop it in the firstenc/game folder and run it from there.

Looks like this binary doesn't use the Borland extender, but cwsdpmi - hence it doesn't need any of those environment variables mentioned in my previous post. I tried with the "standard" hdpmi32i and got no crashes.

Attachments

Reply 329 of 1390, by stamasd

User metadata
Rank l33t
Rank
l33t

Yes, cwsdpmi; but for me it crashes on any machine I try to run it on with SBEMU, with a Jemmex exception.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 330 of 1390, by stamasd

User metadata
Rank l33t
Rank
l33t
Baron von Riedesel wrote on 2023-03-30, 16:15:
Yes, that setup program definitely relies on the DOS/4GW runtime -accessing some variable at 0x400017 - it won't work with hdpm […]
Show full quote
stamasd wrote on 2023-03-30, 12:24:

That being said, I think there are 2 separate problems. One is the main game itself, which you addressed. The other is the sound setup program (firstenc/game/setup.exe), which AFAIK used DOS4GW. That one doesn't work either with SBEMU loaded. It gives the "loading DOS4GW" message and then it hangs, nothing else happens and I have to power cycle the computer. That happens on many machines. I tried various versions of DOS4GW, all do the same.

Yes, that setup program definitely relies on the DOS/4GW runtime -accessing some variable at 0x400017 - it won't work with hdpmi. But, since you don't need the "autodetect" feature, as a "fix", just disable hdpmi32i before running setup.exe, and then enable it again ( running "hdpmi32i -d" and "hdpmi32i -e" ).

Also, my preferred way of running the game is by using the JJFFE binary (because the original binary is too buggy). I have in the past compiled it myself from the JJFFE 2.8a7 sources. I'm attaching my binary, hopefully you can give it a try and see the crashes I'm experiencing. Just drop it in the firstenc/game folder and run it from there.

Looks like this binary doesn't use the Borland extender, but cwsdpmi - hence it doesn't need any of those environment variables mentioned in my previous post. I tried with the "standard" hdpmi32i and got no crashes.

Also I tested the files in the attachment, on the Aspire One AO722. Whereas the previous package would give me some results, this version of SBEMU + ancillary files gives me "no soundcards found!" So I cannot test it.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 331 of 1390, by Baron von Riedesel

User metadata
Rank Member
Rank
Member
stamasd wrote on 2023-03-30, 18:43:

Also I tested the files in the attachment, on the Aspire One AO722. Whereas the previous package would give me some results, this version of SBEMU + ancillary files gives me "no soundcards found!" So I cannot test it.

Oh yes, I really have to change this anytime soon . The mpxplay code doesn't accept HDA devices that have no mixer ( usually HDMI ) - and I changed the scan method so that such devices may come first, resulting in this error msg. You'll have to run SBEMU with "sbemu /dev1" to start the scan with the second device...

Reply 332 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie

Just uploaded the 1.0 beta2c binary zip in the 1st post. I've been busy with my work so the progress might be slow.

Does anyone happen to know which laptop is the easiest to get, that with VT8233/8235/8237 audio?
I checked HP T5520 thin client (which has VT8233) on my local flea market, and there's some. But I'd prefer a laptop. 😁

Last edited by crazii on 2023-03-31, 00:13. Edited 1 time in total.

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 333 of 1390, by jtchip

User metadata
Rank Member
Rank
Member
crazii wrote on 2023-03-30, 23:36:

Does anyone happen to know which laptop is the easiest to get, that with VT8233/8235/8237 audio?

I had a quick look and the Fujitsu Amilo Pro V2010 seems to have a PN800 possibly with a VT8237 used for audio.
@urbanus seems to have an Amilo L7300T with a VT8235 for audio as posted here.
I don't know they're easy for you to get though.
The list of submitted PCI subsystem IDs appears to be all desktop motherboards, unfortunately.

Reply 334 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie
jtchip wrote on 2023-03-31, 00:00:
I had a quick look and the Fujitsu Amilo Pro V2010 seems to have a PN800 possibly with a VT8237 used for audio. @urbanus seems t […]
Show full quote
crazii wrote on 2023-03-30, 23:36:

Does anyone happen to know which laptop is the easiest to get, that with VT8233/8235/8237 audio?

I had a quick look and the Fujitsu Amilo Pro V2010 seems to have a PN800 possibly with a VT8237 used for audio.
@urbanus seems to have an Amilo L7300T with a VT8235 for audio as posted here.
I don't know they're easy for you to get though.
The list of submitted PCI subsystem IDs appears to be all desktop motherboards, unfortunately.

Thanks 😁, I'll check those both.

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 335 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie

Just tested some games on my TP T54op, Prince of Persia 1&2 have keyboard problem as previously report by Bondi with his x230.
Wolf3D have the walls in games rendered as noises, and freeze on first gun shot(digital sound play) - But it's working fine after I disables EMS.

EDIT: I tried the cmd line parameter NOEMS with wolf3d and it works. more details: https://legacy.3drealms.com/cheat/wolf3d.html
in such way that I can enable EMS which is needed for some games. i.e. Aladdin.

Last edited by crazii on 2023-03-31, 12:23. Edited 1 time in total.

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 337 of 1390, by urbanus

User metadata
Rank Newbie
Rank
Newbie
jtchip wrote on 2023-03-31, 00:00:
I had a quick look and the Fujitsu Amilo Pro V2010 seems to have a PN800 possibly with a VT8237 used for audio. @urbanus seems t […]
Show full quote
crazii wrote on 2023-03-30, 23:36:

Does anyone happen to know which laptop is the easiest to get, that with VT8233/8235/8237 audio?

I had a quick look and the Fujitsu Amilo Pro V2010 seems to have a PN800 possibly with a VT8237 used for audio.
@urbanus seems to have an Amilo L7300T with a VT8235 for audio as posted here.
I don't know they're easy for you to get though.
The list of submitted PCI subsystem IDs appears to be all desktop motherboards, unfortunately.

I can do a test on it with "beta 2c" and list the detailed specs for the Audio chip!

Reply 338 of 1390, by urbanus

User metadata
Rank Newbie
Rank
Newbie

Duke Nukem 3D Audio test: https://www.youtube.com/shorts/BHKfr9fynBs

Added specifications and settings in screenshots in addition to the info below.

Also tried other games without getting any sound: Doom, Jill of the Jungle, Monkey Island
Those games have given me audio on other laptops with SBEMU.

OS: FreeDos (Rufus 3.22)

Laptop: Fujitsu Siemens Amilo L7300T
Windows XP laptop with Intel Celeron 1.4 ghz running Windows 98SE 😀

PCI32

Bus 0 (PCI), Device Number 17, Device Function 5
Vendor 1106h VIA Technologies, Inc.
Device 3059h VT8233/A/8235/8237 AC97 Audio Controller
Command 0001h (I/O Access)
Status 0210h (Has Capabilities List, Medium Timing)
Revision 50h, Header Type 00h, Bus Latency Timer 00h
Self test 00h (Self test not supported)
PCI Class Multimedia, type Audio
Subsystem ID 10781734h VT8233 AC'97 Enhanced Audio Controller (Guess Only!)
Subsystem Vendor 1734h Fujitsu Technology Solutions
Address 0 is an I/O Port : 00001400h
New Capabilities List Present:
Power Management Capability, Version 1.1
Supports low power State D1
Supports low power State D2
Does not support PME# signalling
Current Power State : D0 (Device operational, no power saving)

AUTOEXEC.BAT

<Rufus Defaults>

\SBEMU\jload \SBEMU\qpiemu.dll
\SBEMU\hdpmi32i -r -x
\SBEMU\sbemu

CONFIG.SYS

DOS=HIGH
DEVICE=\SBEMU\jemmex.exe

<Rufus Defaults>

Attachments

Reply 339 of 1390, by crazii

User metadata
Rank Oldbie
Rank
Oldbie

Thanks folks! I found no laptop in my local market, I decided to buy a HP T5520 instead. 😁

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