Hi everyone!

Thank Goodness the US Supreme Court ruled in favor of common sense today.
The copying of APIs for the purpose of implementation in original work is
considered Fair Use! 🥳

Also today, as coincidence would have it, someone at VESA responded to my
inquiry on the current legal status of the VBE/AI SDK that has been
floating around the internet. Their response was that VESA no longer
supports VBE/AI and that it is in the public domain, and that we are free
to do with the sources whatever we want. ☺️

I therefore unpacked the ZIP file from cd.textfiles.com and published it to
GitHub, with the exception of one subfolder: MIDI/OPL2/TOOLS/.

The repo can be found at https://github.com/volkertb/vbe-ai-sdk

The reason why I left that one subfolder out of the repository is because
it contained files copyrighted by The Fat Man, with non-free terms of use.
Specifically, those are thimbres for OPL2 and OPL3 FM synthesizer chips as
found in many sound cards back in the '90s.

I've emailed George Sanger (a.k.a. "The Fat Man") with the question of
whether he would be open to releasing those files as open source. If he
agrees, I'll add that subfolder to the repository in a later commit.
However, those files shouldn't be required when you're writing new VBE/AI
sound drivers. As far as I understand it, you might only need those
thimbres when you want to support the VBE/AI Adlib driver in your game and
have a properly sounding instrument mapping when your game music is
composed according to the General MIDI specification. But I digress.

I also added the VBE/AI 1.0 specification document in PDF format
<https://github.com/volkertb/vbe-ai-sdk/blob/main/VBEAI100.pdf> to the
repository, so it's a one-stop shop for anybody here who'd like to take a
stab at writing standard open source DOS audio drivers and/or
applications/games making use of such drivers.

The SDK also contains some existing VBE/AI drivers for Sound Blaster,
Adlib, Disney Sound Source and MPU-401 MIDI. Those are binary-only,
however. But if those are now public domain as well, perhaps we'll be able
to reverse-engineer the COM files using something like Ghidra. (I've asked
this in a follow-up question to VESA. I'll let you know if I get a more
specific answer on that as well.)

I hope all of this will be a useful piece of the puzzle w.r.t. scratching
off the "*Drivers for modern, unsupported hardware*" item from the (Free)DOS
development wishlist
<http://wiki.freedos.org/wiki/index.php/(Free)DOS_development_wishlist>. ☺️

I've been working on the development of a VBE/AI driver for Intel ICHx
AC'97 devices in my spare time, but I'm not very experienced in low level
assembly and C development, so progress has been slow. Any help is welcome,
though! 😃

It would be nice to see VBE/AI drivers for modern sound devices such as
these:

   - AC'97/ICHx (like what I've been working on)
   - Intel HD Audio
   - USB Audio
   - VirtIO (paravirtualized) Sound Driver <http://VirtIO Sound Driver>
   - Popular PCI sound cards (SB Live, Audigy, etc)
   - OPL2LPT/OPL3LPT
   - MIDI over RS-232
   - Some other cool stuff that I'm undoubtedly missing here

Note that the VBE/AI sources currently include the "far pascal" keyword
that gcc-ia16 doesn't support yet. That's being looked into, though.
<https://github.com/tkchia/gcc-ia16/issues/45#issuecomment-812819327> (Help
with that is welcome too, of course!)

Anyway, I hope this is useful to at least some of you.

have a great day/evening/night, everyone! 🤗

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

Reply via email to