RESIDENT EVIL 2

Crashes when a VC-1 video plays; the fix decodes it itself where the engine cannot.

GPL-3.0-or-laterThis fix in MacGameFix

What you see

Crashes when a particular video plays. In Devil May Cry 5 it is the skill previews on the Customize screen

Why it happens

The video is VC-1, and CrossOver ships no VC-1 decoder

What the fix changes

The fix's own VC-1 reader in the game folder (install-re-vc1-fix.sh); the staged codec still works and is used first where present

The code

When Media Foundation refuses a video (VC-1 in ASF, which no CrossOver decodes), the stream is handed to the fix's own ASF reader instead.

fixes/mf-reader-fallback.c ยท my_create, lines 109โ€“125
c
static HRESULT WINAPI my_create(void *stream, void *attrs, void **reader)
{
    static LONG calls, ours;
    HRESULT hr = real_create(stream, attrs, reader);
    LONG n = InterlockedIncrement(&calls);
    if (n == 1) logf_("MFCreateSourceReaderFromByteStream -> 0x%08lx (first call)", hr);
    if (FAILED(hr) && stream && reader && load_asf_reader_())
    {
        HRESULT mine = asf_reader_create(stream, attrs, reader);
        LONG k = InterlockedIncrement(&ours);
        if (k <= 5 || FAILED(mine))
            logf_("Media Foundation refused a stream (0x%08lx); our ASF reader -> 0x%08lx (%ld so far)",
                  hr, mine, k);
        if (SUCCEEDED(mine)) hr = mine;
    }
    return hr;
}

Details

Needs
D3DMetal, D3D12
Installer
install-re-vc1-fix.sh
Executable
re2.exe
Built from
mf-reader-fallback.c, asf-reader.c, wmv-dmo.c, wm-reader.c, dshow-graph.c
Verified on
Stable 26.3 with the codec staged; CrossOver Preview 27 through NotProton with nothing staged (2026-10-14)

The full story, with the measurements and the wrong turns