Joлl Bourquard wrote:
You're correct, it is FM sound. Sorry.
Have you tried my experimental OPL implementation from www.dosemu.org/stas ? It is not intended to work good, but somehow it works for some people.
I meant, to open in stereo while keeping the same sampling rate.
You probably mean to halve the sampling rate, as the sample size becames twice as large. Well, not that I like such a solutions. In general I don't like adding a driver- specific hack at all. The next time someone will come around and say that his driver only supports 44100:) But in general, what's the difference between what you suggest and what actually happens in your case now? Dosemu is trying to set mono, the driver refuses and sets stereo anyway, right? Then you lower the freq manually... should work. But I guess dosemu is unhappy that the driver ignored the request, so it keeps trying to re-initialize it, hence the distortion. Try the attached patch (above the previous one) - it will (hopefully) just ignore the failure letting you to tune the freq.
If DIRECT_WRITE_FREQ is not changed, the games hangs after ~5 seconds with plenty of "ERROR: SB: direct write buffer overflowed!" in the console.
It is not intended to hang, but it probably becames horribly slowed down because dosemu it writing that error message thousands of times per second. I'll fix that (later) to print only one message per an overflow. This error is actually harmless, it only means that some bytes are being skipped from the sound stream, reducing the sound quality.
I suggest you replace the default value with 11025
That doesn't work properly for me neither with Goblins nor with some other games. Making it a run-time option will help much better.
Now for sure, my i810 driver sucks. Do you know if there is: - an alternative ? (I'm using kernel 2.4.23)
You said it is ALSA. ALSA is not included in 2.4.any kernels. Either you used a standalone ALSA modules or you are using an OSS driver.
- an incompatibility between it and DosEMU ?
Dosemu needs all the OSS functionality present and working accordingly to an OSS (sparse) docs. Otherwise expect troubles.
- a place where I could report the problem to the i810 driver guys ?
For the OSS drivers that should be [EMAIL PROTECTED] (I don't think they'll care about an i810 though), for ALSA - see their site www.alsa-project.org. But you should mention your xmms problems there as mentioning dosemu problems anywhere is a sure way to get the bug report ignored:) Dosemu is known to be incompatible with everything in this world and most people simply don't care about it any more.
--- linux_sound.c Sun Oct 5 16:37:44 2003
+++ linux_sound.c Mon Oct 6 22:14:37 2003
@@ -278,7 +278,7 @@
result = 0;
if (ioctl (dsp_fd, SNDCTL_DSP_SAMPLESIZE, &bits)<0) {
S_printf ("SB:[Linux] Warning: ioctl() (SAMPLESIZE) failed: %s\n",
strerror(errno));
- result = -1;
+// result = -1;
}
if (linux_set_OSS_fragsize(sound_frag) == DMA_HANDLER_NOT_OK) {
S_printf ("SB:[Linux] Warning: failed to change sound fragment size.\n");
