> > note: SAAemu 0.60 is now available in Win32 version too.
> > (I hope it will be included in the first Win32 release of SimCoupe.
> > .....Who knows.....)
>
> I was waiting to hear back from you about it - is there anything I can
try?
> I'd be interested in seeing Dave's hq stuff in action, but I've not got
> enough interface documentation to use the DLL you sent me a couple of
weeks
> ago.
>
> What's the sound latency like - is there much lag when playing games?
> (crashes when run under NT so I'll try it tonight...)
>
> Si


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

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).


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!


Aley's earlier comment about me 'not wanting to release my code' was
incorrect on two counts
Firstly, this is not what I said. I had said that I did not want my code to
be released with Aley's player until I was satisfied with the results.
Secondly, I had mistakenly thought Aley to be using a much earlier version
of my library than he actually was, and as a result informed him incorrectly
that the current version, which superseded it some time ago, was
incompatible.
In fact, the version Aley is using is the newer version, and my more recent
maintenance version is entirely compatible.


What I can't seem to understand is where Aley's code is - how can other
software interface with it? Aley has supplied a header file for his library,
and the import library file saaemu.lib. He has also supplied a copy of my
SAASound.dll (this contains only my SAA-1099 simulation functions and does
not contain any of Aley's code). He has not supplied his own dll, however.
Are we to assume that we must link our code to his saa32.exe ?

I have discovered a couple of minor bugs in my emulation dll - there was an
issue with envelopes not being triggered correctly under certain
circumstances which has now been fixed (as far as I can tell) and there was
also a bug in the mono mixing routines. As you can imagine, I envisaged that
only my stereo routines would be used, so the mono mixer was just a sort of
filler to ensure compatibility.
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?

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.

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).

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))

I leave it to Aley to implement this into his player.


dave


Reply via email to