Baron-von-Riedesel / VSBHDA

Sound Blaster emulation for DOS
59 stars 3 forks source link

Command Line Exceptions #18

Open shidel opened 1 month ago

shidel commented 1 month ago

One of my DOS machines is an old Acer Aspire one D250-1924 netbook. Overall, it makes a great little machine for testing and using FreeDOS. Supporting things like directly booting from SD-CARDs, SSD or USB Flash/Floppy/DVD, Even it's Ethernet port works.

But other than the PC speaker, sound has been problematic.

VSBHDA seems to at least partially work on this machine. The machine does not have a very loud speaker (even under Windows and Linux). But, under DOS and VSBHDA you almost need a stethoscope to hear it at all. This is not the volume settings. I have tried turning those up all the way and it has made little difference. I've tried playing FreeDOOM. There is faint sound effects for a while. But, eventually it stops making noise.

It would be great to have some sort of volume magnifier built-in or output gain. I did not go over all the docs for VSBHDA. So if it already supports that, I missed it.

I've just been using your "START.BAT". (No idea what the other BATS do orwhen they should be used.)

The bigger problem is the eventual Jemm exception that occurs at the command line when the emulator is loaded. This has occurred after quiting FreeDOOM. But, it has even happened after boot when I was busy on another machine and had not touched the netbook at all for a while.

IMG_2818

I am also having all of the same problems on another DOS computer. It is an enormous Toshiba Satellite P25-S5092 battleship sized laptop with nearly every piece of technology available at the time built into it. Oddly no floppy, rs-232 or camera. But, it does have IR, USB, DVD-RAM, Firewire, EtherNet, PCMCIA, Modem, VGA and a Parallel port. It even has large speakers and is fairly loud. But again, you can barely hear anything at all under DOS with VSBHDA.

Attached is a hardware report for the Acer. It was generated using a modern version of Linux Mint for 32-bit computers. I have not got around to generating that report for my other DOS computers at this time.

Acer Aspire one D250-1924.txt

I should say both machines are using the latest release of JEMM under FreeDOS. If you want any additional information or want me to run any tests on those machines, you just need to let me know.

:-)

Baron-von-Riedesel commented 1 month ago

I did not go over all the docs for VSBHDA

Well, the docs aren't THAT huge (200 lines) - to set volume to the max use /VOL9. The audio device is HDA - there should be no problem with the volume setting in vsbhda v1.5. There's the HDAstat.exe tool (in HDAutils), perhaps it gives a hint what's going wrong? Does MpxPlay set the volume correctly?

The bigger problem is the eventual Jemm exception

The first thing to try is to set the emulated SB IRQ to 2 - this IRQ is usually not used by any PCI device.

shidel commented 1 month ago

I did not go over all the docs for VSBHDA

Well, the docs aren't THAT huge (200 lines) - to set volume to the max use /VOL9.

I skimmed the README.md. Oh, that other doc. :-)

The Toshiba battleship is plenty loud enough now.

The Acer Netbook is louder and to be fair probably at "max volume" now. However, it is still very quite. It would be nice to have an option similar to most linux desktops to boost it further. Sure, on very loud sounds you get some distortion. But overall with systems like this that have very small speakers, having a little distortion occasionally is better than only having faint sounds. If I had any sort of hearing disability, I would not be able to hear it well or possibly at all.

As for that /VOL9, shouldn't that be the default? Or, possibly just have a note in that README.md about using that setting for lazy end users (like me)? And, no idea what that /O is for.

The bigger problem is the eventual Jemm exception

The first thing to try is to set the emulated SB IRQ to 2 - this IRQ is usually not used by any PCI device.

I'm not sure if the Toshiba had this issue. So, I left it as IRQ7. So far, I have not seen it have the Jemm exception while VSBHDA has been loaded.

As for the Acer, I am unsure if this has fixed it or not. I booted the machine (VSBHDA not started at boot). Redirected the output of HDAstat to a file. Made the volume change and IRQ changes to the START.BAT file. Changed directories and before I could run HDAstat again, it had a Jemm Exception.

So, I rebooted. Ran the updated START.BAT again. Ran HDAstat (attached). Went and played FreeDoom for a few minutes. Tried a couple other things. Then turned the machine off, removed the SD card to copy the output of HDAstat. Put the SD card back in. Booted it. Ran START again. Mostly letting machine sit to see if exception occurs.

So far, (except for that initial exception) it seems fine and has been running (idle) for nearly an hour. Before, it would only take at most a few minutes before an exception would occur.

Although I don't generally see a Jemm exception on this machine that is not known to be caused by a program or driver, that one exception after changing the IRQ could be something else entirely. Like something in FreeCOM 0.84a. Or, even a BIOS bug.

In general the little Acer makes a great little DOS PC. But, it has some minor quirks. For example, sometimes CTRL+ALT+DEL will reboot the machine. Sometimes, it will cause it to freeze. Trying to power off with FDAPM just causes the screen to go black. Initiating POST and FDAPM coldboot works fine to reboot. But, FDAPM warmboot does some really weird stuff. Etc.

So, I think you can chalk this up to end-user incompetence and close it. If I get another Jemm exception on the Acer when using VSBHDA, I will let you know.

However, I am having a different issue and I'll open that separately. :-)

hdstat2.log

Baron-von-Riedesel commented 1 month ago

Looking at your hdastat2.log, I see that your machine has a lot of "speakers", no "lineout" and one "headphone". If option /O isn't set, the "headphone" will be selected. Sp what's used by vsbhda is "headphone" ( widget 33 ), a "mixer" ( widget 12 ) and a DAC ( widget 2 ). All widgets have "amplifiers", but only the DAC amplifier's volume can be modified. In the log, this amplifier is set to the max. value of 0x40.

What does this mean? No further volume gain seems possible.