Skip to content

Instantly share code, notes, and snippets.

@kekonn
Created October 2, 2019 09:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kekonn/639a49fbb2616878a3d5f38d8d86a3ca to your computer and use it in GitHub Desktop.
Save kekonn/639a49fbb2616878a3d5f38d8d86a3ca to your computer and use it in GitHub Desktop.
mfplat.dll instructions for Spyro trilogy on wine

Spyro: Reignited Trilogy on Linux with WINE Tutorial

Introduction

The problem with Spyro Reignited Trilogy on Wine is that it's built on the Unreal Engine 4 which uses Windows Media Framework/Windows Media Feature Pack/Windows Media Foundation/etc. (not entirely sure what it's called) for video playback. Wine doesn't yet support installing Windows Media Framework directly, so we have to re-create the installation steps ourselves. This guide assumes you have the $WINEPREFIX environment variable set in your shell and that you've already set up DXVK yourself.

Step 1: Get Access to 64 bit Windows 7

We're going to be pulling DLLs out of 64 bit Windows 7 so you need access to a copy of it somewhere.

Step 2: Extract the DLLs

Copy the following DLLs from C:\Windows\System32 on Windows 7 to $WINEPREFIX/drive_c/windows/system32 on Linux.

  • mf.dll
  • mferror.dll
  • mfplat.dll
  • mfreadwrite.dll
  • msmpeg2adec.dll
  • msmpeg2vdec.dll
  • sqmapi.dll

Additionally copy the DLL COLORCNV.DLL from the same location but rename it to colorcnv.dll.

Repeat the above steps but copying the same DLLs from C:\Windows\SysWOW64 to $WINEPREFIX/drive_c/windows/syswow64.

Step 3: Add overrides

Open up winecfg and go to the "Libraries" tab. Add the following overrides:

  • mf
  • mferror
  • mfplat
  • mfreadwrite
  • msmpeg2adec
  • msmpeg2vdec
  • sqmapi

Select each and press "Edit" and change them to "Native (Windows)". Don't forget to hit apply when you're done.

Step 4: Modify Registry

Save the following text as mf.reg and then run wine64 start regedit.exe mf.reg and wine start regedit.exe mf.reg on it.

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Wine\LicenseInformation]
"msmpeg2adec-AACDecoderV2AddInEnable"=dword:00000001
"msmpeg2adec-AACDecoderV2InSKU"=dword:00000001
"msmpeg2adec-DolbyDigitalDecoderV2AddInEnable"=dword:00000001
"msmpeg2adec-DolbyDigitalDecoderV2InSKU"=dword:00000001
"msmpeg2vdec-H264VideoDecoderV2AddInEnable"=dword:00000001
"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"

Save the following text as wmf.reg and then run wine64 start regedit.exe wmf.reg and wine start regedit.exe wmf.reg on it.

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"

[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"

Step 5: Register Services

Finally, register some of the DLLs we installed earlier as system services with the following commands:

wine64 regsvr32 msmpeg2vdec.dll
wine64 regsvr32 msmpeg2adec.dll
wine64 regsvr32 colorcnv.dll

wine regsvr32 msmpeg2vdec.dll
wine regsvr32 msmpeg2adec.dll
wine regsvr32 colorcnv.dll

Step 6: Enjoy

Just launch Spyro normally through Steam!

Notes

This technique also works for Obduction. It might work for other Unreal Engine 4 games with this problem as well, but I haven't tested it.

Credits

Most of this was copied from z0z0z's mf-install tool. I don't claim to have done anything except assemble instructions from a few sources into this guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment