SAAemu : The SAA1099 Soundchip Emulator

alpha version 0.40, by © Aley Keprt, 1997-98

<incl. the Sam Coupé music player SamPlay>

 

This is the official documentation for audio part of SamPlay, SimCoupé, and possibly other programs based on a TSR audio system commonly known as SAA-TSR. It also describes the usage of SamPlay 0.40. The audio syst‚m described here is no longer called ”SAA-TSR”, now it is simply SAAemu.

 

News in this version of SAAemu:

 

 

Contents:

  1. Hardware And Software Requirements
  2. Legal Stuff
  3. Installation
  4. About Soundcard Drivers
  5. Usage In SimCoupé
  6. SamPlay - Generic Music Module Player
  7. Known Problems And Their Solutions
  8. Using SAA-TSR In Your Own Programs
  9. Not Implemented Features
  10. Contacting The Author

 

 

1. Hardware And Software Requirements

To use SAAemu you need a PC AT 386+ computer with a soundcard. SAAemu supports several soundcards.

You need also MS-DOS, MS-Windows or any other system which implements int21h for system calling and supports executable .COM files. The audio system was successfuly tested on MS-DOS 6.22 in both real and v86 mode, and several DPMI servers (including MS-Windows 3.1, MS-Windows 95, CWSDPMI for DJGPP).

SAAemu is Intel-CPU dependent, so it is unpossible to use it on any non-PC system. It should be possible to use SAAemu on Linux based machines, but I haven’t tested it yet. On Linux, it requires either direct access to the soundcard, or the drivers must be rewritten.

SAAemu emulates the chip Philips SAA1099 only, so it doesn’t do anything else, and it is NOT a whole player etc. It is intended to be included in other programs (emulators or music players).

 

 

2. Legal Stuff

You may give copies of this package to other people as long as no file is changed, added or removed.

This program comes to you WITHOUT ANY WARRANTY. No matter what happens, no matter how bad, I'm not going to be held responsible.

