-
Notifications
You must be signed in to change notification settings - Fork 38
YMF firmware size fix, PCM/Effect buffer size fixes, other minor changes #84
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
Conversation
Cool. I'm still stuck with the DOOM crash (some improvements but not done), so I don't have time to test with my desktop, I'll do it later. :) |
I get crashes in Duke Nukem 3D on startup, the setup.exe runs OK and you can test sound FX.
All changes can be seen here (revert of the above reverts): |
OK, thanks. I'll test it again. BTW do you use the latest HDPMI32i.EXE in the zip? There'll be problem if it is not used, which is indicated in the EDIT: I should've at anyone involved the source code, when I updated the HDPMI source code. This new change might also fix your NIC problem. |
But there's some bugs in HDPMI that I have commit yet, plz wait until I get it done. |
OK. hdpmi: fatal exit 0007 Exception 0E in ring 0 [EIP]=26 8B 07 E8 2D FC FF FF F6 C4 04 AB |
Wait, after pulling your latest changes "add new HDPMI API call." etc. it doesn't crash! |
Just ignore this if you are busy:
1073:0012 is the YMF754 and 10EC:8168 is the onboard RTL8168 NIC. |
I went to bed early last night and just woke up. Today is Chinese Luna New year eve and I believe you have a similar date for new year, so happy new year 😄 Theoretically listing PCI is not part of sbemu and like some dos PCI drivers(i.e.some NIC diver) shipped with a stand-alone pciinfo.exe, I think you can build a stand-alone tool that comes with sbemu by default, create a new folder named tools or something and put the extra code and makefile in it and it's done. Here's a reference of pciinfo which has a much similar function as you said, Also Listing PCI devices could be done by using pcibios.h in mpxplay/au_cards, without using linux pci codes - but you can do what you see fit. |
Happy new year! I know there are various tools to get PCI info. Apparently even lspci has a dos port. I thought maybe the Linux stuff could be used for multiple sound cards that have the same driver, detecting subtractive decode bridges, etc. |
OK, what I mean is to use the pcibios_readconfig_* to enumerate all bus/dev/functions of pci devices, not pcibios_search_devices, pcibios_search_devices needs known device ids to work. Actually usbddos has a pci.h/pci.c with some structure definitions i.e. I think the best way is to add more functions to pcibios.h, otherwise there's might be more redundant codes, but if linux pci functions are used internally for specific sound card drivers to ease the porting, I think it could be OK. The idea is that either pcibois.h be replaced totally by linux pci header or we add more functions to it. In such way the code is in clean shape for better maintenance. |
In commit 1d4260a did you mean to add -save-temps to LDFLAGS? Also with -flto=auto my linux pci code segfaults. If I compile only those files without -flto=auto it works.
|
The -flto=auto is not a big problem. I found where it was crashing. Just one place. The code seems OK, but adding a 1 microsecond delay near where it crashes makes it work. |
It seems that the Creative ctxfi and emu10k1x drivers do not like -O2, I have to use the old -Os option for all files or else sbemu crashes on startup. BTW, I added /SCFM and /SCMPU options, to select different FM/MPU sound cards, and got rid of main_hw_fmport etc. And, do you have an ALS4000 card? |
The au_cards/sc_ich.c driver also crashes with -O2.
|
Can the problems be fixed when using O2? There was crash on startup and I fixed it, but it might need more test and fixes. I have 2 ALS cards bought from Japan, AW540 and AW200, but I don't know if any of them is ALS4000, and I never tested them. |
Save temps can removed, there's one warning when enabling LTO. |
I don't know what goes wrong with -O2. It might take alot of time and turn out to be a compiler problem. AOpen AW200 should work with the ALS4000 driver. AW540 is different, it has a ForteMedia FM801 chip. |
OK. I'll check that when I have time. I can test the AW200 when most of the compatibility problem are fixed. |
|
tested sc_ich.c with O2 in VirtualBox and it didn't crash, but I'm too lazy to test it on my ICH laptops. LOL |
This works with YMF754 now. Both onboard and PCI cards.
The "size" of the firmware in the OSS header file was the number of 4 byte dwords, not the size in bytes...
Maybe the YMF724/YMF744 have the firmware in ROM since they appear to work without installing it.