> I got Aley's SAA32.exe working under Windows NT by renaming the 'audio'
> subdirectory to 'saa32audio'

Nice. Really nice. But I tested it here on NT, and it works without
changes. Tunes named "xxx.sng" don't need that audio directory. Tunes
named "xxx" (without suffix) need E-Tracker remote player, which resides
in a short file in the audio directory.

> And only the 'hq' driver works under NT (Aley's sound drivers access the
> hardware directly, resulting in 'attempting to execute privileged
> instruction' crashes if you try to use them).

This is obvious.

> You will probably find that running Aley's player under NT eats up all the
> CPU time ... this is apparently due to the way Aley is updating the screen
> display all the time - try pressing ALT+SPACE in the Dos Box, and selecting
> 'Edit >' and then 'Mark' to disable updating the contents of the screen. I
> find that, when doing this, the CPU usage drops instantly to almost zero,
> with the occasionally peak to at most 30%.
> 
> Under 95, doing the same trick also dramatically reduces the CPU usage ... I
> find (using WinTop) that by disabling the screen update, I have 70% or more
> idle CPU time, as opposed to only 5% otherwise! These figures apply (on my
> father's woefully underpowered 133)  irrespective of the sound output mode
> selected. (HQ or Aley)
> I also find I cannot exit Aley's player if Caps Lock is on!

This is not my fault, alright? You just need to se up your Windows
correctly. If you switch to full-screen (in opposite to Windowed mode),
you should save CPU time as well. Just press Alt+Enter.

> Aley's SAA32 player seems to use ONLY my mono code, which is a little
> unfortunate (and also unfair) since the stereo routines sound better! Also,
> he uses my code in 8-bit mode rather than 16-bit mode. His reason is that my
> functions do not work in stereo or 16-bit modes, and that my data is
> 'incompatible with the windows API'. This is not actually the case, since I
> have been able to successfully use my routines in stereo and 16-bit modes -
> if I had not, how would I know if they were working or not?

Look Dave, I tried to send the data produced by your emulation library to
the soundcard. 8bit mono works, other formats don't.
So the problem is on your side.
I use GenerateMany method to make some output data.
That's all I can say. Please make real player which we can hear, then
start to say I am wrong. I don't like to see you saying my player is
using only 8bit mono, when is it your fault.

It is just an experimental driver, so we must work on it yet, or not?

> Until Aley is able to tell me specifically what's wrong, and until any
> errors in the above have been traced and fixed, there is no way I can fully
> appreciate Aley's player. I cannot find any bugs, and he seems unwilling to
> tell me what he has found. However, I will allow Aley to continue using my
> library, but I must insist that he tells me any bugs that he has found.

I haven't found anything, since I don't want to go into your source code.
I think the problem is in the GenerateMany (in opposite to GenerateOne).

This format is needed by Win32 API and soundcards:

byte 0,1 = first sample, left channel
byte 2,3 = first sample, right channel
byte 4,5 = second sample, left channel
byte 6,7 = second sample, right channel
etc.

This was 16bit stereo, others are similar.
16 bit values resides in two bytes (obviously), value is "signed short".
Lower byte comes first, then higher one.

Does your player follow these rules?

> My routines have also now been extended to add support for additional
> features. A volume boost option is planned for the next release (I notice
> that Aley's routines under Win95 are considerably 'louder' than mine).

Yes, I use "boost" automatically, since I have never seen a tune which
uses maximal volume on all channels, especially on noise channels.

> Aley suggested that I should add a 'channel mute override' option to my
> routines. Why? The original SAA-1099 did not have a 'channel mute override'
> option, so why should my code? If he wants to implement a channel mute
> override in his player, then he could just do something like the following:
> 
> Let M be the mute bitmask as sent to register 20 or 21 (dec) on the SAA-1099
> Let Y ba a user-defined channel mute override bitmask - for each bit set in
> Y, the corresponding channel of the SAA-1099 is muted, irrespective of the
> value of M
> Then, instead of naively calling a function that simulates the OUT 255,M
> function of the soundchip, after a corresponding OUT 511,20 or OUT 511,21
> the function call should be OUT 255, (M & (~Y))

This is not good.
I want it just for the testing.
I want to let the sound is processed, but the particular channel is not
hearable on the output. THis is "mute". What you mentioned is not real
mute, since after re-enabling output on index 20,21, the sound is NOT
exactly the same as it should be.
Or am I wrong? Are the sound generators going on even when they are masked
out on index 20,21?

--

Finally, I'd like to see Dave's mail in my own mailbox rather than on Sam
users (when he wants to tell ME something).

----------------------------------------------------------------
 Aley [eili] Keprt - student, programmer (multimedia soft. etc.)
                    phone: +420-68-538 70 35
     e-mail: [EMAIL PROTECTED]  ***  http://get.to/aley
----------------------------------------------------------------

Reply via email to