YOU MAY NOT CHARGE ANYTHING FOR THIS PACKAGE - DISTRIBUTORS WHO ARE INTERESTED IN THIS PROGRAM MUST WRITE TO ME FIRST AND HAVE MY APPROVAL! (Yeah, even by snail mail if you don't have e-mail access).

USE OF THIS PACKAGE COMMERCIALLY IS EXPRESSLY FORBIDDEN WITHOUT WRITTEN

AND SIGNED APPROVAL FROM ME. COMMERCIAL USE INVOLVES ANY USE OR SUPPORT THE SAAemu IN ANY OTHER PROGRAM, IN WHICH MONEY IS INVOLVED (SPECIFICALLY THE CREATION OF ANY MUSIC PLAYERS OR EMULATORS WHERE PAYMENT IS INVOLVED). THIS PACKAGE IS ONLY FREEWARE FOR NON-COMMERCIAL USE.

 

 

3. Installation

You’ve probably just unpacked the original SAA040.ZIP package. If you aren’t sure it was the original unmodified package, please reload it from Internet distribution site http://www.inf.upol.cz/~keprta/sam.

After unpacking all the files into any directory, please run SAASETUP.EXE program. Then follow the instructions. When installed, you’ll get a new file called SAA-TSR.DRV which is the audio driver configured for your soundcard.

Now copy this file to your programs’ directories those use SAA-TSR. If you are using SamPlay or SimCoupé, please see the instructions below. (If you install SAAemu directly to the other program‘s directory, you don‘t need to copy any files.)

 

 

4. About Sound Card Drivers

SAA-TSR supports all known types of soundcards.

 

AdLib: The oldest known soundcard AdLib is fully supported by SAAemu. This is the basic audio driver.

Creative Labs Sound Blaster: SAAemu supports all Sound Blaster models. It plays mono or stereo depending on the card ability. If you encounter any problems with stereo sound driver, configure your soundcard as the regular ”Sound Blaster”. Although, it doesn‘t use a capability of EMU8000 on SB32.

Aztech Sound Galaxy: SAAemu is capable to produce the stereo sound on Sound Galaxy NX/16 series soundcards. If you encounter any problems, configure your soundcard as the regular ”Sound Blaster”. The Sound Galaxy 16 driver uses CS4231(Crystal Codec) mixer instead of Sound Blaster Pro one.

Windows Sound System: SAAemu supports WSS compatible soundcards which contain OPL3 synthesizer. The driver is the same one as Sound Galaxy 16 uses.

Gravis UltraSound: SAAemu can play on GUS either directly using GF1 synthesizer or using SBOS (AdLib emulation). Obviously, the direct GF1 driver is better, and THIS IS THE BEST DRIVER OF SAAemu.

AMD InterWave: InterWave is supported in GF1 mode, since the new features of InterWave (which aren‘t in regular GF1) are not necessary for SAAemu. Also, you NEED A RAM onboard to use InterWave driver.

 

 

5. Usage In SimCoupé

SimCoupé v0.74 is able to cooperate with SAA-TSR audio system, but is unable to work with SAA-TSR.DRV audio drivers directly. Follow these instructions:

1. Run SAASTUP and setup your soundcard.

1. Copy the file called SAA-TSR.DRV to your SimCoupé directory.

2. Rename the SAA-TSR.DRV to MYDRIVER.COM.

3. Run the program MYDRIVER.COM before running SimCoupé.

4. When finishing SimCoupé, run the program MYDRIVER.COM again.

It is possible that future versions of SimCoupé will be able to work with the SAA-TSR audio drivers directly.

 

 

6. SamPlay - Generic Music Module Player

SamPlay is a program which allows you to play almost any tune from any Sam Coupé program. SamPlay is officialy the part of SAAemu package, but it is more than only SAAemu itself. SamPlay consist of two independent executable files and some data files. If you own a Sound Blaster compatible soundcard, you can use SBAA.EXE, which utilizes the digital wave out to make the sound. The other file SAA.EXE is the common player which uses SAAemu audio drivers to make the sound. As you can see, SBAA.EXE doesn’t need any other part of SAAemu package.

If you still don’t know what it does, type “SAA TETRIS.SNG”, and you’ll hear the tune of the famous Tetirs by Lord Insanity of The Lords. The SAAemu package doesn’t contain any other tunes. If you want any, just copy the music files from your (original only :-) SamCoupé games to your hard drive. I’ve tested it with several tunes, i.e. Shanghai, Out Of Colour, Splat (playable demo), Prince Of Perisa (playable demo) etc. If you encounter any problems with converting tunes to SamPlay, feel free to contact me (see the address below).

You can also download some nice tunes from the web. Go to the address listed below and follow the links.

 

 

7. Known Problems And Their Solutions

There are no known bugs. SAAemu audio system is designed to be compatible with as many systems as possible. It extends the native MS-DOS command set, so it is simply usable in any operating system (including DOS pmode extenders) which supports DOS int21h command set.

In the fact I’m just searching for a Borland -> GNU object file converter, so I’ll be able to make a Linux version as soon as I get the converting stuff.

It is possible to port whole SAAemu audio system to Unix or MacIntosh, BUT! The soundcards are the VERY BIG problem, because they are incompatible with each other. In the fact I’m NOT supporting any non-Intel machines. Go and but Intel-based PC AT computer, it’s quite cheap and the right STANDARD! I won‘t waste my time with other platforms. I’m not a Highlander, so my lifetime is limited.

If you have $omething special for me, I am able to make anything for you, including the emulator of anything for any hardware platform.

 

 

8. Using SAAemu In Your Own Programs

It is possible to get the SAAemu SDK (Software Developers Kit). If your are going to make any program which could use the SAAemu audio system, just send a request to AleyKeprt@bigfoot.com, and I’ll send you the SDK package. But don’t expect anything superb - it’s just a collection of several sources, examples and description of communication protocol.

note: If you won‘t get the SDK package in some days, please send your request again. I‘m only a human and I often forget something. Sorry.

 

 

9. Not Implemented Features

Here comes the “not implemented yet” list:

  1. Envelopes aren’t emulated at all.
  2. Envelope-ctrl is used only to override the channel-mask bit. (It implies that some tunes, e.g. TETRIS.SNG still plays, even you mask out all the channels.)
  3. Noise generators aren’t emulated correctly on OPL2/3 sound drivers. This is due to my unability to make any noise on OPL2/3 soundcards. Can anyone help?
  4. The reset bit of register 28 is not emulated. (But the sound-enable bit is emulated correctly.) But who could need it? Nobody.

 

 

10. Contacting The Author

Feel free to contact the author and send him any comments, and money as well.

Any contributions are warmly welcomed. Let you show me I am doing a good thing.

SAAemu web site: http://www.inf.upol.cz/~keprta/sam

 

some e-mail addresses:

Aley Keprt, the author of SAAemu: AleyKeprt@bigfoot.com

FMS, the author of Z80 emulator: FMS@freeflight.com

A.J.Skillman, the author of SimCoupé: ASkillma@cambridge.arm.com

D.Gommeren, the author of Tetris: GommerD@interpac.be