Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,371 posts in this topic

Recommended Posts

Hello, I saw this on your Github and I was so impressed with your Shiki I decided to try this on my IDT92HD91BXX but have no output devices. I currently have just my layout-id and pin configuration set in my Clover config.plist. If I go under System Information > Audio under Intel High Definition, it does show Headphones, Speaker, but under Devices, no output is shown. I am using the following:

 

- Envy j-070ca

- 10.12.2 beta 4

- layout as 12

 

When I run the auto info.plist I get the following output in terminal 

HDEF@1B = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Layout, hex: 0x0000000c , dec: 12

PinConfigurations:
001081011010210320000049100117925010012340011799600000493000a0997000004980000049

Codecs Found: 1
HDA:
0 CodecAddress:0x0
VendorID: 0x111d76e0
RevisionID: 0x100303
CodecID: 287143648
Revision(dec):=1049347
Id=0x76e0
Id(dec)=30432
Vendor=0x111d
Vendor(dec)=4381

File Doesn't Exist, Will Create: /Users/andrew/Desktop/Info.plist
Merge: Error Reading File: Patch.plist
Merge: Error Reading File: Patch.plist
./Codec-Info.command: line 127: ((: 76e0: value too great for base (error token is "76e0")
Merge: Error Reading File: Patch.plist
Merge: Error Reading File: Patch.plist
Merge: Error Reading File: Patch.plist

I do have my config.plist for Clover saved and my Info.plist that was generated by that script in the attached file. The layout-id is defined in Devices > Arbitrary in my Clover config.plist file. Also I did get Audio previously with Rehabman's AppleIDT kext when added with the Clover kexttopatch which I removed per your instructions but had some glitches which is why I wanted to try your method.

 

Edit: I think I may have found the issue. I looked in your sources for the IDT92HD91BXX and in that Info.plist under patches you have the following 

<dict>
			<key>Count</key>
			<integer>1</integer>
			<key>Find</key>
			<data>QcYGAEmLvCQ=</data>
			<key>MaxKernel</key>
			<integer>13</integer>
			<key>MinKernel</key>
			<integer>13</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>QcYGAUmLvCQ=</data>
		</dict>
		<dict>
			<key>Count</key>
			<integer>1</integer>
			<key>Find</key>
			<data>QcYGAEiLu2g=</data>
			<key>MinKernel</key>
			<integer>14</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>QcYGAUiLu2g=</data>
		</dict>
		<dict>
			<key>Count</key>
			<integer>1</integer>
			<key>Find</key>
			<data>QcaGQwEAAAA=</data>
			<key>MinKernel</key>
			<integer>13</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>QcaGQwEAAAE=</data>
		</dict>
		<dict>
			<key>Count</key>
			<integer>2</integer>
			<key>Find</key>
			<data>ixnUEQ==</data>
			<key>MinKernel</key>
			<integer>13</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>4HYdEQ==</data>
		</dict>
		<dict>
			<key>Count</key>
			<integer>2</integer>
			<key>Find</key>
			<data>hBnUEQ==</data>
			<key>MinKernel</key>
			<integer>13</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>AAAAAA==</data>
		</dict>
		<dict>
			<key>Count</key>
			<integer>2</integer>
			<key>Find</key>
			<data>gxnUEQ==</data>
			<key>MinKernel</key>
			<integer>15</integer>
			<key>MaxKernel</key>
			<integer>15</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>AAAAAA==</data>
		</dict>
		<dict>
			<key>Count</key>
			<integer>2</integer>
			<key>Find</key>
			<data>ihnUEQ==</data>
			<key>MinKernel</key>
			<integer>16</integer>
			<key>Name</key>
			<string>AppleHDA</string>
			<key>Replace</key>
			<data>AAAAAA==</data>
		</dict>

and this is what I had originally in my Clover config.plist

<dict>
				<key>Comment</key>
				<string>AppleHDA IDT 76e0 (1 of 4)</string>
				<key>Find</key>
				<data>PYsZ1BE=</data>
				<key>Name</key>
				<string>AppleHDA</string>
				<key>Replace</key>
				<data>PeB2HRE=</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>AppleHDA IDT 76e0 (2 of 4)</string>
				<key>Find</key>
				<data>PYQZ1BE=</data>
				<key>Name</key>
				<string>AppleHDA</string>
				<key>Replace</key>
				<data>PQAAAAA=</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>AppleHDA IDT 76e0 (3 of 4)</string>
				<key>Find</key>
				<data>PYMZ1BE=</data>
				<key>Name</key>
				<string>AppleHDA</string>
				<key>Replace</key>
				<data>PQAAAAA=</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>AppleHDA IDT 76e0 (4 of 4)</string>
				<key>Find</key>
				<data>PYoZ1BE=</data>
				<key>Name</key>
				<string>AppleHDA</string>
				<key>Replace</key>
				<data>PQAAAAA=</data>
			</dict>

I manually took your patches and applied it using the .kext that Rehabman had to inject this codec into AppleHDA and using the patches from your sources, I had the same issue, no output devices, but when I used mine, I was able to get Audio. Just wanted to let you know in case it was a typo.

 

PS I also took your pinconfigs and layout/platform.zlib files to make this test as accurate as possible so I know audio works with my config.plist patches.

Report_IDT92HD91BXX.zip

Link to comment
Share on other sites

Hello i have bought DELL XPS 15 9550 and it have a ALC3266(ALC298) with a combo-jack.

 

I found the codec just have 3 node with one int-speaker,one headphone and one IntMic node but have no extmic node.

 

I'm using AppleALC 1.0.18 form github realse but have a big problem with distort and can't detect extmic anymore.

 

Now i put the cc+ssdt-alc298.aml but still can't slove the distort and extmic and the intmic have no power.

 

I want to seek for help with my ALC298 without distort and make extmic works.

 

Thanks.

 

 

codec.txt.svg.zip

Codec.txt.zip

Link to comment
Share on other sites

To add to my previous comments above, I downloaded the GitHub source to try to edit the Resources for the IDT92HD91BXX to add the Clover patches that I know works and after building the AppleALC.kext, there was still no output device so that was not the only reason why I don't get sound output using this kext. I still do get sound when I apply your layout12/Platforms.xml.zlib and the ConfigData for this codec to my previous injector kext.  I just hope there is a particular reason why this hasn't been working when if I keep the injector and Clover patches, it works. 

Link to comment
Share on other sites

I have test this kext again.

I change configdata "line in" to "microphone" and find internal microphone works but external microphone can't be detected and with a big distort.

 

So i think it maybe the reason about configdata?

 

Are you a XPS 15 9550 with ALC298?Internal and External microphone both works?

yes. The only problem is  sound distort in Headphone.

  • Like 1
Link to comment
Share on other sites

Are you use goodwin_c alc_fix patch? maybe it can fix sound distort in Headphone.

 

edit: test no fix.

Are you 10.12.1 or 10.11

 

I have test again and again and it already have only External Microphone works and can't detecte Internal Microphone and still have no distort when plug in headphone.

 

You can compare codec with mine and look for some diff.

 

Ps:Are you XPS15-9550 with 6700HQ,960M and 4K touch screen?

 

 

从我的 iPhone 发送,使用 Tapatalk

Link to comment
Share on other sites

Are you 10.12.1 or 10.11

 

I have test again and again and it already have only External Microphone works and can't detecte Internal Microphone and still have no distort when plug in headphone.

 

You can compare codec with mine and look for some diff.

 

Ps:Are you XPS15-9550 with 6700HQ,960M and 4K touch screen?

 

 

从我的 iPhone 发送,使用 Tapatalk

I am on 10.12.1  Xps15-9550 i7 FHD

Link to comment
Share on other sites

All problems on Codec should be not AppleALC related bug. May discuss at http://www.insanelymac.com/forum/forum/447-applehda/ ?

AppleALC should be used on a sound card with complete zlibs and configdata.

I just for help of my alc298.

And it is almost well by Mirone.

 

 

从我的 iPhone 发送,使用 Tapatalk

Link to comment
Share on other sites

On the Dell XPS 9550's issue, I dare say the codec of both the FHD and UHD model are the same

 

What AppleALC you uesd?I used AppleHDA form mirone and make to AppleALC but the internal mic doesn't work,the other works perfect.

 

Can you upload your AppleHDA or AppleALC?

Link to comment
Share on other sites

Hi,

I successfully added the 'Second Stage Patch' to the kext.
This is an example for macOS Sierra.

In Controllers.plist to a 'Patches' array that matches your setup (in my case this was inside 'Intel HD4600 HDMI (ig-platform-id 0x0d220003)'):

<dict>
	<key>Count</key>
	<integer>1</integer>
	<key>Find</key>
	<data>AQAAdSU=</data>
	<key>MinKernel</key>
	<integer>15</integer>
	<key>Name</key>
	<string>IOGraphicsFamily</string>
	<key>Replace</key>
	<data>AQAA6yU=</data>
</dict>

and to Kexts.plist:

	<key>IOGraphicsFamily</key>
	<dict>
		<key>Id</key>
		<string>com.apple.iokit.IOGraphicsFamily</string>
		<key>Paths</key>
		<array>
			<string>/System/Library/Extensions/IOGraphicsFamily.kext/IOGraphicsFamily</string>
		</array>
	</dict>

Have Fun!

Link to comment
Share on other sites

Has anyone figured out why AppleALC doesn't work for IDT92HD91BXX codec (76e0) on 10.12.2? When the released kext didn't work, I tried copying the patches I used from my injector kext, removed all boot loader patches except layout-id and even cleaning up the kext by removing all codec folders from Resources except mine, but no output devices are detected. The kext is being loaded before AppleHDA and it looks like the pinconfig is being loaded as under Intel High Definition, it does show Headphones, Speaker, etc. I made sure to even use the latest Clover and have no idea where to go from here. I attached my config files in the last page, but got no response. I am only trying to help diagnose the issue.

Link to comment
Share on other sites

Hello everyone, first time poster here. Seems I have hit a wall troubleshooting my fresh hackintosh installation. I cant get it to recognize any input/output audio devices. I'm running macOS Sierra 10.12.2 on my Spectre XT Pro 13-B000 Ultrabook.

 

This laptop has IDT codec IDT92HD99BXX which should be supported as stated in here. I tried patching my AppleHDA earlier, but that didnt work either, so I restored the original AppleHDA.kext. I was told to use layout-id 3 for this codec in the wiki. This is my config.plist:

 

 

<key>Audio</key>
  <dict>
   <key>Inject</key>
   <string>3</string>

 

  </dict>

 

I also ran "sudo kextstat" and confirmed AppleALC is loaded before AppleHDA. AppleALC.kext is in /EFI/CLOVER/kexts/Other. I have rebooted several times, no dice. Any idea how to troubleshoot this issue further?

 

EDIT: I used Mirone's AppleHDAPatcher to create a patched AppleHDA.kext for IDT92HD99BXX, and now I have working audio. I had to apply HPET & IRQ fix to my DSDT. AppleALC still isnt working, hoping someone has input on this (used vanilla AppleHDA when I tried ofc).. Maybe you could merge your recources, if AppleALC resources for IDT92HD99BXX are outdated?

Link to comment
Share on other sites

Hi,
 
We are looking for maintainers for CA0132 codec resources. It is getting somewhat problematic, because we cannot even forward the issues to a specific person responsible for the codec, and end up being kicked by people saying that things break for them. Even more the resources present in AppleALC at the moment seem to either have not working controls or produce all sorts of noise.
 
It is not so good, and since nobody has this piece hardware or knows its specifics, I am afraid that the best solution is to drop CA0132 support from AppleALC package.
You could get familiar the details here: https://github.com/vit9696/AppleALC/issues/108#issuecomment-268016734
 
If you want to get things sorted, know what needs to be done with CA0132, please let us know. Submit all the changes we need to apply, test them first on as many people as possible, and be ready to work with other people.

  • Like 1
Link to comment
Share on other sites

@vit9696,

As you said yourself, without having the hardware in question, things become a bit more complicated, the current developer of this kext is @Wern Apfel,

he it could give support to the other users but it can be quite busy in your life. the ideal would be to find some users and work together with them on this issue.

Link to comment
Share on other sites

It is not so good, and since nobody has this piece hardware or knows its specifics, I am afraid that the best solution is to drop CA0132 support from AppleALC package.

I don't think dropping is a solution. People will complain either way, whether it works or it does not exist. If you drop it, then you'll have to say "it's not supported" instead of "there's noone to fix it". Both are unsatisfactory to the user but at least the latter gives some hope, or a starting point to making it work.

 

@vit9696,

As you said yourself, without having the hardware in question, things become a bit more complicated, the current developer of this kext is @Wern Apfel,

he it could give support to the other users but it can be quite busy in your life. the ideal would be to find some users and work together with them on this issue.

The patches are not documented.

https://github.com/vit9696/AppleALC/commit/f4e9d554b7e5d12047f911570319ddd8539f261f

There is no explanation of what the replacement does. <Comment> tags would be nice.

Link to comment
Share on other sites

The patches are not documented.

https://github.com/vit9696/AppleALC/commit/f4e9d554b7e5d12047f911570319ddd8539f261f

There is no explanation of what the replacement does. <Comment> tags would be nice.

These are fixes for the binary,
In this case he finds the codec (8A19d411), and substitutes it
By (00000000). But the full patch goes well beyond that,
And for this you need to be familiar with AppleHDA patch.
Link to comment
Share on other sites

×
×
  • Create New...