DirectX 7 이하 게임 해상도 제한 풀기
일전에 4K 모니터를 구입하면서 가장 기대했던 것 중 하나는, 주로 즐기는 고전게임들을 4K로 실행해보는 것이었습니다. 2000년도쯤인가 1024x768 해상도 쓰던 시절에 1600x1200 모니터에서 게임이 실행되는 모습을 보고 감탄한 적이 있었는데 그 감동을 4K 모니터에서 다시 느껴보고 싶었습니다.
2016/01/15 - [GAMES/게임 주저리] - UHD 모니터 구입
그런데 너무 오래된 게임들이어서 그런지 1920x1080까지는 가능해도 3840x2160에서는 에러가 나더군요. 해상도 설정은 되는데 말이죠. 해외 포럼 등을 검색해봐도 4K 모니터 초창기라 정보도 별로 없었고 그나마 있는 정보도 해봤는데 안 되더라... 였습니다. D3D 래핑 프로그램을 통한 편법적인 방법도 있지만 Native 출력이 아니라서 보기에 영 좋지 아니 하였습니다. 그냥 옛날 게임이라 지원이 안 되나보다 하고 포기해야 했죠.
그러다 다른 게임에서 DirectX 에러를 겪으며 문득 생각이 들었습니다. 게임 자체의 문제가 아니라 direcx의 한계가 아니었을까 싶었던 거죠. 검색을 해보니 역시나 DirectX 7 이하의 D3D 최대 해상도가 2048x1536이랍니다. (정확히는 2048x2048)
문제의 원인을 알았으니 해결 방법을 찾아보도록 합니다. 2017년 3월에 Legacy D3D Resolution Hack 이란 물건이 나왔더군요.
https://github.com/UCyborg/LegacyD3DResolutionHack
실행파일과 같은 폴더에 넣어주기만 하면 됩니다. 당연히 테스트를 해봐야겠죠.
아, 살짝 감동했습니다. 온갖 난리를 쳐도 그렇게 안 되던 게 이 패치 한방에 해결되는군요. 예전에 시도했던 게임 중에서 안 되던 건 이 세 작품이었는데 DirectX 7 이하를 사용하는 게임은 또 뭐가 있는지 살펴봐야겠습니다. (당연한 얘기지만 패치를 사용하려면 D3D를 사용하고 게임 옵션에서 4K 해상도를 설정할 수 있어야 합니다.)
https://www.pcgamingwiki.com/wiki/List_of_DirectX_2-7_games
https://www.uvlist.net/gamesearch/?fplat=-&ftag=directx7&sort=name
생각보다 많지는 않네요. 저 중에서도 D3D 4K를 옵션에서 설정할 수 있는 게임은 또 한정적일 테니 그 수가 더 적어집니다. 다만 리스트가 완전히 정확한 것 같지는 않습니다. 일례로 아메리칸 맥기 앨리스의 경우, 리스트에는 있지만 해당 패치 없이도 4K 출력이 가능했고 요구사항에 DirectX 8 호환 VGA라고 명기되어 있기도 하거든요.
그나저나 울티마 9의 경우, 출시 당시에는 글라이드 대비 D3D의 퍼포먼스가 영 좋지 않아 말이 많았고 개발 프로그래머도 왜 D3D 퍼포먼스가 낮은지 정확한 원인을 모르겠다고 했던 것 같은데, 시간이 지나 글라이드는 역사 속으로 사라지고 D3D로는 윈도우 10 64비트에서도 여전히 쌩쌩 돌아가는 걸 보면 뭔가 아이러니함이 느껴지기도 합니다.
단순 해상도 변경이 아닌 호환성 문제가 있을 경우는 아래 글을 참조하세요.
DirectX 래퍼로 고전 게임에 희망을! (tistory.com)