I have this model and managed to get most things working on Mojave 10.14.6
Intel UHD 630 Graphics - with external displays *DGPU disabled in BIOS (HDMI audio with device plugged at boot, VoodooHDA)
Keyboard - VoodoPS2
Trackpad (no buttons) - Voodooi2C
Sound (no automatic headphone plug switchover, no line in) - VoodooHDA
Battery - SMCBatteryManager + patches
NVME and SATA Drives
USB 3, 2 and C ports - XHCI injector
Thunderbolt 3 - Hotplug support + video out!
Ethernet - IntelMausi
Bluetooth - IntelBuetoothInjector+Firmware
SDCard Reader - Sinetek-rtsx
Brightness and sound hotkeys
Mapped Brightness (Up Fn+F3) and (Down Fn+F4), Audio Volume Controls and Itunes (Open Fn+F11)
Still need to work on:
-Automatic audio out switchover on plug, external line in, and HDMI audio hotplug.
-OpenIntelWireless itlwm tested and works with custom kext built for mojave but speed is not great, so going to wait a bit for a better release and in the meantime keep using my wifi dongle
Ambient Light Sensor support
The trackpad works as a PS2 device on SMBios MacbookPro11, but all the cool multi finger gestures need SMBIOS MacbookPro16.1 and unfortunately the buttons stop working, I have to enable tap to click, dual finger for right click and 3 finger for click and drag.
AppleALC is a no go for now, I built a custom version with the correct pin outs, and everything works with power adapter plugged in, but if you unplug and go to battery, the speaker output starts to behave erratically, muting every 20, 30 seconds. I suspect AppleHDA is trying to use one of the EC memory registers that the battery patch is using. I will continue to try and debug, but for now VoodooHDA woks best.
I hope that more people join this conversation to finish the missing parts for this great hack.
Edit - Switched to OpenCore and so far everything seems a bit smoother/faster
Oh, hey, that's neat! I must have overlooked this before. Pity the project doesn't support WiFi 6 (802.11ax) cards like the 'Intel Dual Band Wi-Fi 6 AX200 (2x2) and Bluetooth 5 combo, vPro' I've got on my G6; otherwise, I might use this. I'll probably stick to the Broadcom card I bought second-hand and see if I can't get AirDrop, Continuity, and/or Handoff working anyway, though.
The Broadcom card should work nicely, I used one on my Zbook G2 (getting the antennas and adapter crammed in there was the trick) but functionally it's 100% perfect, actually the G2 hackintoshes so perfectly that it got me into trying my G5, which has proven a lot more work, but slowly getting there.
For anybody with the same machine, here's my update:
I purchased a WX4170 card on eBay and I got lucky and it included the EEprom chip (apparently there's at least 2 different versions of the card and one does not include the eeprom or the resistor network to make it work.)
Having said that, mine came with an empty ROM and getting a clean unmodified WX 4170 image has been tricky.
I did however get my hand on a modified 4130/4150 that I flashed using atiflash for windows and the card came to life on OSX. The performance was not there, and also the outputs were wrong and not being detected, so I searched and found a WX 4170 Rom that had been modified with Mac UEFI data and it was overclocked. I edited the ROM back to stock speed, and flashed it to my card, and Success!
All outputs are detected, no problems in Windows/Linux, and it mostly works on OSX with some problems.
Here's the details of my tests.
If Bios is set to Hybrid:
I can get almost everything working perfectly, performance is ok, but not 100% of what the card can do. I tested it with geekbench5 and Davinci Resolve without any external monitors, and it is using the GPU acceleration.
If I connect an external display and run Unigine Valley, it runs off the WX card and performance is about 85% of the card's performance in Windows/Linux.
Sleep and screen off work nicely, and the IGPU is working great as well.
Zero screen glitches or problems.
HDMI Audio works with a workaround, more on that later.
I tried different SMBIOS but the results didn't change, I also tried faking the device-id but again same results.
What's the problem then?
No DRM. None! I've tried so many combinations of SMbios, device-id's, shiki flags, etc... and nothing. Can't get DRM to work on internal display. Just refuses to work.
Other problem... THIS BIOS SETTING ONLY WORKS ON MOJAVE!!!!
(I haven't been able to make it work on Catalina, I can only get Catalina to boot and it works perfectly in IGPU only mode, but neither Hybrid nor Dedicated graphics mode works)
Boot stalls after IGPU starts accel, screen brightness adjusts, and then progress bar stalls. alternatively it changes to a black screen but the OS is not finished loading. My guess is that the ATI drivers are not starting and I figure the problem could be the incorrect UEFI data in the video ROM.
I tried the bios in legacy mode (CSM=OFF) to avoid UEFI drivers, and still no go. Catalina doesn't like my WX 4170 ROM or any device id I spoof it to.
Bios in Dedicated Graphics mode:
Catalina = no go. Black Screen.
Mojave = Almost the same as with Hybrid, but now DRM works on internal display, and the GPU performance is on par with Windows and Linux, but there's some problems.
If an external monitor is connected or the internal screen goes to sleep, when internal screen comes back, it is digital noise. just colorful snow, and changing resolution/refresh rate, edid, etc... changes nothing. My guess is it may have to do with the mac ATI driver and how it detects the internal screen and/or the mux chip specific to this laptop may be interfering with this communication/retraining.
External screens have no problems and everything works ok.
If computer goes to sleep, the internal display comes back blinking, and turning it off and on 3 times fixes it, and the 4th time it goes to snow again. (which can be fixed by going to sleep, then repeating the on-off cycle with a short press of the power button) Very annoying and a deal breaker for me.
Bios in UDMA (IGPU Only)
As stated in my previous post, almost everything works, but no DRM, no HDMI audio with VoodoHDA, or, HDMI audio, but no speaker with custom AppleALC.
Now for HDMI Audio,
Since the Conexant Audio codec (at least in my machine) seems to have a problem working with Apple ALC and the speaker output is intermittent, and HDMI audio out didn't work with VoodooHDA, I did a workaround using AppleALC for HDMI injection to the GPU ports, and VoodooHDA for the Conexant internal codec by changing the info.plist on voodoo so it would only connect to the internal codec, and alcid flag points to a codec that doesn't work, so it would only connect to the HDMI on the ATI card.
And it works!
I get VoodooHDA audio for speaker/headphone/mic, and AppleALC for video outs through the WX 4170 card.
It is still a work in progress to try to get 100% out of the card in hybrid mode and DRM to work, as well as Catalina support.
Attached My OC folder with 3 options for config.plist
My WX-4170 Rom is included in a custom Radeon De-init.aml SSDT file (have to enable in config.plist ACPI section to use it if your card is unflashed)
Need to add your own serial#'s
hugodlc: You — are — AWESOME!!! This should help me a lot! I have downloaded a copy of the OpenCore configuration you attached and will take a look at it later. (Quick question, though: how can I tell if my WX 4170 is good and has its EEPROM and accompanying resistors?)
But since I managed to fake my GPU and load my 4170 ROM from my modified Radeon-Deinit SSDT, it may work for you regardless of whether your card has the EEPROM or not. OSX loads it directly from the SSDT, ignoring the card's ROM.
On another note though, can you boot windows and get GPUZ from Techpowerup and see if your card has a ROM and if you can extract it. As having a clean unmodified 4170 MXM rom would be priceless.
The ROM I managed to find doesn't have all the memory speeds and it has some iMac UEFI stuff on it that may be messing with the Catalina boot.
My card came with a blank EEPROM, so I had to source it from other forums, and I can't extract my VROM from my bios as it appears to be encrypted.
There's another way to extract the VROM from the windows registry, but that only works if you haven't flashed your card and the ROM is downloaded straight from the BIOS to Windows, so in my case I can't do that anymore.
Usually GPUs in low-end notebooks have no separate EEPROM. Instead all firmwares - VBIOS, EFI, ME, SAM, EC, SGX, fingerprint sensor, touchpad etc. share the same EEPROM. NVFlash fails with Identifying EEPROM... Command complete with error, Error code = 0x0003 Command id: 0x0000002 Command: NV_UCO...
Maybe you can try that and get us both a working vanilla 4170 mxm VROM.