Bryan,
Unfortunately, this is a difficult problem to solve. DOS didn't have a sound 
API: programs just twiddled with the sound hardware directly. The PC speaker 
was guaranteed to be present, and there was a good bet that any given PC used 
for games would have one of the big name sound cards such as Sound Blaster or 
Ad Lib present, so these provided a quasi-standard, but as Windows became more 
prevalent and more and more games were written with the expectation of running 
in a multitasking environment, they started using the Windows sound API 
instead,  which would work with any sound hardware that there was a Windows 
driver for. So the standardization on sound-blaster et al. for sound hardware 
went away, and none of the hardware that old DOS games had used was available 
on newer systems, except the PC speaker. And the new hardware was so varied 
that people that were still writing DOS software (such as the FreeDOS project) 
couldn't really pick any one sound device that would work on more than a small 
fraction of new machines, except for the PC speaker.
So for any machine more recent than 2000-ish, you won't get more than PC 
speaker sound. To change that, you'd need to design a sound driver API for DOS, 
and then you'd need to write a program that could intercept attempts to 
communicate with Sound Blaster hardware (or some other DOS-era sound card) and 
pretend to be a Sound Blaster card, and then call the sound API you'd designed 
to play the necessary sounds, and then you'd need to write a *huge* bunch of 
drivers that would accept calls to that sound API.
More realistically, you probably wouldn't be able to write all the sound 
drivers you'd need for decent coverage of all the sound hardware ever used in a 
PC in the past 20 years, so you'd need to use existing drivers for some other 
operating system (likely Linux). The shim layer would need to, at a minimum, 
supply all the internal kernel functions used by all the sound drivers for 
whatever OS you were using as a driver source, and would also likely have to 
translate between your sound API and the sound API for that OS, unless you 
decided to just use that API as your DOS sound API.
It's not impossible, but it would take a huge amount of work to get working.
Jon Brase

-------- Original message --------
From: Bryan Kilgallin <kilgal...@iinet.net.au> 
Date: 1/19/2020  01:15  (GMT-06:00) 
To: freedos-user@lists.sourceforge.net 
Subject: [Freedos-user] Game sound 

I've installed FreeDOS in a 2003 Dell OptiPlex GX270 32-bit PC. The only 
sound is from the built-in speaker. So when I play hangman, the beeps, 
buzzes and tunes seem faintly distant.

I'd like to cable the motherboard's AC'97 sound, into an external 
amplifier and so to speakers on my desk!

I've skimmed the source file HANGMAN.BAS. But I didn't recognise 
anywhere to tweak sound output.

AUTOEXEC.BAT is in C\ and C\FDOS\. I've edited both as follows.

        SET BLASTER=A220 I5 D1 T3 H6
-- 
members.iinet.net.au/~kilgallin/


_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to