NieR Replicant ver.1.22474487139

Crashes when the first video starts. Its video is WMV2 with WMA v2 audio in ASF, which no CrossOver decodes; the fix decodes it itself where the engine cannot.

GPL-3.0-or-laterThis fix in MacGameFix

What you see

Crashes when the first video starts

Why it happens

The game asks Media Foundation to decode the WMV2 video into D3D video textures; under D3DMetal there is nothing to decode into, and it dies asking for NV12 output.

What the fix changes

Software decode, and the frame converted and written into the game's own target

The code

The game asks for decode into D3D video textures; the reader gets a copy of its attributes without the two that ask for it, so it decodes in software.

fixes/dwo-video-bridge.c ยท strip_d3d_attributes, lines 1508โ€“1524
c
static IMFAttributes *strip_d3d_attributes(IMFAttributes *attrs)
{
    IMFAttributes *plain = NULL;
    UINT32 count = 0;

    if (!attrs || !real_MFCreateAttributes) return NULL;
    IMFAttributes_GetCount(attrs, &count);
    if (SUCCEEDED(real_MFCreateAttributes(&plain, count + 2)) && plain
        && SUCCEEDED(IMFAttributes_CopyAllItems(attrs, plain)))
    {
        IMFAttributes_DeleteItem(plain, &MF_SOURCE_READER_D3D_MANAGER);
        IMFAttributes_DeleteItem(plain, &MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS);
        return plain;
    }
    if (plain) IMFAttributes_Release(plain);
    return NULL;
}

Details

Needs
D3DMetal, D3D11
Installer
install-nier-bridge.sh
Executable
NieR Replicant ver.1.22474487139.exe
Built from
dwo-video-bridge.c, asf-reader.c, wmv-dmo.c, wm-reader.c, dshow-graph.c
Verified on
Stable 26.3, measured on a stock one, with Game Porting Toolkit 4.0b2; CrossOver Preview 27 through NotProton with nothing staged (2026-10-14)

The full story, with the measurements and the wrong turns