Fixing Media Foundation on Proton 4.15-GE-2

All patches in this thread are public domain. You do not need to credit me for the fixes. All I care about is Media Foundation working.

After a TON of debugging, I bring you the final solution to my Media Foundation issues with Proton 4.15-GE-2.

If you don’t know what Proton-GE is, it’s like TKG Wine for Proton. You can get releases here:

First, if you installed Winetricks via apt or a package manager, make sure you have an up to date winetricks from the Github. This is important. Copy this file to /usr/bin/winetricks and make it executable.

You will have to apply the following patches: (in /compatibilitytools.d/Proton-4.15-GE-2)

/proton.patch

--- proton	2019-09-06 01:00:28.000000000 -0700
+++ proton-fix	2019-09-06 06:39:32.507335389 -0700
@@ -709,6 +709,8 @@
     g_proton.make_default_prefix()
 
     g_session.init_session()
+    
+    import protonfixes
 
     if sys.version_info[0] == 2:
         binary_stdout = sys.stdout
@@ -740,7 +742,5 @@
 
     sys.exit(0)
 
-import protonfixes
-
 #pylint --disable=C0301,C0326,C0330,C0111,C0103,R0902,C1801,R0914,R0912,R0915
 # vim: set syntax=python:

/protontricks/gamefixes/verbs/mf_install.patch

