Baron-von-Riedesel / VSBHDA

Sound Blaster emulation for DOS
59 stars 3 forks source link

No sound in SaysWho #19

Open shidel opened 1 month ago

shidel commented 1 month ago

This may or may not be an issue in VSBHDA. So, let me explain some stuff first...

SaysWho is a very simple memory game I was able to whip up quickly before the release of FreeDOS 1.3. It was a remake of something I made back in the early 90's. Which in turn was modeled after a simple electronic game for children from the 70's or 80's.

This simple game runs on top of my prototype/proof of concept game engine called the Danger Engine. That game engine powers several programs (BlkDrop a falling block game that is not a Tetris clone, ImgEdit a pixel editor for Danger Engine based programs and FDCredit an easter egg thank you on LiveCD) released with FreeDOS 1.3. But, SaysWho marks the starting point where I started adding sound support into the Danger Engine.

So, that brings use to sound in the Danger Engine. Strictly speaking, the game engine does not currently support Sound Blaster hardware at this time. I did start working on that driver. But, it was having some issues and I had much more important things that needed done. Hopefully, I can someday find the time to go back and work on the game engine and it's drivers.

What the game engine does have is working drivers for the PC-Speaker and Adlib compatible cards. When the engine initializes, it checks for Adlib support. If it is present, it will use that driver. If not, it will fall back on the PC-Speaker driver. As you would know, all Sound Blaster cards and most other audio cards from the DOS era are Adlib compatible.

Now it is possible that there is something wrong with the Adlib driver in the game engine. However, it works great in DOSBox, VMware Fusion and on my Pentium Pro which has a an ISA SoundBlaster AWE64 Gold card. I think under QEMU as well. But, I don't use QEMU much and I forget.

Under VirtualBox, there is no sound. It has been a while. I forget if it falls back to PC-Speaker or fails to emulate the Adlib support. Regardless it is most likely a limitation of VirtualBox. There are many such minor issues with is emulation of hardware and techniques used back in the DOS era. For example, there are several VGA related "tricks" that just won't work in VirtualBox either.

On both the Toshiba and Acer netbook, the driver properly determines the lack of hardware support and falls back to the PC-Speaker when VSBHDA is not loaded.

When VSBHDA is loaded on those machines, the game engine detects Adlib support and uses that driver. But, no sound is output.

The driver is just sending commands to output various tones using PORT I/O. I've tried START.BAT and START16.BAT. But, no joy.

Like I said... It could be something wrong with my driver. But, it works as expected on real hardware and virtual machines.

Baron-von-Riedesel commented 1 month ago

Like I said... It could be something wrong with my driver. But, it works as expected on real hardware and virtual machines.

For me Adlib sound of this little masterpiece works quite well if vsbhda is loaded.

shidel commented 1 month ago

I take it back. :-)

As it turns out, the Toshiba was working fine with FreeDOOM. Music and sound effects all working great using the default BLASTER IRQ 7. But, no sound in SaysWho. Changed it to IRQ 2. Now both work fine on the Toshiba.

A little odd that one worked with IRQ7 and the other did not. But, YAY it works now. :-)

As for the Acer Netbook, I'll just assume it is working. But since my stethoscope is in the garage getting it's tires rotated and oil changed, I just don't hear it.