From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/dmloader/loader.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dlls/dmloader/loader.c b/dlls/dmloader/loader.c index d15c99f6fb6..89796f337c1 100644 --- a/dlls/dmloader/loader.c +++ b/dlls/dmloader/loader.c @@ -20,6 +20,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmloader); +#define LOADER_UNIX_DEFAULT_GM_SF2 "/usr/share/sounds/sf2/default-GM.sf2" + static const GUID *classes[] = { &GUID_DirectMusicAllTypes, /* Keep as first */ &CLSID_DirectMusicAudioPathConfig, @@ -318,6 +320,13 @@ static HRESULT WINAPI loader_GetObject(IDirectMusicLoader8 *iface, DMUS_OBJECTDE lstrcpyW(p, pDesc->wszFileName); } + if (!wcsicmp(file_name, L"C:\\windows\\system32\\drivers\\gm.dls") + && GetFileAttributesW(file_name) == INVALID_FILE_ATTRIBUTES) + { + WARN("Using " LOADER_UNIX_DEFAULT_GM_SF2 " instead of gm.dls\n"); + wcscpy(file_name, L"\\??\\unix" LOADER_UNIX_DEFAULT_GM_SF2); + } + TRACE(": loading from file (%s)\n", debugstr_w(file_name)); if (FAILED(hr = file_stream_create(file_name, &pStream))) return hr; } @@ -458,6 +467,13 @@ static HRESULT WINAPI loader_SetObject(IDirectMusicLoader8 *iface, DMUS_OBJECTDE lstrcpyW(p, pDesc->wszFileName); } + if (!wcsicmp(file_name, L"C:\\windows\\system32\\drivers\\gm.dls") + && GetFileAttributesW(file_name) == INVALID_FILE_ATTRIBUTES) + { + WARN("Using " LOADER_UNIX_DEFAULT_GM_SF2 " instead of gm.dls\n"); + wcscpy(file_name, L"\\??\\unix" LOADER_UNIX_DEFAULT_GM_SF2); + } + if (FAILED(hr = file_stream_create(file_name, &pStream))) return hr; } else if (pDesc->dwValidData & DMUS_OBJ_STREAM) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3953