--- mf_install.verb	2019-09-06 00:52:06.000000000 -0700
+++ mf_install-fix.verb	2019-09-06 06:45:01.085937279 -0700
@@ -8,11 +8,6 @@
 
 load_mf_install()
 {
-    # Apparently we need a lot more:
-    # https://gist.github.com/Matoking/2017eeffc1cee82f4797530c67707437
-    # https://lutris.net/games/install/10999/view
-    # https://github.com/Winetricks/winetricks/issues/1132
-    
     if [ ! -f "$W_CACHE/$W_PACKAGE/installcab.py" ]; then
         w_download_to "$W_CACHE/$W_PACKAGE" https://raw.githubusercontent.com/z0z0z/mf-installcab/master/installcab.py a32063ec2af233c6fdbc013e90977be46dc78d525cea5e699ab692f7850beabd installcab.py
     fi
@@ -30,13 +25,13 @@
     w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x32/mfplat.dll 1d41496b65c6a3fd463a4e38f5ed856c1d283459e1cbaf8869dbdf2bfa5fc5ad mfplat.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.32" "$W_SYSTEM32_DLLS/mfplat.dll"
 
-    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2adec.dll 97a9b89b1b50cddf6adff9059dce5935d905796dbcd6db58ea2fa693caaa194a msmpeg2adec.dll.32
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2adec.dll 9c0708bc7b1e49725d2ab7bb1cc67f635284c6452ad4743f2262b71f3ceef287 msmpeg2adec.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.32" "$W_SYSTEM32_DLLS/msmpeg2adec.dll"
 
-    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2vdec.dll d7d0bc980c658d5e2f2c605075338493eac97b9d7674007a9490846c2dcdf6f3 msmpeg2vdec.dll.32
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2vdec.dll b023fbd3ef0658512b059f5703e05fff29af3025a4f48da7c3c013d0a8119e3c msmpeg2vdec.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2vdec.dll.32" "$W_SYSTEM32_DLLS/msmpeg2vdec.dll"
 
-    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/mferror.dll d9ce54938155a37f260b01d808917bc541383b750cd3a3094ce9308e318a0e2c mferror.dll.32
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/mferror.dll 34c74d48f31872f195d3fcf5c57278db741bd98424cf54159aa2d8a69e6f869d mferror.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/mferror.dll.32" "$W_SYSTEM32_DLLS/mferror.dll"
 
     helper_win7sp1 x86_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_9e6699276b03c38e/mf.dll
@@ -68,13 +63,13 @@
         w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x64/mfplat.dll 81c13718b01e698ddc31d13f60335cc6182c9f4cef9e29ece2a5ba5a4f138a1c mfplat.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.64" "$W_SYSTEM64_DLLS/mfplat.dll"
 
-        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2adec.dll 9c0708bc7b1e49725d2ab7bb1cc67f635284c6452ad4743f2262b71f3ceef287 msmpeg2adec.dll.64
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2adec.dll 97a9b89b1b50cddf6adff9059dce5935d905796dbcd6db58ea2fa693caaa194a msmpeg2adec.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.64" "$W_SYSTEM64_DLLS/msmpeg2adec.dll"
 
-        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2vdec.dll b023fbd3ef0658512b059f5703e05fff29af3025a4f48da7c3c013d0a8119e3c msmpeg2vdec.dll.64
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2vdec.dll d7d0bc980c658d5e2f2c605075338493eac97b9d7674007a9490846c2dcdf6f3 msmpeg2vdec.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2vdec.dll.64" "$W_SYSTEM64_DLLS/msmpeg2vdec.dll"
 
-        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/mferror.dll 34c74d48f31872f195d3fcf5c57278db741bd98424cf54159aa2d8a69e6f869d mferror.dll.64
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/mferror.dll d9ce54938155a37f260b01d808917bc541383b750cd3a3094ce9308e318a0e2c mferror.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/mferror.dll.64" "$W_SYSTEM64_DLLS/mferror.dll"
 
         helper_win7sp1_x64 amd64_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_fa8534ab236134c4/mf.dll
@@ -95,6 +90,7 @@
 
     cat > "$W_TMP"/mf.reg <<_EOF_
 REGEDIT4
+
 [HKEY_LOCAL_MACHINE\\Software\\Wine\\LicenseInformation]
 "msmpeg2adec-AACDecoderV2AddInEnable"=dword:00000001
 "msmpeg2adec-AACDecoderV2InSKU"=dword:00000001
@@ -104,32 +100,261 @@
 "msmpeg2vdec-H264VideoDecoderV2InSKU"=dword:00000001
 "msmpeg2vdec-MPEG2VideoDecoderV2AddInEnable"=dword:00000001
 "msmpeg2vdec-MPEG2VideoDecoderV2InSKU"=dword:00000001
+
 [HKEY_CLASSES_ROOT\\CLSID\\{271C3902-6095-4c45-A22F-20091816EE9E}]
 @="MPEG4 Byte Stream Handler"
+
 [HKEY_CLASSES_ROOT\\CLSID\\{271C3902-6095-4c45-A22F-20091816EE9E}\\InprocServer32]
 @="mf.dll"
 "ThreadingModel"="Both"
+
 [HKEY_CLASSES_ROOT\\CLSID\\{477EC299-1421-4bdd-971F-7CCB933F21AD}]
 @="File Scheme Handler"
+
 [HKEY_CLASSES_ROOT\\CLSID\\{477EC299-1421-4bdd-971F-7CCB933F21AD}\\InprocServer32]
 @="mf.dll"
 "ThreadingModel"="Both"
+
 [HKEY_CLASSES_ROOT\\CLSID\\{48e2ed0f-98c2-4a37-bed5-166312ddd83f}]
 @="MFReadWrite Class Factory"
+
 [HKEY_CLASSES_ROOT\\CLSID\\{48e2ed0f-98c2-4a37-bed5-166312ddd83f}\\InprocServer32]
 @="mfreadwrite.dll"
 "ThreadingModel"="Both"
 _EOF_
 
-    w_try_regedit "$W_TMP_WIN"\\mf.reg
+    cat > "$W_TMP"/wmf.reg <<_EOF_
+Windows Registry Editor Version 5.00
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation]
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers]
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.3g2]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.3gp]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.3gp2]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.3gpp]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.aac]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.adt]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.adts]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.asf]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.avi]
+"{7AFA253E-F823-42f6-A5D9-714BDE467412}"="AVI Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.dvr-ms]
+"{a8721937-e2fb-4d7a-a9ee-4eb08c890b6e}"="MF SBE Source ByteStreamHandler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.m4a]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.m4v]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.mov]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.mp3]
+"{A82E50BA-8E92-41eb-9DF2-433F50EC2993}"="MP3 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.mp4]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.mp4v]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.nsc]
+"{B084785C-DDE0-4d30-8CA8-05A373E185BE}"="NSC Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.sami]
+"{7A56C4CB-D678-4188-85A8-BA2EF68FA10D}"="SAMI Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.smi]
+"{7A56C4CB-D678-4188-85A8-BA2EF68FA10D}"="SAMI Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.wav]
+"{42C9B9F5-16FC-47ef-AF22-DA05F7C842E3}"="WAV Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.wm]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.wma]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\.wmv]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/3gpp]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/3gpp2]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/aac]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/aacp]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/L16]
+"{3FFB3B8C-EB99-472b-8902-E1C1B05F07CF}"="LPCM Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/mp4]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/mpeg]
+"{A82E50BA-8E92-41eb-9DF2-433F50EC2993}"="MP3 Byte Stream Handler"
 
-    w_override_dlls native,builtin mf
-    w_override_dlls native,builtin msmpeg2adec
-    w_override_dlls native,builtin msmpeg2vdec
-    w_override_dlls native,builtin mferror
-    w_override_dlls native,builtin mfplat
-    w_override_dlls native,builtin mfreadwrite
-    w_override_dlls native,builtin sqmapi
-    w_override_dlls native,builtin wmadmod
-    w_override_dlls native,builtin wmvdecod
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/vnd.dlna.adts]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/wav]
+"{42C9B9F5-16FC-47ef-AF22-DA05F7C842E3}"="WAV Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/x-aac]
+"{926f41f7-003e-4382-9e84-9e953be10562}"="ADTS Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/x-mp3]
+"{A82E50BA-8E92-41eb-9DF2-433F50EC2993}"="MP3 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/x-mpeg]
+"{A82E50BA-8E92-41eb-9DF2-433F50EC2993}"="MP3 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/x-ms-wma]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\audio/x-wav]
+"{42C9B9F5-16FC-47ef-AF22-DA05F7C842E3}"="WAV Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/3gpp]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/3gpp2]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/avi]
+"{7AFA253E-F823-42f6-A5D9-714BDE467412}"="AVI Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/mp4]
+"{271C3902-6095-4c45-A22F-20091816EE9E}"="MPEG4 Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/msvideo]
+"{7AFA253E-F823-42f6-A5D9-714BDE467412}"="AVI Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/x-ms-asf]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/x-ms-wm]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/x-ms-wmv]
+"{41457294-644C-4298-A28A-BD69F2C0CF3B}"="ASF Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\ByteStreamHandlers\video/x-msvideo]
+"{7AFA253E-F823-42f6-A5D9-714BDE467412}"="AVI Byte Stream Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\HardwareMFT]
+"EnableDecoders"=dword:00000000
+"EnableEncoders"=dword:00000001
+"EnableVideoProcessors"=dword:00000001
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform]
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\EVR]
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\EVR\{16260968-C914-4aa1-8736-B7A6F3C5AE9B}]
+"SWVideoDecodePowerLevel"=dword:00000000
+"OptimizationFlags"=dword:00000590
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\EVR\{5C67A112-A4C9-483f-B4A7-1D473BECAFDC}]
+"SWVideoDecodePowerLevel"=dword:00000064
+"OptimizationFlags"=dword:00000a10
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\Platform\EVR\{651288E5-A7ED-4076-A96B-6CC62D848FE1}]
+"SWVideoDecodePowerLevel"=dword:00000032
+"OptimizationFlags"=dword:00000590
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\RemoteDesktop]
+"PluginCLSID"="{636c15cf-df63-4790-866a-117163d10a46}"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers]
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\file:]
+"{477EC299-1421-4bdd-971F-7CCB933F21AD}"="File Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\http:]
+"{9EC4B4F9-3029-45ad-947B-344DE2A249E2}"="Urlmon Scheme Handler"
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\httpd:]
+"{44CB442B-9DA9-49df-B3FD-023777B16E50}"="Http Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\httpnd:]
+"{2EEEED04-0908-4cdb-AF8F-AC5B768A34C9}"="Drm Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\https:]
+"{37A61C8B-7F8E-4d08-B12B-248D73E9AB4F}"="Secure Http Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\httpsd:]
+"{37A61C8B-7F8E-4d08-B12B-248D73E9AB4F}"="Secure Http Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\httpt:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\httpu:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\mcast:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\mms:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\rtsp:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\rtspt:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\rtspu:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+
+[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Foundation\SchemeHandlers\sdp:]
+"{E9F4EBAB-D97B-463e-A2B1-C54EE3F9414D}"="Net Scheme Handler"
+_EOF_
+
+    w_try_regedit32 "$W_TMP_WIN"\\mf.reg
+    w_try_regedit32 "$W_TMP_WIN"\\wmf.reg
+    w_try_regedit64 "$W_TMP_WIN"\\mf.reg
+    w_try_regedit64 "$W_TMP_WIN"\\wmf.reg
+
+    w_override_dlls native mf
+    w_override_dlls native mferror
+    w_override_dlls native mfplat
+    w_override_dlls native mfreadwrite
+    w_override_dlls native msmpeg2adec
+    w_override_dlls native msmpeg2vdec
+    w_override_dlls native sqmapi
+    w_override_dlls native wmadmod
+    w_override_dlls native wmvdecod
+    
+    w_try_regsvr64 msmpeg2adec.dll
+    w_try_regsvr64 msmpeg2vdec.dll
+    w_try_regsvr msmpeg2adec.dll
+    w_try_regsvr msmpeg2vdec.dll
 }

These fixes finally got PC Building Simulator to work with a single click. Remember you need the LATEST Winetricks since that has the w_try_regsvr64 critical to getting this working. I adapted z0z0z’s bash script 100% into Winetricks verb form this way.

Might be expecting a hotfix again soon because this actually works with my testing.

2 Likes

yep, will fix these this weekend, thats what I get for trying to hotfix things at 2am during a weekday :expressionless:

3 Likes

Saw your fixes, but both w_try_regsvr and w_try_regsvr64 are required because one is for 32bit prefixes and the other is for 64bit prefixes.

If you’re wondering why 32bit prefixes still don’t work, you have to add these lines below the w_try_regsvr64 lines:

w_try_regsvr msmpeg2adec.dll
w_try_regsvr msmpeg2vdec.dll

Other than that, the rest of the verb looks good.

Okay, made a patch for 4.15-GE-4 which should mean no double downloads of win7sp1. Current verb downloads SP1 TWICE. This removes that by shifting the installcab.py commands down to after the SP1 helpers have executed, and linking to the actual EXE in $W_CACHE/win7sp1.

w_try_regsvr is still needed too. I also added --debug to the installcab.py arguments because the default verbosity was just too low.

Also found out the mf_.dll extraction was a placebo, and didn’t do anything. So that’s going back up on #FIXME.

mf_install.patch

--- mf_install.verb	2019-09-11 07:02:50.087516299 -0700
+++ mf_install-fix.verb	2019-09-11 07:46:05.454677982 -0700
@@ -7,21 +7,13 @@
     installed_file1="$W_SYSTEM32_DLLS_WIN/mf.dll"
 
 load_mf_install()
-{    
+{
+    # FIXME: mf_.dll
+    
     if [ ! -f "$W_CACHE/$W_PACKAGE/installcab.py" ]; then
         w_download_to "$W_CACHE/$W_PACKAGE" https://raw.githubusercontent.com/z0z0z/mf-installcab/master/installcab.py a32063ec2af233c6fdbc013e90977be46dc78d525cea5e699ab692f7850beabd installcab.py
     fi
 
-    if [ ! -f "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" ]; then
-        w_download_to "$W_CACHE/$W_PACKAGE" https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X86.exe e5449839955a22fc4dd596291aff1433b998f9797e1c784232226aba1f8abd97 windows6.1-KB976932-X86.exe
-    fi
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" mediafoundation
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" mf_
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" mfreadwrite
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" wmadmod
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" wmvdecod
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" wmadmod
-
     w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x32/mfplat.dll 1d41496b65c6a3fd463a4e38f5ed856c1d283459e1cbaf8869dbdf2bfa5fc5ad mfplat.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.32" "$W_SYSTEM32_DLLS/mfplat.dll"
 
@@ -48,18 +40,14 @@
 
     helper_win7sp1 x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll
     w_try cp "$W_TMP/x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll" "$W_SYSTEM32_DLLS/wmvdecod.dll"
+    
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mediafoundation
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mfreadwrite
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmvdecod
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
 
     if [ "$W_ARCH" = "win64" ]; then
-        if [ ! -f "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" ]; then
-            w_download_to "$W_CACHE/$W_PACKAGE" https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X64.exe f4d1d418d91b1619688a482680ee032ffd2b65e420c6d2eaecf8aa3762aa64c8 windows6.1-KB976932-X64.exe
-        fi
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" mediafoundation
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" mf_
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" mfreadwrite
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" wmadmod
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" wmvdecod
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" wmadmod
-
         w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x64/mfplat.dll 81c13718b01e698ddc31d13f60335cc6182c9f4cef9e29ece2a5ba5a4f138a1c mfplat.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.64" "$W_SYSTEM64_DLLS/mfplat.dll"
 
@@ -86,6 +74,12 @@
 
         helper_win7sp1_x64 amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll
         w_try cp "$W_TMP/amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll" "$W_SYSTEM64_DLLS/wmvdecod.dll"
+        
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mediafoundation
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mfreadwrite
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmvdecod
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
     fi
 
     cat > "$W_TMP"/mf.reg <<_EOF_
@@ -355,4 +349,6 @@
     
     w_try_regsvr64 msmpeg2adec.dll
     w_try_regsvr64 msmpeg2vdec.dll
+    w_try_regsvr msmpeg2adec.dll
+    w_try_regsvr msmpeg2vdec.dll
 }

New patch for the current 4.15-GE-4 is up with new DLLs just added in the last 2 days. Reverted mf_.dll removal since it might be needed by Resident Evil 7 and Resident Evil 2. Still doesn’t extract a DLL but may provide CLSIDs for the registry. If it IS a actual DLL rather than a pointer, then it still needs to be found.

mf_install.patch for 4.15-GE-4

--- mf_install.verb	2019-09-11 07:02:50.087516299 -0700
+++ mf_install-fix.verb	2019-09-17 15:39:32.588096543 -0700
@@ -12,18 +12,14 @@
         w_download_to "$W_CACHE/$W_PACKAGE" https://raw.githubusercontent.com/z0z0z/mf-installcab/master/installcab.py a32063ec2af233c6fdbc013e90977be46dc78d525cea5e699ab692f7850beabd installcab.py
     fi
 
-    if [ ! -f "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" ]; then
-        w_download_to "$W_CACHE/$W_PACKAGE" https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X86.exe e5449839955a22fc4dd596291aff1433b998f9797e1c784232226aba1f8abd97 windows6.1-KB976932-X86.exe
-    fi
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" mediafoundation
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" mf_
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" mfreadwrite
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" wmadmod
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" wmvdecod
-    python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X86.exe" wmadmod
-
     w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x32/mfplat.dll 1d41496b65c6a3fd463a4e38f5ed856c1d283459e1cbaf8869dbdf2bfa5fc5ad mfplat.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.32" "$W_SYSTEM32_DLLS/mfplat.dll"
+    
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/mfplay.dll adeba8aa311c7e4d5097de5ec8187ae131c15a61876f1d9d1aa3bba81baf0f87 mfplay.dll.32
+    w_try cp "$W_CACHE/$W_PACKAGE/mfplay.dll.32" "$W_SYSTEM32_DLLS/mfplay.dll"
+    
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/colorcnv.dll 8b7e13d9d2190f87cb12799d3a66c5018e48155ff85540a11283f7c045f9375d colorcnv.dll.32
+    w_try cp "$W_CACHE/$W_PACKAGE/colorcnv.dll.32" "$W_SYSTEM32_DLLS/colorcnv.dll"
 
     w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2adec.dll 9c0708bc7b1e49725d2ab7bb1cc67f635284c6452ad4743f2262b71f3ceef287 msmpeg2adec.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.32" "$W_SYSTEM32_DLLS/msmpeg2adec.dll"
@@ -48,21 +44,24 @@
 
     helper_win7sp1 x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll
     w_try cp "$W_TMP/x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll" "$W_SYSTEM32_DLLS/wmvdecod.dll"
+    
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mediafoundation
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mf_
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mfreadwrite
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmvdecod
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
 
     if [ "$W_ARCH" = "win64" ]; then
-        if [ ! -f "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" ]; then
-            w_download_to "$W_CACHE/$W_PACKAGE" https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X64.exe f4d1d418d91b1619688a482680ee032ffd2b65e420c6d2eaecf8aa3762aa64c8 windows6.1-KB976932-X64.exe
-        fi
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" mediafoundation
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" mf_
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" mfreadwrite
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" wmadmod
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" wmvdecod
-        python2 "$W_CACHE/$W_PACKAGE/installcab.py" "$W_CACHE/$W_PACKAGE/windows6.1-KB976932-X64.exe" wmadmod
-
         w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x64/mfplat.dll 81c13718b01e698ddc31d13f60335cc6182c9f4cef9e29ece2a5ba5a4f138a1c mfplat.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.64" "$W_SYSTEM64_DLLS/mfplat.dll"
 
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/mfplay.dll 0a6b96f4c97dbe267a0ef2570e73ac9382230d83f02b326780359a1036ed8cd6 mfplay.dll.64
+        w_try cp "$W_CACHE/$W_PACKAGE/mfplay.dll.64" "$W_SYSTEM64_DLLS/mfplay.dll"
+        
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/colorcnv.dll abb7d384e278d2702eddfa8540dee6c2a228197ea99c38f0b500dd2ed752923f colorcnv.dll.64
+        w_try cp "$W_CACHE/$W_PACKAGE/colorcnv.dll.64" "$W_SYSTEM64_DLLS/colorcnv.dll"
+        
         w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2adec.dll 97a9b89b1b50cddf6adff9059dce5935d905796dbcd6db58ea2fa693caaa194a msmpeg2adec.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.64" "$W_SYSTEM64_DLLS/msmpeg2adec.dll"
 
@@ -86,6 +85,13 @@
 
         helper_win7sp1_x64 amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll
         w_try cp "$W_TMP/amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll" "$W_SYSTEM64_DLLS/wmvdecod.dll"
+        
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mediafoundation
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mf_
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mfreadwrite
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmvdecod
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
     fi
 
     cat > "$W_TMP"/mf.reg <<_EOF_
@@ -346,6 +352,7 @@
     w_override_dlls native mf
     w_override_dlls native mferror
     w_override_dlls native mfplat
+    w_override_dlls native mfplay
     w_override_dlls native mfreadwrite
     w_override_dlls native msmpeg2adec
     w_override_dlls native msmpeg2vdec
@@ -355,4 +362,8 @@
     
     w_try_regsvr64 msmpeg2adec.dll
     w_try_regsvr64 msmpeg2vdec.dll
+    w_try_regsvr64 colorcnv.dll
+    w_try_regsvr msmpeg2adec.dll
+    w_try_regsvr msmpeg2vdec.dll
+    w_try_regsvr colorcnv.dll
 }

Here’s that same file synced to upstream Git of the protonfixes fork.

--- mf_install.verb	2019-09-17 18:43:48.235551605 -0700
+++ mf_install-fix.verb	2019-09-17 15:39:32.588096543 -0700
@@ -7,15 +7,19 @@
     installed_file1="$W_SYSTEM32_DLLS_WIN/mf.dll"
 
 load_mf_install()
-{
-    # FIXME: mf_.dll
-
+{    
     if [ ! -f "$W_CACHE/$W_PACKAGE/installcab.py" ]; then
         w_download_to "$W_CACHE/$W_PACKAGE" https://raw.githubusercontent.com/z0z0z/mf-installcab/master/installcab.py a32063ec2af233c6fdbc013e90977be46dc78d525cea5e699ab692f7850beabd installcab.py
     fi
 
     w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x32/mfplat.dll 1d41496b65c6a3fd463a4e38f5ed856c1d283459e1cbaf8869dbdf2bfa5fc5ad mfplat.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.32" "$W_SYSTEM32_DLLS/mfplat.dll"
+    
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/mfplay.dll adeba8aa311c7e4d5097de5ec8187ae131c15a61876f1d9d1aa3bba81baf0f87 mfplay.dll.32
+    w_try cp "$W_CACHE/$W_PACKAGE/mfplay.dll.32" "$W_SYSTEM32_DLLS/mfplay.dll"
+    
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/colorcnv.dll 8b7e13d9d2190f87cb12799d3a66c5018e48155ff85540a11283f7c045f9375d colorcnv.dll.32
+    w_try cp "$W_CACHE/$W_PACKAGE/colorcnv.dll.32" "$W_SYSTEM32_DLLS/colorcnv.dll"
 
     w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2adec.dll 9c0708bc7b1e49725d2ab7bb1cc67f635284c6452ad4743f2262b71f3ceef287 msmpeg2adec.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.32" "$W_SYSTEM32_DLLS/msmpeg2adec.dll"
@@ -40,18 +44,24 @@
 
     helper_win7sp1 x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll
     w_try cp "$W_TMP/x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll" "$W_SYSTEM32_DLLS/wmvdecod.dll"
-
+    
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mediafoundation
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mf_
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mfreadwrite
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmvdecod
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
 
     if [ "$W_ARCH" = "win64" ]; then
-
         w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x64/mfplat.dll 81c13718b01e698ddc31d13f60335cc6182c9f4cef9e29ece2a5ba5a4f138a1c mfplat.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.64" "$W_SYSTEM64_DLLS/mfplat.dll"
 
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/mfplay.dll 0a6b96f4c97dbe267a0ef2570e73ac9382230d83f02b326780359a1036ed8cd6 mfplay.dll.64
+        w_try cp "$W_CACHE/$W_PACKAGE/mfplay.dll.64" "$W_SYSTEM64_DLLS/mfplay.dll"
+        
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/colorcnv.dll abb7d384e278d2702eddfa8540dee6c2a228197ea99c38f0b500dd2ed752923f colorcnv.dll.64
+        w_try cp "$W_CACHE/$W_PACKAGE/colorcnv.dll.64" "$W_SYSTEM64_DLLS/colorcnv.dll"
+        
         w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2adec.dll 97a9b89b1b50cddf6adff9059dce5935d905796dbcd6db58ea2fa693caaa194a msmpeg2adec.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.64" "$W_SYSTEM64_DLLS/msmpeg2adec.dll"
 
@@ -75,13 +85,13 @@
 
         helper_win7sp1_x64 amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll
         w_try cp "$W_TMP/amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll" "$W_SYSTEM64_DLLS/wmvdecod.dll"
-
+        
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mediafoundation
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mf_
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mfreadwrite
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmvdecod
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
-
     fi
 
     cat > "$W_TMP"/mf.reg <<_EOF_
@@ -342,6 +352,7 @@
     w_override_dlls native mf
     w_override_dlls native mferror
     w_override_dlls native mfplat
+    w_override_dlls native mfplay
     w_override_dlls native mfreadwrite
     w_override_dlls native msmpeg2adec
     w_override_dlls native msmpeg2vdec
@@ -351,6 +362,8 @@
     
     w_try_regsvr64 msmpeg2adec.dll
     w_try_regsvr64 msmpeg2vdec.dll
+    w_try_regsvr64 colorcnv.dll
     w_try_regsvr msmpeg2adec.dll
     w_try_regsvr msmpeg2vdec.dll
+    w_try_regsvr colorcnv.dll
 }

Looks like ProtonDB is rejecting Proton-GE reports using this fix so please use this forum thread to discuss Media Foundation fixes in Proton-GE since ProtonDB have asserted themselves to want no involvement with this.

There’s also a PR in the z0z0z repository that may change the DLLs that were added 2 days ago to ones from Windows 7, and thus would change the MD5. If this does happen, I’ll update the patch with the newer MD5s.

Also, I need testers for Resident Evil 2 since combining mf-installcab and mf-install might have issues.

Latest patch, synced to upstream GIt, using the Windows 7 mfplay and colorcnv DLLs from GloriousEggroll’s fork of mf-install:

mf_install.patch

--- mf_install.verb	2019-09-26 02:06:47.690031214 -0700
+++ mf_install-fix.verb	2019-09-26 01:55:41.105076000 -0700
@@ -7,15 +7,19 @@
     installed_file1="$W_SYSTEM32_DLLS_WIN/mf.dll"
 
 load_mf_install()
-{
-    # FIXME: mf_.dll
-
+{    
     if [ ! -f "$W_CACHE/$W_PACKAGE/installcab.py" ]; then
         w_download_to "$W_CACHE/$W_PACKAGE" https://raw.githubusercontent.com/z0z0z/mf-installcab/master/installcab.py a32063ec2af233c6fdbc013e90977be46dc78d525cea5e699ab692f7850beabd installcab.py
     fi
 
     w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x32/mfplat.dll 1d41496b65c6a3fd463a4e38f5ed856c1d283459e1cbaf8869dbdf2bfa5fc5ad mfplat.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.32" "$W_SYSTEM32_DLLS/mfplat.dll"
+    
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/gloriouseggroll/mf-install/raw/master/syswow64/mfplay.dll a1ade23dada272236c724107648e1ff53741a5b53dfd24e0724f170d99c79ced mfplay.dll.32
+    w_try cp "$W_CACHE/$W_PACKAGE/mfplay.dll.32" "$W_SYSTEM32_DLLS/mfplay.dll"
+    
+    w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/gloriouseggroll/mf-install/raw/master/syswow64/colorcnv.dll 703559b28738cf6f14456f330fd1bc740671a7584694b03cb03245dae5aaa58d colorcnv.dll.32
+    w_try cp "$W_CACHE/$W_PACKAGE/colorcnv.dll.32" "$W_SYSTEM32_DLLS/colorcnv.dll"
 
     w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/syswow64/msmpeg2adec.dll 9c0708bc7b1e49725d2ab7bb1cc67f635284c6452ad4743f2262b71f3ceef287 msmpeg2adec.dll.32
     w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.32" "$W_SYSTEM32_DLLS/msmpeg2adec.dll"
@@ -40,18 +44,24 @@
 
     helper_win7sp1 x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll
     w_try cp "$W_TMP/x86_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_c491ee3d3e923b78/wmvdecod.dll" "$W_SYSTEM32_DLLS/wmvdecod.dll"
-
+    
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mediafoundation
+    python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mf_
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" mfreadwrite
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmvdecod
     python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X86.exe" wmadmod
 
     if [ "$W_ARCH" = "win64" ]; then
-
         w_download_to "$W_CACHE/$W_PACKAGE" https://lutris.net/files/tools/dll/mfplat/x64/mfplat.dll 81c13718b01e698ddc31d13f60335cc6182c9f4cef9e29ece2a5ba5a4f138a1c mfplat.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/mfplat.dll.64" "$W_SYSTEM64_DLLS/mfplat.dll"
 
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/gloriouseggroll/mf-install/raw/master/system32/mfplay.dll a5c579a7ad6d55cbb13c748201b97c286e0e165827b8ed19019c696459f1f13a mfplay.dll.64
+        w_try cp "$W_CACHE/$W_PACKAGE/mfplay.dll.64" "$W_SYSTEM64_DLLS/mfplay.dll"
+        
+        w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/gloriouseggroll/mf-install/raw/master/system32/colorcnv.dll 0bab1293a19c960315b89789f7cf4dd39d6cb743d0f4929d03e8f149b6845718 colorcnv.dll.64
+        w_try cp "$W_CACHE/$W_PACKAGE/colorcnv.dll.64" "$W_SYSTEM64_DLLS/colorcnv.dll"
+        
         w_download_to "$W_CACHE/$W_PACKAGE" https://github.com/z0z0z/mf-install/raw/master/system32/msmpeg2adec.dll 97a9b89b1b50cddf6adff9059dce5935d905796dbcd6db58ea2fa693caaa194a msmpeg2adec.dll.64
         w_try cp "$W_CACHE/$W_PACKAGE/msmpeg2adec.dll.64" "$W_SYSTEM64_DLLS/msmpeg2adec.dll"
 
@@ -75,13 +85,13 @@
 
         helper_win7sp1_x64 amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll
         w_try cp "$W_TMP/amd64_microsoft-windows-wmvdecod_31bf3856ad364e35_6.1.7601.17514_none_20b089c0f6efacae/wmvdecod.dll" "$W_SYSTEM64_DLLS/wmvdecod.dll"
-
+        
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mediafoundation
+        python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mf_
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" mfreadwrite
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmvdecod
         python2 "$W_CACHE/$W_PACKAGE/installcab.py" --debug "$W_CACHE/win7sp1/windows6.1-KB976932-X64.exe" wmadmod
-
     fi
 
     cat > "$W_TMP"/mf.reg <<_EOF_
@@ -342,6 +352,7 @@
     w_override_dlls native mf
     w_override_dlls native mferror
     w_override_dlls native mfplat
+    w_override_dlls native mfplay
     w_override_dlls native mfreadwrite
     w_override_dlls native msmpeg2adec
     w_override_dlls native msmpeg2vdec
@@ -351,6 +362,8 @@
     
     w_try_regsvr64 msmpeg2adec.dll
     w_try_regsvr64 msmpeg2vdec.dll
+    w_try_regsvr64 colorcnv.dll
     w_try_regsvr msmpeg2adec.dll
     w_try_regsvr msmpeg2vdec.dll
+    w_try_regsvr colorcnv.dll
 }

Tested with Breathedge and saw no difference to behavior.

1 Like