Własna obsługa błędów Blizzarda przerywa proces komunikatem Summary: BREAKPOINT. Dla użytkownika objawia się to jako Kod Błędu 127, z odwołaniem do
Kernel32.dll w oknie błędu .
Kluczowy szczegół: awaria następuje przed zainicjowaniem jakiejkolwiek warstwy graficznej – nie dochodzi do utworzenia urządzeń D3D12, VKD3D ani Vulkan . To ostatecznie wyklucza problemy ze sterownikami GPU lub DXVK.
Patch 3.1.0 zaktualizował „packer” oraz szyfrowanie antypirackie zastosowane w diablo_iv_loader.dll . Nowy packer używa zaciemniania, które celowo wstawia przerwanie INT3 jako zabezpieczenie przed debugowaniem i inżynierią wsteczną. W Windows dyspozytor wyjątków obsługuje je bezproblemowo. W Wine/Proton – nie
.
PROTON_HIDE_NVIDIA_GPU=1, DRI_PRIME=1 czy konfiguracja DXVK nie mają żadnego efektu, ponieważ awaria ma miejsce zanim zostanie uruchomiony jakikolwiek kod GPU dstorage.dll, co działało jako obejście innych problemów z uruchamianiem w poprzednich aktualizacjach, nie rozwiązuje tego problemu Jedynym rozwiązaniem jest: (a) przepakowanie przez Blizzarda ładowarki bez instrukcji INT3 w sposób kompatybilny z obsługą wyjątków Wine, lub (b) łatka na poziomie Wine/Proton, która przechwytuje i obsługuje to konkretne przerwanie. Ponieważ ładowarka jest zaciemniona i chroniona przed modyfikacjami, stworzenie takiej łatki jest trudne i ryzykowne.
diablo_iv_loader.dll w Wine/Proton To zdarzenie podkreśla powracający problem w grach na PC: deweloperzy regularnie aktualizują systemy antypirackie i packery bez testowania ich na warstwach zgodności takich jak Wine/Proton. Oprogramowanie antypirackie jest zaprojektowane tak, aby zachowywać się inaczej w niestandardowych środowiskach, a niewielkie zmiany – nowa wersja packera lub dodatkowa kontrola INT3 – mogą po cichu złamać kompatybilność z Protonem, nawet jeśli sama gra nie ma żadnych zmian w kodzie .
Ten sam wzorzec wystąpił z aktywacjami Denuvo, które blokowały użytkowników Linuxa po zbyt częstej zmianie wersji Protona . Za każdym razem poprawka zależy albo od reaktywnego załatania Protona przez Valve, albo od wysłania aktualizacji plików gry przez dewelopera – i żadne z nich nie następuje, dopóki użytkownicy nie odkryją i nie zgłoszą problemu. Przypadek Diablo IV jest szczególnie uderzający, ponieważ dotyczy Steam Decka – platformy komercyjnie wspieranej, która przed aktualizacją 3.1.0 była w pełni kompatybilna z grą
.