New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test Results for 7 Sound Cards (Additional Sound Card Drivers do not seem to work) #55
Comments
I updated a fix for CMI, please test if you can, thanks. @hjnijlunsing |
Sound Blaster 16 PCI is also fixed. I don't think SBEMU is needed for ESS Solo-1 since the card has good SB support. |
I tried the new version; findings:
The errors are now happening always and the same (in the past; either crash without error; or error after few secs). ESS Solo-1 Dos support is currently very much depending on Motherboard; thus with my ALI chipset it does not work as it does not support the TDMA/WDMA/PC-LINK. On my VIA chipset ESS Solo drivers do work. |
OK, fair enough. There's driver for Solo-1, also Maestro/Allegro in ALSA, but it needs time to porting them. I'll check the code to see what's wrong with the sbpci and CMI drivers. |
I updated another fix, try the latest build, thanks. |
I appreciate your offer, but I have my retro rig with SBLINK+ymf724, and I might have a piece of CMI card or two, but I put them all up. |
BTW can you perform a local build with your PC enabling the log in sc_es1731.c? |
Thanks to @jiyunomegami, now CMI driver works. |
Just tested; my results are different. Positive side: All crashes are resolved ;-) Tests with Doom:
|
I think the CMI driver works, but the problem is the buffer is too long, the interrupt happens in too low frequency that the digital sounds will be delayed(SBEMU will fill new data on each interrupt). besides CMI/ES1371 cards have no "PERIODS", all other cards can divide the buffer into periods and issue an interrupt on each periods done, it's like double/multiple buffering that avoid sound buffer underrun. |
I added experimental code for CMI, can you confirm the changes? thanks |
What's the IRQ number used for your ES1371 card? is it below 7 (may be 5/7) or higher (9/10/11)? |
I forgot that VirtualBox has a SBPCI sound card, I can debug with it. |
With the latest CMI driver, playing the Monkey Island intro, I get some buzzing (within the normal music), and then the system crashes after the intro ends and the game begins. |
The sound is OK if you use card->dma_size -1 and card->period_size -1 in setrate: |
Yes, that's an experimental piece of code - the CMI spec/datasheet says only "count" no mentioning -1, so I just wanna try it. BTW it seems the ES1371 driver has no big problem, only the volume is too low, I adjusted the initial volume now it has sounds, code updated. or you may try the /VOL8 or VOL9 (no spaces, 9 is the maximum) to set volume. We still got problem on CMI8738-PCI-SX, I'll check the code again. |
@volkertb could help with that. |
Very interesting results; two of my CMI cards are working as is the ES1371 now! In fact... They are working better then my reference Sound Blaster Live which seems to have an audible back-tick with FX, not very disturbing, but the CMI and ES1371 do not have these issues. Also tried the onboard VIA VT8233, this also seems to have some buffer issues. Thus kind of the same issues / sound issues as the CMI's were facing earlier. Is a similar fix a possibility? ;-) (I can make sound recordings if required) |
I believe I already did that for VT82xx, but there might be other problems. EDIT: I've fix a bug on VT8237, which is the same chip of 8233, but I don't have a VT8233 PC, only a 8237 bought in order to fix that bug. |
The SBLive uses 4096 bytes buffer which may have the same problem, but I don't know if it is required by the spec or not, I cannot find the spec/datasheet for emu10k1, nor do I have a card to test, but you may change emu10k1.h:37 |
Just tried changing it; unfortunately running SBEMU after the change just results in a lot of noise. |
Then it's probably required by the spec, I remember a timer interrupt is used, you can tune the value of |
There are Live! drivers for Linux and other OSes (along with other materials at the linked issues) - in case that helps. |
I remember checked multiple sources but they are all the same one, besides the special interrupt behavior for real time reaction might not be required/implemented by other code, that's a problem. |
Have you checked the SB Live! OSS driver sources yet? Those should really be different from the drivers in the mainline Linux kernel, since the OSS drivers are licensed differently, and have different people working on them. Alternatively, the sound driver sources in the xBSDs should also be distinct from the Linux drivers, since the Linux driver sources are licensed under GPLv2 and also use the Linux-specific ALSA architecture/model, and the xBSD projects prefer to license their sources more liberally, and therefore can't just copy the Linux sources. |
I had a peek on OSS today, not to the emu10k1 source yet. |
Oh, and in addition to the above sources, you might also want to take a look at the open-source kX Project drivers, which are alternative Windows and macOS drivers for a number of sound cards, including the Sound Blaster Live!. You can find their projects and sources at https://github.com/kxproject I remember switching to kX audio drivers back in the day, when I was using Windows 2000 on a PC with a Sound Blaster Live!, because I was fed up with the buggy Creative drivers. I remember the kX drivers being rock-stable and flawless, unlike the official Creative drivers. 😅 Maybe those driver sources might provide some clues as well. 🙂 |
Does it freezes? seems the upper left corner of screen have a character this time. |
OK, I removed the line that might cause the crash. |
It froze, after the white text. (Everytime I get the character on left-top, the system freezes; this only happens on the SX, not on the 6ch). Debug output for both cards was the same. |
Can you confirm it with the latest code, I removed one problematic line of code. Sorry I just fixed the typo of the log. updated. |
Quick check. unsure if this means anything but when comparing the 'wrong' card with the 'right' card I can see differences
Wrong card:
|
That's the default value of master volume, the difference is that one has one higher default volume, I think it doesn't matter. BTW I removed the CDIN mixer for CMI, that's the last line after TSR. |
There'll be more 33, 34 mixer reads&writes this time. |
The log shows no problem now. |
BTW you can uncomment the line 20 in |
Tried the latest code; indeed the freeze disappeared. Uncommenting the define results in: |
Fixed. I think you can try if it works (although I highly doubt it works), also, the chip version from log may help. |
OK, I think the problem is the mixer, it freezes when log read more times from it. but the underlying reason still needs to be found. Slow progress but at least we get some more information. |
No problem, to me the hobby is getting it to work. Not so much the end result ;-) |
OK, guess we have the same hobby. :) |
Meanwhile I tested the official dos drivers; they crash with all my 3 cards. Looking at the internet, it seems the SX card actually is known for this behavior: https://www.youtube.com/watch?v=dkanu26cKtk&t=1624s (Not sure if you can watch this, but this guy is using the stock drivers for SX and is facing exactly the same issue). Thus the bright side is at least that SBEMU is already outperforming the CMI stock driver. |
You may need check there's no JEMMEX installed, and choose HIMEM.SYS to gain max compatibility for the DOS drivers. Also, the official dos driver may use legacy SB feature for the card, but SBEMU doesn't. So the question will be, whether the Windows/Linux drivers work for those card (even without any dos compatibility in windows)? if they work, then SBEMU should work too. The point is SBEMU works as a pure PCI sound card driver internally. |
I have the infamous 037D chipset, which indeed does not have an FM Chip. I also did not test my cards before SBEMU; I got the pack of 4 cards cheap for around 20 euro's total. |
Ok, I am giving up on the PCI-SX card; I tried the following:
Either it's a horrible, horrible card. Or it is defective. I'm sorry if this (possible) defective caused any unnecessary changes/code on your part; Update: Update 2: --> It's going to the garbage |
It's OK. I wanted it work as you do. I've made the PCI SX of mine working, no big changes but it suddenly worked even when I reverted the changes. I'm confused and then hard reset the PC by power off and on, and it stopped working again, with some noises. I dump the registers and found they read back -1 occasionally and the interrupt status is wrong without the summery bit - it might have hw defection or just broken old. it still produces noise after I fixed them. Then I just rolled a bit of the audio plug...and the noise is gone and sound is working.😂 I'll update the code later, Incase it works for you too, also plz make sure the audio cable is plugged into “front speaker” jack and is connected well. |
I pushed code now you can test it. |
Tested it, but no sound. I guess the card is toast. Moving on ;-) |
Yes the driver always use 4 speaker as Linux driver does, there is a flag N4SPK or something is set that copy front speaker data to rear. But I never tested the rear output. |
BTW I just tested with this "YMH 724B-V" https://www.vogons.org/viewtopic.php?p=1025196#p1025196 , which also has the chip version 37 (CMI faked as an YMF XG), So I have 3 CMI cards actually, except that the last one is a fake YMF (I thought it was YMF when I bought it) and I don't like it very much. :) |
I remember that there's talks about 8338 not working, also /T5 with divide by zero problem, but I cannot find it LOL, can you help me find it? I added some fix that might cause /0 error, but maybe not all of them. |
Yes; it was in this same thread @vicokoby mentioned he had issues with Hocus Pucus
Then I tested:
Reply: (From @vicokoby)
Some more debugging questions:
Reply: (@vicokoby )
I'll check if the division by zero is fixed by the latest build (Personally I can't reproduce the performance issue, but perhaps the above results will help with that) Update: |
Hi I just tested 7 sound cards with SBEMU-X here are the results:
(Tested only with Quake)
Sound Blaster Live 5.1 [SB0100] for reference:
Works, no issues. Sound a bit on the low side; but same as SB-EMU
CMI8738-PCI-6CH-LX, CMI-8738-PCI-6CH, CMI8738-PCI-SX
Sound Card: CMI
Real mode support: enabled
Protected mode support: enabled
OPL3 Emulation at port 388: enabled
Crash
Sometime followed after a few seconds by:
JemmEx: Exception 0D or 06
Sound Blaster 16 PCI
Sound Card: ENS
Real mode support: enabled
Protected mode support: enabled
OPL3 Emulation at port 388: enabled
Crash
ESS-Solo-1 [ES1938S]
No Supported Sound Card Found
AC97 [ULi Electronics Inc. M5455]
No Supported Sound Card Found
Originally posted by @hjnijlunsing in sbemu-x#11
The text was updated successfully, but these errors were encountered: