컴퓨터와 잡동사니 자료

윈도우10 DirectX9 게임의 프레임 저하 문제를 해결할 또다른 임시 방편 (dgvoodoo2 방법)

K66Google 2019. 10. 29. 20:37


* 안내

해결책만 빨리 보고 싶으면 스크롤을 내려서 2. dgVoodoo2 라고 되어있는 파트로 가시면 됩니다.

(2020.12.14 업데이트)


예전에 윈도우10에서 발생하는 일부 DirectX9 게임의 프레임 저하 문제에 대해 다루면서(링크), 해결 방법으로 SysWOW64 (혹은 System32) 폴더 내 d3d9.dll을 바꿔치기하는 방법을 소개한 적이 있었다.

그런데 지포스 그래픽카드 드라이버가 400번대 이상이라면 d3d9.dll을 바꿔치기 할 경우 게임이 실행되지 않는다고 한다.

대표적인 게임으로 illusion사의 인공학원2가 있다.



(출처 : https://www.youtube.com/watch?v=_hfo-Ululdw&vl=es-419 )


유튜브의 어느 동영상을 보면 지포스 드라이버 411.70 이하 버전으로 돌려야 한다고 말하고 있다.



(출처1 : https://2ch.live/cache/view/hgame2/1560648426 )

(출처2 : https://2ch.live/cache/view/hgame2/1547631261#40 )


5ch의 스레에서는 윈도우10 1809 버전 & 지포스 411.73 이후 조합으로 실행에 성공하는 사람은 없다는 주장이 있었다.



1809의 기능 추가, 410.xx 버전과 415.xx 버전의 차이(DXR) 때문에 발생한 거라고 추측하는 글도 있었다.



나중에 추가로 조사해보니 411.70 다음으로 출시된 416.16 드라이버에서 DirectX Raytracing (DXR) 에 대한 언급을 하고 있다는 걸 발견할 수 있었다.

저 DXR이란 기능의 도입으로 인해 d3d9를 교체하면 지포스 드라이버와 충돌해서 게임이 실행되지 않는 것이라고 추측해볼 수 있겠다.



1903 업데이트 후 작동되지 않았는데 411.63 드라이버로 다운그레이드 하니 작동된다는 주장도 있었다.



예전에 일루전 측에서 1809 버전 & 417.35에서 정상 작동된다고 답변한 모양인데 왜 작동이 안되냐며 성토하는 글도 보인다.



(출처 : http://www.illusion.jp/support/windows10.html )


< 현재 동작에 대해서 >

현재 DirectX9.0c를 사용한 제품에 관해서 Windows10 사양 변경에 따라 사용할 수 없습니다.

대상이 되는 제품은 아래와 같습니다. 


...(중략)... 


「인공학원2」

일루전 윈도우10 관련 페이지에 나온 공식 입장은 위와 같다. 인공학원2 이후에 나온 하렘 메이트라는 게임부터는 Unity 엔진으로 제작되었으니 프레임 하락 문제와 관련이 없어서 정상 실행된다.


이러한 상황들을 종합해서 도달한 결론은 다음과 같다.


"지포스 16xx, 20xx번대 그래픽카드이거나

 드라이버 버전이 411.63 / 411.70을 초과하면 d3d9를 바꿔치기 할 시 게임 실행 불가능.

윈도우10 1809 버전 이상에서 주로 발생"



확실히, 지포스 그래픽카드 드라이버가 432.00으로 강제 업데이트되고 나니까 정상 실행되던 게임들이 0xc0000005FaultTolerantHeap, APPCRASH 등의 오류를 내뿜으며 실행되지 않는다는 것을 확인할 수 있었다.


그렇다면, 지포스 16xx, 20xx번대 그래픽카드 사용자나 드라이버를 다운그레이드 하는 걸 꺼려하는 사람들은 어떻게 해야 한단 말인가?



보아하니 2가지 임시 방편이 존재하는 것 같다.

1. AA2Unlimited (AAU)

2. dgvoodoo2 (upillusion0172)


AA2Unlimited는 인공학원2만 지원하는 것 같고, dgvoodoo2 방식은 인공학원2 뿐만 아니라 인공소녀3 같은 비슷한 시기에 만들어진 일루전 게임에도 적용이 가능한 것 같다.


본 글은 두 가지 방법을 모두 설명하려고 했는데... 



1. AA2Unlimited

AAU에 대해서는 설명하지 않기로 하겠다. 한글패치 v0.4.8와 호환이 되지 않기 때문이다.

이하 내용은 기록 차원에서 남겨둔다.


https://github.com/aa2g/AA2Unlimited/releases 에 가서 1.5.3 버전을 다운로드하였다. (미만 버전은 프레임 저하 해결 기능이 없다.)

 

 

AA2Unlimited는 실행파일 패치 방식인데, 이 과정에서 AA2Play와 AA2Edit을 패치하게 된다. 패치 시 패치파일 경로(install.bat)와 대상파일 경로에는 무조건 알파벳만 들어가 있어야 한다. 그렇지 않으면 파일을 찾을 수 없다는 말만 한다.



 

 

그런데 정작 패치 후에 실행하면 D3DXMatrixPerspectiveFovrRH 시작 지점 오류가 뜨면서 실행이 안 된다.

AA2Make (캐릭터메이커)는 패치 후 실행은 되지만 프로그램이 영문화되서 나온다.

따라서 포기한다.




2. dgVoodoo2 


(아래 과정을 따라하기 전에, SysWOW64[System32] 폴더 내의 d3d9.dll을 바꿔치기한 적이 있다면 자신의 윈도우 버전에 맞는 d3d9로 복구하고 따라해주시기 바랍니다. 간편 교체 프로그램은 여기를 참조.)


dgvoodoo2라는 그래픽 API의 제작자인 Dege씨가 특별히 인공학원2에 맞춰서 제작한 d3d9.dll 이다. 관련 게시물은 여기를 참조할 것.

또한, 2020년 9월에 나온 2.7 버전에 대한 게시물은 여기를 참조하면 된다.



dgvoodoo2.7 - 20201214.zip


위의 파일을 다운로드 받는다.


압축을 풀면 이러한 파일들이 있을 것이다.


압축파일내의 필독 설명을 보고 d3d9_alt.dll (또는 d3d9.dll) 파일과 dgVoodoo.conf 파일을 복사해서 각각 인공학원2 게임 폴더 / 인공학원2 캐릭터메이크 폴더에 붙여넣는다.


붙여넣은 후 게임을 실행해서 프레임 저하 현상이 발생하는지 확인한다. 거의 발생하지 않을 것이다.

참고로 dgVoodoo.conf 의 VRAM 기본값은 256인데 게임이 크래시 날 경우가 대단히 높으므로 이걸 올려야 한다. (출처)

내가 올린 압축파일에선 이미 2048로 바꿔놓았다.



2-1. dgVoodoo2 방식의 알려진 문제점 (거의 다 해결됨)


의상에 외부 텍스쳐를 사용 시 색상 값에 따라서 텍스쳐가 개판이 되는 문제가 있었다.

이 문제와 관련된 게시물은 여기여기를 참조.


그러나 dgVoodoo WIP73에서 해결되었다고 한다. (출처) 위에 올린 2.7 버전은 WIP76.1 이후에 나온 버전이므로 텍스쳐 문제도 해결되어 있을 것이다.

아무튼 내 압축파일에선 해당 문제와 관련된 옵션인 MaxVSConstRegisters를 1024로 설정해서 적용시켜놓았다.



또한 illusion Subtitle Overlay를 사용한 한글 출력 방식(음성자막 또는 엿듣기 자막)과는 호환이 불가능할 줄 알았으나 해당 출력방식이 원래 d3d9.dll 파일을 인식하는 기능이 있어서 (파일명을 d3d9_alt.dll로 바꾸면 인식) 그걸로 해결되었다.


-------------------------


이 방법으로 인공학원2뿐만 아니라 인공소녀3도 프레임 향상과 음성 자막 출력 모두 가능하다.



* 참고

위 방법을 응용해서 10586 버전의 d3d9.dll을 d3d9_alt.dll로 변경해서 넣어도 프레임 문제를 해결할 수 있으나 이 방법 또한 지포스 드라이버 411.xx 이상에서는 실행되지 않는다.


그럼 이만...