Allegro.cc - Online Community

Allegro.cc Forums » Installation, Setup & Configuration » SB16, Win98, Alleg42

This thread is locked; no one can reply to it. rss feed Print
SB16, Win98, Alleg42
Michael Austin
Member #7,608
August 2006

Hi,

Trying to use Allegro on a Win98 machine with a Soundblaster 16 card. The proper drivers are installed, and the card works fine with everything else.

I downloaded the allegro demo. (in the misc. package), along with the Binary dll on the allegro.cc website. Upon launching demo.exe, I receive a message box - "demo: Error initialising sound Failed to init digital sound driver OK" Click OK, and the demo continues to run, but with no sound.

I have tried to change the sound driver by using the allegro.cfg [sound] digicard = x option, but it has not helped.

Any ideas?

Thanks.

Michael Austin

Richard Phipps
Member #1,632
November 2001
avatar

Hi Mike,

The strange thing is the DOS version seems to support SB16:

Quote:

DIGI_AUTODETECT - let Allegro pick a digital sound driver
DIGI_NONE - no digital sound
DIGI_SB - Sound Blaster (autodetect type)
DIGI_SB10 - SB 1.0 (8-bit mono single shot dma)
DIGI_SB15 - SB 1.5 (8-bit mono single shot dma)
DIGI_SB20 - SB 2.0 (8-bit mono auto-initialised
dma)
DIGI_SBPRO - SB Pro (8-bit stereo)
DIGI_SB16 - SB16 (16-bit stereo)
DIGI_AUDIODRIVE - ESS AudioDrive
DIGI_SOUNDSCAPE - Ensoniq Soundscape
DIGI_WINSOUNDSYS - Windows Sound System

From:
http://alleg.sourceforge.net/onlinedocs/en/alleg036.html#DIGI_*/DOS

I wonder if this is a problem with the windows directX driver.. :(

Looking at wdsound.c in the allegro source it seems that quite a few logging texts are made in debug mode. Would it be possible to compile allegro 4.2.0 in debug mode and see what is outputted to the console window? (I presume debugging mode outputs to that window..)

Evert
Member #794
November 2000
avatar

Quote:

The strange thing is the DOS version seems to support SB16:

Of course it does! :P
Sounds like he's using the Windows version of Allegro though (or Windows)...

Quote:

(I presume debugging mode outputs to that window..)

Windows doesn't have a proper stderr, so no. It goes to allegro.log.

Richard Phipps
Member #1,632
November 2001
avatar

Quote:

Of course it does! :P

What I meant was that if Allegro DOS had specific support for this then I would have expected the windows versions to be tested with that board too. That is, when the first windows version was made and that SB16 board was still used...

Evert
Member #794
November 2000
avatar

Quote:

had

has. ;)

Quote:

What I meant was that if Allegro DOS had specific support for this then I would have expected the windows versions to be tested with that board too..

The Windows version uses the Windows API; it doesn't use the soundcard directly. In other words, it shouldn't matter what soundcard it is used with, as long as Windows can use it.
As for testing, I wouldn't be surprised if no one has tried that combination before. When I had a SB16, Windows'98 didn't exist yet (wouldn't for several years, in fact) and by the time I had Windows'98, I had a different computer with a different sound card.

Richard Phipps
Member #1,632
November 2001
avatar

So.. are you saying this is a DirectX problem, or a bug in the Allegro sound DirectX code? :)

Evert
Member #794
November 2000
avatar

Quote:

are you saying this is a DirectX problem, or a bug in the Allegro sound DirectX code?

Yes.
The Windows port (or UNIX port for that matter) shouldn't care what type of soundcard is installed on the machine, since it uses a hardware-independent API to acces it.

Richard Phipps
Member #1,632
November 2001
avatar

Yet Mike A said the card worked fine with everything else?

Evert
Member #794
November 2000
avatar

Your point being...?

Richard Phipps
Member #1,632
November 2001
avatar

Quote:

The Windows port (or UNIX port for that matter) shouldn't care what type of soundcard is installed on the machine, since it uses a hardware-independent API to acces it.

So, it should work on a SB16 if other DirectX programs have no problems using it..

Evert
Member #794
November 2000
avatar

Quote:

So, it should work on a SB16 if other DirectX programs have no problems using it..

Yes, it should. I still don't see your point. Did you miss my 'yes' to your question 'are you saying this is a DirectX problem, or a bug in the Allegro sound DirectX code?' above? If so, then yes, it looks like a bug somewhere somehow.

Richard Phipps
Member #1,632
November 2001
avatar

Well, they were two questions which you gave one answer. Guess it was a little confusing. Anyway! Let's see if Mike Austin can use the debug version and see what part it's failing on.

Evert
Member #794
November 2000
avatar

Ah! The comma was relevant. I thought you meant 'is it a problem with one of these two things?', but you meant 'do you think it is a problem with this, or a problem with that?'?

Michael Austin
Member #7,608
August 2006

The log file does not give any relevant info.

The line(s) that is generating the error is here (from demo.c)

   if (install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL) != 0) {
      allegro_message("Error initialising sound\n%s\n", allegro_error);
      install_sound(DIGI_NONE, MIDI_NONE, NULL);
   }

and allegro_error is "Failed to init digital sound driver"

I am going to have to work on getting a debugger on that machine to see if I can find out any more relevant information.

Michael Austin

Richard Phipps
Member #1,632
November 2001
avatar

Mike is this with the special debug compiled version of allegro?

There are lines like this:

_TRACE("Can't set DirectSound cooperative level (%s).\n", ds_err(hr));

In the windows code, so I would expected a more detailed error.

Runesabre
Member #7,573
August 2006
avatar

Take this with a grain of salt...

I recall reading on these forums a few weeks ago that for Windows sound problems, one should explicitly tell Allegro to use DirectX sound drivers because the default selected by AUTODETECT was an allegro specific driver and not necessarily the DirectX driver.

So perhaps try using DIGI_DIRECTX instead of DIGI_AUTODETECT.

_______________
Runesabre
Connecting People through Inspiring Interactive Entertainment
Enspira Online

Evert
Member #794
November 2000
avatar

Better use the allegro.ini (I think...) config file for that, rather than hardcode it.

Go to: