diablo_iv_loader.dll블리자드의 자체 충돌 처리기는 이후 프로세스를 중단하며 Summary: BREAKPOINT라는 오류를 출력합니다 . 사용자에게는 충돌 대화창에 Kernel32.dll을 참조하는 오류 코드 127로 표시됩니다 .
핵심적인 사실은 충돌이 그래픽 레이어가 초기화되기 전에 발생한다는 점입니다. 즉, D3D12, VKD3D, Vulkan 디바이스 생성이 전혀 일어나지 않습니다 . 이는 GPU 드라이버나 DXVK 문제가 아님을 명확히 보여줍니다.
패치 3.1.0은 diablo_iv_loader.dll에 적용된 패커와 안티탬퍼 암호화를 업데이트했습니다 . 새로운 패커는 INT3 브레이크포인트를 의도적인 안티디버그 및 역공학 방지 수단으로 삽입하는 난독화 기법을 사용합니다. 윈도우에서는 예외 디스패처가 이를 투명하게 처리하지만, Wine/Proton에서는 작동에 실패하는 것입니다 .
PROTON_HIDE_NVIDIA_GPU=1, DRI_PRIME=1 같은 실행 매개변수나 DXVK 설정 변경은 효과가 없습니다. 충돌이 GPU 코드 실행 전에 발생하기 때문입니다 .dstorage.dll 파일 삭제 또는 이름 변경도 이번 문제를 해결하지 못합니다 .해결 방법은 두 가지뿐입니다: (a) 블리자드가 INT3 브레이크포인트 없이 Wine의 예외 처리와 호환되도록 로더를 다시 패키징하거나, (b) 특정 브레이크포인트를 가로채서 처리하는 Wine/Proton 수준의 패치를 만드는 것입니다. 로더가 난독화되고 안티탬퍼 보호되어 있기 때문에 이러한 패치를 만드는 것은 어렵고 불안정합니다.
diablo_iv_loader.dll의 Wine/Proton 브레이크포인트 문제를 해결하기 위한 별도의 긴급 패치를 준비 중이라고 밝혔습니다 . 7월 2일 현재까지 이 수정 사항은 배포되지 않았으며, 버그 신고 게시글은 655개의 댓글을 기록하며 포럼 트래픽이 계속 증가하고 있습니다 .이번 사건은 PC 게임에서 반복되는 문제를 강조합니다. 개발자들은 Wine/Proton 같은 호환성 레이어에 대한 테스트 없이 안티탬퍼 및 패커 시스템을 일상적으로 업데이트합니다. 안티탬퍼 소프트웨어는 비표준 환경에서 다르게 동작하도록 설계되어 있으며, 새로운 패커 버전이나 추가 INT3 검사 같은 작은 변경이 게임 자체에 코드 변경이 없더라도 Proton 호환성을 조용히 깨뜨릴 수 있습니다 .
동일한 패턴이 이전에 Denuvo 활성화에서도 발생했습니다. 너무 많은 Proton 버전 전환 후 리눅스 사용자를 잠그는 경우가 있었습니다 . 매번 Valve가 반응형으로 Proton을 패치하거나 게임 개발자가 바이너리 업데이트를 배포할 때까지 수정이 이루어지지 않으며, 사용자가 문제를 발견하고 보고할 때까지 아무 일도 일어나지 않습니다. 디아블로4의 경우는 특히 심각합니다. 스팀덱은 상업적으로 지원되는 플랫폼이며, 3.1.0 이전에는 게임이 완벽하게 호환되었기 때문입니다 .