Jump to content

Kx audio driver mod [Sound blaster live!, audigy 1/2/4/RX emu edsp]

sound blaster audio driver live! audigy RX kx

  • Please log in to reply
23 replies to this topic

#1
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

KX AUDIO DRIVER MOD

 

Hi guys i am a small developer, i really like to use my sound blaster cards on my machines and i love also coding, so when i find the source code for the kx audio driver on git hub and then Eugene, the creator of kx audio driver decided to no longer maintain the project, i decided to start working on a mod of this driver. 

 

With my mod, created starting from the sources of the last version of kx audio driver, and also by using apple developer documentation for pci and audio drivers as reference, i am working to achieve 2 things mainly: get all the cards supported by the driver to work with all the recent versions os macOS and add support for other cards that are not officially supported by the driver that works or could, but needs to be more properly supported.

 

In the time being the only things i have modded are:

 

- increased the simple buffer frames number with different values for emu10k1 based cards and emu10k2 based cards (including recent audigy 4 and rx) to reduce and all the audio cracking issues and possibly fixing all of them on a lot of cards

 

- added a more proper support for the pci express sound blaster audigy rx (which basically is an audigy 4 with a pcie bridge chip) 

 

- added more fancy names for the cards in the settings and other menus (so the name will be, for example, kx Sound Blaster live! 5.1 SB0060 [e880] instead of kx SB0060 [e880] witch was shown in the original driver)

 

- created a script file to use with the driver for debug and also installer replacement, it can be also used to unload and reload, replacement of the driver without rebooting

 

What i'd like to implement but i don't know how to do:

I'd like mainly to add a more proper support to the pci bridge chip of the audigy rx, have audio inputs working, have all audio outs to work like in windows, so with working 5.1 and 7.1 and not only the rear audio speaker, fix the support when using more than one card, to get all the cards shown in the settings and other menus

 

i am currently still working on it and also doing testing, with mine 2 hackintosh machines and some test bench machines. Because i am still working on it i can't revise the modded driver right now, but i will do in the near future when i got the driver to work with more stability, and it will be open source, on git hub as a kx audio driver branch on the official GitHub page.

 

Currently the driver works fine in sierra, but needs some mods for the cracking issues and stability before releasing it for an alpha, if other developers would like to help me, you can, anso and hand from other peoples with testing and feedback will be nice.

 

one ting that i currently need are pci ids and subsys ids for the creative cards (like the subsys id for the sound blaster audigy 4 sb0660 that i cant't find anywhere on the web, but it should work with the driver, i just need that ids to initialize more properly the card) and also pci express initialization code for the pci chip of the audigy rx's pci bridge chip and code to get audio input to work

 

EDIT: downloads available 

 

link for the kext only (if you have clover put it in [your clover efi folder]/clover/kexts/[your macOS version]/ so it will not be deleted when updating macOS):

 
link for the installer pack (the best way to install it, but you have to reinstall it when you upgrade macOS):

Attached Files



#2
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

Just for who wants to see which audio cards will be recognized by the audio driver, i link to you a .cpp code file which is used to recognize the audio cards in the driver, if you have a copy of the latest official sources, you will find the original version into the project folder/driver/frname.cpp, you can not use mine file as replacement for the frname that there is in the official sources because i use some custom properties, methods and variables that needs changes in other parts of the code to work

#include "kx.h"

int kx_get_friendly_name(unsigned int device,unsigned int subsys,unsigned int chiprev,
                         char *tmp_str,
                         unsigned char &is_51,
                         unsigned char &has_surdac,
                         unsigned char &is_aps,
                         unsigned char &is_10k2,
                         unsigned char &is_10k3,
                         unsigned char &is_a2,
                         unsigned char &is_a2ex,
                         unsigned char &is_k8,
                         unsigned char &is_a4,
                         unsigned char &is_edsp,
                         char &have_ac97,
                         char &lack_ac97,
                         unsigned char &is_zsnb,
                         unsigned char &is_cardbus
                         ,CardBus busName);

int kx_get_friendly_name(unsigned int device,unsigned int subsys,unsigned int chiprev,
                         char *tmp_str,
                         unsigned char &is_51,
                         unsigned char &has_surdac,
                         unsigned char &is_aps,
                         unsigned char &is_10k2,
                         unsigned char &is_10k3,
                         unsigned char &is_a2,
                         unsigned char &is_a2ex,
                         unsigned char &is_k8,
                         unsigned char &is_a4,
                         unsigned char &is_edsp,
                         char &have_ac97,
                         char &lack_ac97,
                         unsigned char &is_zsnb,
                         unsigned char &is_cardbus,
                         CardBus busName)
{
    int ret=0;
    busName = PCI;
    lack_ac97=0;
    have_ac97=0; // autodetect
    
    if(device==0x00041102) // 10k2
        is_10k2=1;
    
    if(device==0x00041102 && chiprev==4)  // a2
        is_a2=1;
    
    if(device==0x00081102) // a2value, ... with p17v
    {
        is_10k2=1;
        is_a2=1;
        is_k8=1;
        
        // this is assumed:
        // if((subsys&0xf0000000)==0x10000000) // any ca0108
        // is_k8=1;
        
        if((subsys&0xf0000000)==0x20000000) // any zsnb
            is_cardbus=1;
        
        if((subsys&0xf0000000)==0x40000000) // any e-dsp v2
            is_edsp=1;
        
        if((subsys&0xff000000)==0x42000000) // any e-dsp v2 cardbus
            is_cardbus=1;
    }
    
    if(is_edsp)
        lack_ac97=1;
    
    if(is_10k2)
        is_51=1; // assume 10k2 is always at least '5.1'
    
    switch(subsys)
    {
        case 0x40011102:
            if(is_10k2==0) // [1]
            {
                strncpy(tmp_str,"EMU EMUAPS",KX_MAX_STRING);
                is_aps=1;
                lack_ac97=1;
            }
            else
            {
                strncpy(tmp_str,"EMU EM8810 10k2",KX_MAX_STRING); // [110] - 1010 v1
                is_edsp=1;
                lack_ac97=1;
            }
            break;
            
        case 0x00201102: // [2]
            strncpy(tmp_str,"Sound Blaster live! CT4670 10k1",KX_MAX_STRING); // live! value
            break;
        case 0x00211102: // [3]
            strncpy(tmp_str,"Sound Blaster live! CT4620 10k1",KX_MAX_STRING); // live! standard
            break;
        case 0x80221102: // [4]
            strncpy(tmp_str,"Sound Blaster live! CT4780 10k1",KX_MAX_STRING); // value digital
            break;
        case 0x80231102: // [5]
            strncpy(tmp_str,"Sound Blaster PCI 512 CT4790 10k1",KX_MAX_STRING); // 512
            break;
        case 0x80251102: // sb0040 ? too // [6]
            strncpy(tmp_str,"Sound Blaster live! CT1140 10k1",KX_MAX_STRING); // MB
            break;
        case 0x80261102: // [7]
            strncpy(tmp_str,"Sound Blaster live! CT4830 10k1",KX_MAX_STRING); // value digital
            break;
        case 0x80271102: // [8]
            strncpy(tmp_str,"Sound Blaster live! CT4832 10k1",KX_MAX_STRING); // value digital
            break;
        case 0x80281102: // [9]
            strncpy(tmp_str,"Sound Blaster live! CT4870 10k1",KX_MAX_STRING); // value
            break;
        case 0x80291102: // [10]
            strncpy(tmp_str,"Sound Blaster live! CT4872 10k1",KX_MAX_STRING); // value
            break;
        case 0x802a1102: // [11]
            strncpy(tmp_str,"Sound Blaster live! CT4890 10k1",KX_MAX_STRING); // k256
            break;
        case 0x802b1102: // [12]
            strncpy(tmp_str,"Sound Blaster PCI 256 CT4891 10k1",KX_MAX_STRING); // 256
            break;
        case 0x002F1102: // M002/M003 // [13]
            strncpy(tmp_str,"Sound Blaster live! CTM002 10k1",KX_MAX_STRING); // MB
            break;
        case 0x80311102: // [14]
            strncpy(tmp_str,"Sound Blaster live! CT4831 10k1",KX_MAX_STRING); // value
            break;
        case 0x80321102: // [15]
            strncpy(tmp_str,"Sound Blaster live! CT4871 10k1",KX_MAX_STRING); // value
            break;
        case 0x80331102: // [16]
            strncpy(tmp_str,"Sound Blaster live! CT4893 10k1",KX_MAX_STRING); // k256
            break;
        case 0x80351102: // [17]
            strncpy(tmp_str,"Sound Blaster live! CT0060 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80401102: // [18]
            strncpy(tmp_str,"Sound Blaster live! CT4760 10k1",KX_MAX_STRING); // live digital entertainment/platinum
            break;
            
        case 0x80501102: // [19]
            strncpy(tmp_str,"Sound Blaster live! CT4750 10k1",KX_MAX_STRING); // was 4820?! k512
            break;
        case 0x80511102: // [20]
            strncpy(tmp_str,"Sound Blaster live! CT4850 10k1",KX_MAX_STRING);
            break;
            
        case 0x80611102: // [21]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0060 10k1",KX_MAX_STRING);  // live 5.1
            is_51=1;
            has_surdac=1;
            break;
        case 0x80621102: // [22]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0100 10k1",KX_MAX_STRING);  // live 5.1
            is_51=1;
            has_surdac=1;
            break;
        case 0x80631102: // [23]
            strncpy(tmp_str,"DXW MB",KX_MAX_STRING);
            break;
        case 0x80641102: // [24]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0102 10k1",KX_MAX_STRING);  // live 5.1
            is_51=1;
            has_surdac=1;
            break;
        case 0x80651102: // [25]
            strncpy(tmp_str,"Sound Blaster live! 5.1 Digital SB022X 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80661102: // [33]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0228 10k1",KX_MAX_STRING); // Russ's
            is_51=1;
            has_surdac=1;
            break;
        case 0x100a1102:
            if(!is_10k2)
            {
                if(chiprev==0xa)
                    strncpy(tmp_str,"Sound Blaster live! 5.1 SB0229 10k1",KX_MAX_STRING); // [34] - LS
                else
                    strncpy(tmp_str,"Sound Blaster live! 5.1 SB022b 10k1",KX_MAX_STRING); // [33]
                
                is_51=1;
                has_surdac=1;
            }
            else
            {
                strncpy(tmp_str,"Sound Blaster Audigy 2 SB0246 10k2",KX_MAX_STRING); // Audigy2 gateway oem [88]
            }
            break;
        case 0x80671102: // [32]
            strncpy(tmp_str,"Sound Blaster live! 5.1 Digital SB0220 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80681102: // [26]
            strncpy(tmp_str,"Sound Blaster live! 5.1 CT0061 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80691102: // [27]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0101 10k1",KX_MAX_STRING); // value
            is_51=1;
            has_surdac=1;
            break;
        case 0x806a1102: // [28]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0103 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x806b1102: // [29]
            strncpy(tmp_str,"Sound Blaster live! 5.1 SB0105 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x806C1102: // [30]
            strncpy(tmp_str,"Sound Blaster live! 5.1 Digital SB0221 10k1",KX_MAX_STRING);
            is_51=1;
            has_surdac=1;
            break;
        case 0x80711102: // [31]
            strncpy(tmp_str,"Sound Blaster PCI 512 SB0150 10k1",KX_MAX_STRING); // PCI512
            is_51=1;
            has_surdac=1;
            break;
            
        case 0x00401102: // ?.. dead audigy [50]
            strncpy(tmp_str,"Sound Blaster SB0090 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x00411102:
            strncpy(tmp_str,"Sound Blaster CT4820 10k2",KX_MAX_STRING); // [51]
            break;
        case 0x00421102:
            strncpy(tmp_str,"Sound Blaster CT0070 10k2",KX_MAX_STRING); // [52]
            break;
        case 0x00431102:
            strncpy(tmp_str,"Sound Blaster CT0072 10k2",KX_MAX_STRING); // ct0073? // [53]
            break;
        case 0x00511102: // [54]
            strncpy(tmp_str,"Sound Blaster Audigy SB0090 10k2",KX_MAX_STRING); // audigy with golden connectors
            break;
        case 0x00521102: // [55]
            strncpy(tmp_str,"Sound Blaster Audigy SB016X 10k2 CA0100",KX_MAX_STRING); // audigy: plastic + gameport (no 1394)
            // unknown: sb0162 -- audigy w/midi jack + plastic jacks
            break;
        case 0x00531102: // [56]
            strncpy(tmp_str,"Sound Blaster Audigy SB0092 10k2",KX_MAX_STRING); // audigy OEM / Player SB0092
            break;
        case 0x00541102: // [57]
            strncpy(tmp_str,"Sound Blaster Audigy SB0161 10k2 CA0100",KX_MAX_STRING); // audigy
            break;
        case 0x00551102: // [58]
            strncpy(tmp_str,"Sound Blaster Audigy SB0192 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x00561102: // [59]
            strncpy(tmp_str,"Sound Blaster Audigy SB0191 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x00571102: // [60]
            strncpy(tmp_str,"Sound Blaster Audigy (OEM) SB0091 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x00581102: // [61]
            strncpy(tmp_str,"Sound Blaster Audigy (OEM) SB0095 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x00591102: // [62]
            strncpy(tmp_str,"Sound Blaster Audigy SB0230 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x005A1102: // [63]
            strncpy(tmp_str,"Sound Blaster Audigy SB0231 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x005B1102: // [64]
            strncpy(tmp_str,"Sound Blaster Audigy SB0232 10k2",KX_MAX_STRING); // audigy
            break;
        case 0x005C1102: // [65]
            strncpy(tmp_str,"Sound Blaster Audigy SB0238 10k2",KX_MAX_STRING); // audigy
            break;
            
        case 0x10021102: // [80]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB0240 10k2",KX_MAX_STRING); // Audigy2
            break;
        case 0x10031102: // [81]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB0243 10k2",KX_MAX_STRING); // Audigy2
            break;
        case 0x10041102: // [82]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB0242 10k2",KX_MAX_STRING); // Audigy2
            break;
        case 0x10051102: // [83]
            strncpy(tmp_str,"Sound Blaster Audigy 2 Platinum EX SB0280 10k2",KX_MAX_STRING); // Audigy2 Platinum Ex; sb244, sb250, sb290
            is_a2ex=1;
            lack_ac97=1;
            break;
        case 0x10061102: // [86]
            strncpy(tmp_str,"Sound Blaster Audigy 2 (OEM) SB0245 10k2",KX_MAX_STRING); // audigy2 gateway oem
            break;
        case 0x10071102: // [84]
            strncpy(tmp_str,"Sound Blaster Audigy 2 (OEM) SB0244 10k2",KX_MAX_STRING); // audigy2 oem [riva's]
            break;
        case 0x10081102: // [85]
            strncpy(tmp_str,"Sound Blaster Audigy 2 Platinum EX SB0320 10k2",KX_MAX_STRING); // Audigy2 Platinum Ex (with ac97 codec!) + sb290
            is_a2ex=1;
            break;
        case 0x10091102: // [87]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB0249 10k2",KX_MAX_STRING); // Audigy2 unk
            break;
            
        case 0x20011102: // [101]
            if(is_k8)
            {
                strncpy(tmp_str,"Sound Blaster Audigy 2 ZS Mobile SB0530 10k8",KX_MAX_STRING); // audigy2 ZS Notebook
                is_zsnb=1;
                is_cardbus=1;
                lack_ac97=1;
                busName = NoteBook;
            }
            else // [90]
            {
                strncpy(tmp_str,"Sound Blaster Audigy 2 ZS Platium Pro SB0360 10k2",KX_MAX_STRING); // audigy2 ZS Platinum Pro + sb290
                is_a2ex=1;
            }
            break;
        case 0x20211102: // [105]
            if(is_k8)
            {
                strncpy(tmp_str,"Sound Blaster Audigy 2 ZS Mobile SB2021 10k8",KX_MAX_STRING); // audigy2 zs notebook [?]
                is_zsnb=1;
                is_cardbus=1;
                lack_ac97=1;
                busName = NoteBook;
            }
            break;
        case 0x20021102: // [91]
            strncpy(tmp_str,"Sound Blaster Audigy 2 ZS SB0350 10k2",KX_MAX_STRING); // audigy2 ZS retail + sb250
            break;
        case 0x20031102: // [92]
            strncpy(tmp_str,"Sound Blaster Audigy 2 ZS SB0352 10k2",KX_MAX_STRING); // audigy2 ZS ?
            break;
        case 0x20041102: // [95]
            strncpy(tmp_str,"Sound Blaster Audigy 2 ZS SB035X 10k2",KX_MAX_STRING); // Audigy2 zs sb0350/sb0355 / Gateway OEM
            break;
        case 0x20051102: // [96]
            strncpy(tmp_str,"Sound Blaster Audigy 2 ZS SB035X 10k2",KX_MAX_STRING); // Audigy2 zs SB0350/359
            break;
        case 0x20061102: // [94]
            strncpy(tmp_str,"Sound Blaster Audigy 2 ZS SB035X 10k2",KX_MAX_STRING);
            break;
        case 0x20071102: // [93]
            strncpy(tmp_str,"Sound Blaster Audigy 4 PRO SB0380 10k2 CA10200",KX_MAX_STRING); // audigy4 PRO
            break;
            
        case 0x10001102: // [103]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB1000 10k2",KX_MAX_STRING); // audigy2 value [?]
            break;
        case 0x10011102: // [100]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB0400 10k2",KX_MAX_STRING); // audigy2 value
            // has ac97 codec
            break;
        case 0x10211102: // [102]
        {
            strncpy(tmp_str,"Sound Blaster Audigy 4 SB0610 10k2 CA10300",KX_MAX_STRING);
            is_a4=1;
            // has ac97
        }
            break;
            
            //FIXME find subsys id for audigy 4 and put them here
            /*
        case 0x10201102:
        {
            strncpy(tmp_str,"Sound Blaster Audigy 4 SB0660 10k2 CA10300",KX_MAX_STRING);
            is_a4=1;
        }*/
            
        case 0x10221102: // [104]
            strncpy(tmp_str,"Sound Blaster Audigy 2 SB1022 10k2",KX_MAX_STRING); // Audigy2 value ?
            break;
        case 0x10241102:
            strncpy(tmp_str,"Sound Blaster Audigy RX SB1550 10k2 CA10300",KX_MAX_STRING); // audigy rx experimental
            // has ac97 codec
            is_10k3 = 1;
            is_10k2 = 1;
            is_a4=1;
            busName = PCIExpress;
            //ret=-1;
            break;
        case 0x11011102: // [106]
            strncpy(tmp_str,"Sound Blaster Audigy SA SB1101 10k2",KX_MAX_STRING); // Audigy SA ??
            break;
            
        case 0x40021102:
            if(!is_k8)
                strncpy(tmp_str,"EMU E-0404 10k2",KX_MAX_STRING); // [111]
            else
                strncpy(tmp_str,"EMU E-0404 10k8",KX_MAX_STRING); // [120]
            
            is_edsp=1;
            lack_ac97=1;
            break;
        case 0x40031102:
            if(!is_k8)
                strncpy(tmp_str,"EMU E-1010 10k2",KX_MAX_STRING); // [112]
            else
                strncpy(tmp_str,"EMU E-1010 10k8",KX_MAX_STRING); // [121]
            
            is_edsp=1;
            lack_ac97=1;
            break;
        case 0x40041102: // [123]
            if(is_k8)
            {
                strncpy(tmp_str,"EMU EM8960 10k8",KX_MAX_STRING); // EM8960: 1010 PCI
                is_edsp=1;
                lack_ac97=1;
            }
            else
            {
                strncpy(tmp_str,"EMU Un4004 10k2",KX_MAX_STRING); // ??
            }
            break;
        case 0x40051102:
            if(is_k8)
            {
                strncpy(tmp_str,"EMU EM8984 10k8",KX_MAX_STRING); // EM8984: 0404 PCIe
                is_edsp=1;
                lack_ac97=1;
                busName = PCIExpress;
            }
            else
            {
                strncpy(tmp_str,"EMU Un4005 10k2",KX_MAX_STRING); // ??
            }
            break;
        case 0x40071102: // EM8982 - 1010 ('PCIe' series)
        {
            if(is_k8)
            {
                strncpy(tmp_str,"EMU EM8982 10k8",KX_MAX_STRING);
                is_edsp=1;
                lack_ac97=1;
            }
            else
                strncpy(tmp_str,"EMU Un4007 10k2",KX_MAX_STRING);
        }
            busName = PCIExpress;
            break;
            
        case 0x42011102: // [122]
            strncpy(tmp_str,"EMU EM8950 10k8",KX_MAX_STRING); // 1616 CardBus v2
            is_edsp=1;
            lack_ac97=1;
            is_cardbus=1;
            break;
            
        default:
            strncpy(tmp_str,"Generic card",KX_MAX_STRING);
            busName = PCI;
            ret=-1;
            break;
    }
    return ret;
}

int kx_get_friendly_name_from_kx_object(kx_hw &hw, char &tmp_str);

int kx_get_friendly_name_from_kx_object(kx_hw &hw, char &tmp_str){
    
    return kx_get_friendly_name(hw.pci_device,hw.pci_subsys,hw.pci_chiprev,&tmp_str,
                                hw.is_51,hw.has_surdac,
                                hw.is_aps,hw.is_10k2,hw.is_10k3,hw.is_a2,hw.is_a2ex,hw.is_k8,hw.is_a4,hw.is_edsp,
                                hw.have_ac97,hw.lack_ac97,hw.is_zsnb,hw.is_cardbus,hw.busName);
};

int kx_get_friendly_name_from_kx_object_no_string(kx_hw *&hw);

int kx_get_friendly_name_from_kx_object_no_string(kx_hw *&hw){
    char tmp_str[KX_MAX_STRING];
    
    return kx_get_friendly_name(hw->pci_device,hw->pci_subsys,hw->pci_chiprev,tmp_str,
                                hw->is_51,hw->has_surdac,
                                hw->is_aps,hw->is_10k2,hw->is_10k3,hw->is_a2,hw->is_a2ex,hw->is_k8,hw->is_a4,hw->is_edsp,
                                hw->have_ac97,hw->lack_ac97,hw->is_zsnb,hw->is_cardbus,hw->busName);
};



#3
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

Finally i am releasing an alpha of the kx driver mod, there are two ways to use it, with the installer pack and the kext only pack, i suggest the first option, says that, install it and test it on your machines and give me feedback

 

link for the kext only (if you have clover put it in [your clover efi folder]/clover/kexts/[your macOS version]/ so it will not be deleted when updating macOS):

 
link for the installer pack (the best way to install it, but you have to reinstall it when you upgrade macOS):


#4
marvelloard

marvelloard

    InsanelyMac Protégé

  • Members
  • Pip
  • 39 posts

As those cards are almost the only choice for internal cards the development of this driver should get more attention by all the serious Hackintosh users. Unfortunately, just like in the PC world, most people don't care about getting a "real" sound card and stick with the onboard sound.



#5
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

As those cards are almost the only choice for internal cards the development of this driver should get more attention by all the serious Hackintosh users. Unfortunately, just like in the PC world, most people don't care about getting a "real" sound card and stick with the onboard sound.

 

these are not the only alternative for internal sound cards, but are some of the cheapest internal cards that you can find (including the audigy rx that you can find in shops today) there are other alternatives, but they are some professional stuff or expensive stuff, or there are also some sound blaster x-fi that are quite cheap and works with voodoo hda instead and also some professional grade cards works with my kx driver mod



#6
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

For me the card has not worked since Yosemite. I am using now Sierra.



#7
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

For me the card has not worked since Yosemite. I am using now Sierra.

 

please specify which card, so I can help you



#8
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

please specify which card, so I can help you

In my signature        audigy 2 zs  



#9
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

ok, so, specify which card when switching between posts, first I suggest to you to try mine driver mod and to make sure that the card is properly installed and that you use the kext-dev-mode=1 boot arg that allows the driver to run properly on recent versions of Mac OS



#10
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

I tried both ways to install the kext. Placing it in EFI/CLOVER/KEXTS/OTHER did not work. Using the installer which places the kext in S/L/E did not work either. I got as far as selecting a sound effect to test for sound, when the system froze. This has been the result ever since El Capitan.



#11
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

http://pcidatabase.c...rch_str=blaster



#12
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

for clover you don't have to place the kext in EFI/CLOVER/KEXTS/OTHER, but in EFI/CLOVER/KEXTS/[the folder named with the version of mac os you are using] so for example for sierra you have to put the kext in EFI/CLOVER/KEXTS/10.12 for yosemite you have to put it in EFI/CLOVER/KEXTS/10.10 instead, if the driver works you will see in system preferences->sound and in the outputs section a new device that will be named sound blaster audigy 2 zs, i suggest also to boot with -v to and send me video of the booth process with the kext installed, so i can tell to you what is happening and if the driver is working or if it is a hardware problem from the card its' self, also i suggest to you tu try mine installer with the installer packet that will clean previous kext installations of kx driver and will install it in s/l/e or try to install only the kext in clover to EFI/CLOVER/KEXTS/[kext named like the version of mac os you are using] if you use EFI/CLOVER/KEXTS/OTHER the kext will not be loaded at all since that folder is used only for versions of mac os that clover doesn't know, so on sierra you have to to use it, just use the latest version of clover and put the kext in EFI/CLOVER/KEXTS/10.12 and check if you are using kext-dev-mode=1 and -v in the boot args. and then check if does not work check if its an hardware problem, for example use programs like DPCI manager that will list all the pci devices, so if the card appears here the driver should see it, we should investigate what's the error



#13
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

My post states that I did install with your installer to s/l/e. I did see the driver in preferences, sound, output, but when I clicked on sound effects my system froze. This has happened since El Capitan. I wll try to install to kexts/10.12. I am using kext-dev-mode=1



#14
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

ok, the driver works and the card is recognized, i suggest to you to try to boot in safe mode, then reboot normally and you should not have problems, because it clear kernel cache and kext cache



#15
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

ok, the driver works and the card is recognized, i suggest to you to try to boot in safe mode, then reboot normally and you should not have problems, because it clear kernel cache and kext cache

 

 

I will try that.



#16
jaymack

jaymack

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts

ok, the driver works and the card is recognized, i suggest to you to try to boot in safe mode, then reboot normally and you should not have problems, because it clear kernel cache and kext cache

 

The same thing happened. When I try to play sound, the system freezes.



#17
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

try to see if it's a confict with other devices or drivers, do some tests



#18
Pinucciotron

Pinucciotron

    InsanelyMac Protégé

  • Members
  • Pip
  • 7 posts

I'm struggling with the crappy VIA2021 onboard on my Gigabyte Z77 D3H.

I managed to get it working in Sierra, but it's very unstable and need to be fixed after few usage.

 

So i decided to keep out of my box my older SoundBlaster live 5.1 value!

 

I get it working good with your driver, but only the green output actually.

The 2nd black output doesn't work (  and it's not displayed too)

The input isn't displayed at all.

 

I use Hackintosh as daw with a  Steinberg MR816X but for daily usage i don't power it up and need to have a working two outputs and an input.

 

Any idea?

Thanks.



#19
ITzTravelInTime

ITzTravelInTime

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Male
  • Location:Italy
  • Interests:computer science, programming, hardware, software developing

I'm struggling with the crappy VIA2021 onboard on my Gigabyte Z77 D3H.

I managed to get it working in Sierra, but it's very unstable and need to be fixed after few usage.

 

So i decided to keep out of my box my older SoundBlaster live 5.1 value!

 

I get it working good with your driver, but only the green output actually.

The 2nd black output doesn't work (  and it's not displayed too)

The input isn't displayed at all.

 

I use Hackintosh as daw with a  Steinberg MR816X but for daily usage i don't power it up and need to have a working two outputs and an input.

 

Any idea?

Thanks.

 

the driver (and the original driver that I used to start my work) is limited to use only the green output, currently I don't know how to get work the inputs (I'd like to get at least the pink input to work) on Mac OS X on that cards, I have a prototype of the driver that has the inputs in preferences, but the inputs doesn't works yet, if some one can help me to get it working it will be very help foul (need guys with some experience in driver developing on Mac)

 

 

For the other guys, do you like that name for the sound card or I should use sound blaster instead of sb? I decided for sb because the name is already too long, and putting sound blaster makes it longer

Attached Files



#20
marvelloard

marvelloard

    InsanelyMac Protégé

  • Members
  • Pip
  • 39 posts

Actually I'd cut anything behind the RX and use "Sound Blaster", because this is what the packaging says. Consumers don't care about product codes in the end as long as it works.

On the other hand, as long as it's not completely stable, the full string might be helpful for debugging.

Just my $00,02.







Also tagged with one or more of these keywords: sound, blaster, audio, driver, live!, audigy, RX, kx


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2016 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy