Hi Eric, Although the VBE/AI standard was initially envisioned to be provided in the BIOS of sound cards in the same way as how the VBE standard was integrated in the BIOS of graphics cards, it could also be implemented in the form of a loadable DOS driver.
There are two kinds of VBE/AI drivers: WAVE drivers (for digital audio) and MIDI drivers (for music). The drivers would expose a high level audio API through int 10h, as an extension to the VBE graphics API. This is not unlike the DIGPAK and MIDPAK drivers from John Ratcliff of The Audio Solution, which would expose a high level audio API that could be accessed through int 66h. As a matter of fact, John Ratcliff was listed as a committee member on the VBE/AI specification PDF document, as was John Miles of the Miles Design AIL drivers. These driver models probably formed the basis for developing this attempt at an industry standard DOS audio API. As far as I know, no games supported VBE/AI directly (anyone please correct me if I'm wrong!), but some games that were built on either MIDPAK/DIGPAK or Miles/AIL drivers shipped with "wrapper" drivers that allowed such games to work with sound devices that had VBE/AI drivers. You can recognize those drivers by the file names VESADIG.ADV and VESAMID.ADV (in the case of Miles/AIL) and DIGVESA.COM in the case of DIGPAK. Now you might be wondering: what sound devices actually had VBE/AI drivers? Well, the VBE/AI SDK came with wave drivers for the following soiund devices: WAVE drivers: Sound Blaster (and compatibles), Pro Audio Spectrum, Disney Sound Source MIDI drivers: OPL2 (Adlib and compatibles), MPU-401 The SDK that included these drivers (TSRs in the form of loadable COM files) can be downloaded here: - http://cd.textfiles.com/freedom/CODE/SOUND/VAISDK.TXT - http://cd.textfiles.com/freedom/CODE/SOUND/VAISDK.ZIP The aforementioned VBE/AI wrapper drivers for Miles/AIL and DIGPAK can be found through a bit of Googling on-line. They shipped with some games. John Miles released his AIL2 drivers as open source some years ago, but he didn't write the VBE/AI wrapper drivers and he doesn't know who did, unfortunately. 😞 (If anybody reading this does know, please reply! Thanks.) The official VBE/AI specification can be found as a PDF document on-line. Although this is likely considered a defunct standard these days, I'm not sure whether it's legal to freely distribute that document. Perhaps we'll have to contact VESA for a clarification on the redistribution of unsuccessful legacy standards such as this one. Now the interesting part is that if you combine that VBE/AI WAVE driver for the Disney Sound Source with the VESADIG.ADV Miles/AIL wrapper driver, you can add Disney Sound Source support to any game that uses Miles Design AIL2 drivers. I successfully tested this with Dune 2, a game that does not support the Disney Sound Source out of the box. There is quite an extensive list of games that use AIL2 drivers and could thus be patched to support any audio device that has VBE/AI drivers. Now VBE/AI has been proposed before as an audio API standard for FreeDOS to standardize on: http://wiki.freedos.org/wiki/index.php/(Free)DOS_development_wishlist Of course, this would become a more interesting option as open source VBE/AI drivers are developed for some modern audio devices, such as PCI sound cards, AC'97, Intel HD Audio and perhaps even USB audio. FreeDOS could then start shipping with those drivers. And by patching many DOS games that rely on AIL2 drivers to use VESADIG.ADV and possibly also VESAMID.ADV, such games could be made to work with such open source drivers as well. It would be especially nice if we could find out who currently owns the right to the source code of those wrapper drivers and if that person could be persuaded to release them as open source, so such a patching utility could also be distributed with FreeDOS. All in all, an ambitious project perhaps, but a nostalgic geek like me can dream, right? 😉 Anyway, my first attempt at something like this would be to combine the ich2player code and vsb code to develop an open source VBE/AI driver for AC'97 audio devices that can be found integrated in many motherboards in the early to mid 2000s. That doesn't cover everything out there, but it would be a start. Again, help is welcome! If there is enough interest to persue this further, I'll ask in the freedos-developers mailing list whether there are any experienced assembly coders there who would be willing to help me with this. As for why I asked for QPI support in Jemm, that's the API that was used in the vsb source code. But reading further into the JLM/jload documentation, apparently the JLM API is basically a subset of the Windows 3x/9x VMM API, so it might be worth porting it to a JLM after all. I have zero experience with that, though, so again, help would be welcome. On Wed, Aug 19, 2020 at 8:45 AM Eric Auer <e.a...@jpberlin.de> wrote: > > Hoi Volkert, > > cool that you are working on an AC97 VBE/AI sound > system! The question is: Do you know any DOS games > which support VBE/AI for sound? I think only very > few "sound and graphics" cards had that in their > BIOS and therefore very few games supported it? > > Regards, Eric > > > * https://github.com/volkertb/temu-vsb > > * https://github.com/volkertb/ich2player > > * https://github.com/volkertb/JUDAS > > > I opened a feature request on GitHub for QPI support in Jemm: > > https://github.com/Baron-von-Riedesel/Jemm/issues/6 > > PS: Why QEMM QPI? I think there was an > easier MS EMM386 API for I/O hooking. > > > > _______________________________________________ > 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