리눅스에서 스팀게임 글 올린지 얼마나 됐다고 바로 특정 게임 삽질기를 하나 더 올립니다. 이쪽은 생각지도 못한 일이 일어났습니다.
https://www.youtube.com/watch?v=5o4h4bbk4yw


자그마치 스팀덱에서 DJMAX Respect V 가 실행된다는 것입니다. 그동안 XineCode때문에 실행이 안 됐었는데 Xinecode측에서 수정한건지 아니면 네오위즈에서 수정한것인지 스템덱에서 윈도우 설치 없이 잘 된다고 합니다.

그렇다면 일반 리눅스 PC에서도 잘 되지 않을까 싶은데.... 한번 테스트 해봤습니다.

...결론부터 말씀드리자면 2022년 6월 현재 그냥 Proton으로는 실행이 안 되고 GE-proton이라는 커스텀 버전의 Proton을 설치해야 실행이 잘 됩니다.

GE-proton의 설치방법은
https://github.com/GloriousEggroll/proton-ge-custom/releases

 

Releases · GloriousEggroll/proton-ge-custom

Compatibility tool for Steam Play based on Wine and additional components - GloriousEggroll/proton-ge-custom

github.com

여기서 GE-proton의 tar.gz파일을 다운받습니다. 이쪽은 업데이트가 잦으므로 최신판일 수록 좋습니다.

그리고 우분투를 비롯한 리눅스에서 숨김파일을 보이게 합니다. 단축키는 보통 Ctrl+H 입니다.
그리고 .steam 폴더를 찾아 들어갑니다. (스팀이 설치 되어 있을 때 설치가 안 되어 있다면 한번 설치하고 로그인까지 해두시면 됩니다.)

compatibilitytools.d 라는 폴더를 만들거나 이미 있다면 해당 폴더로 들어갑니다.

그리고 여기에 아까 다운로드 받은 GE-proton의 압축을 풉니다.

그러면 compatibilitytools.d/GE-proton-X-XX 형태의 폴더가 만들어 질 것입니다. 그리고 스팀을 다시 껐다가 켭니다. 정 모르겠으면 그냥 컴퓨터를 껐다 켭시다

그리고 스팀을 켜고 라이브러리에서

DJMAX RESPECT V의 오른쪽 버튼을 눌러 속성에 들어갑니다.

그리고 호환탭에 들어가면 강제로 Steam 플레이 호환도구 사용하기를 체크하시면 GE-Proton을 선택할 수 있게됩니다.

이제 DJMAX를 실행하면 깨끗하게 실행이 됩니다!!!!

스팀덱이후로 리눅스 게이밍이 상당히 좋아지네요...

22.07.25
Proton-GE를 굳이 설치하지말고 스팀에서 Proton 7.0이상을 쓰면 아무 문제없이 실행됩니다.

이제 더 이상의 삽질은 없습니다. 그냥 DJmax를 설치하고 실행버튼만 누르면 끝입니다.

 

====22.09.21========

 

성능이슈가 있어서 이리저리 돌려보다가 알아냈습니다. 조금이라도 성능을 뽑아내기 위한 설정법입니다.

 

우선 스팀에서 DJMAX RESPECT V에 속성으로 들어갑니다.

그리고 시작옵션에 다음과 같이 적습니다.

 

DXVK_FRAME_RATE=60 %command% -force-d3d12 

 

이렇게 하면 48프레임 나오던것이 52프레임정도로 조금 상승합니다. 이 성능문제는 안티치트가 문제라고 하는데 안티치트를 해제할 수가 없으니 억지로 성능을 끌어올리는 방법입니다. 물론 성능이 좋다면 DXVK_FRAME_RATE를 조정해주셔도 됩니다. 게임내에 프레임고정기능이 있지만 사실상 정상적으로 작동하지 않아서 사용하는 방법입니다.

 

23. 7. 16 성능이슈가 해결되었습니다

원인은 정확히 모르지만 NTUserDisplayConfig 함수가 문제였습니다

기존에는 User32에 함수를 했는데 User32가 아닌 win32u에 들어있는 함수를 사용해야 정상적으로 된다는군요.

 

https://github.com/ishitatsuyuki

 

ishitatsuyuki - Overview

Low level plumber & diver. ishitatsuyuki has 159 repositories available. Follow their code on GitHub.

github.com

이분이 해결해 주셨습니다. 일본인 같은데 드라이버레벨에서 이걸 잡아주셨네요

https://gitlab.winehq.org/wine/wine/-/merge_requests/2957

 

win32u: Move QueryDisplayConfig from user32. (!2957) · Merge requests · wine / wine · GitLab

This allows access to the in-process cached monitor list and reduces the number of registry calls issued for QueryDisplayConfig (in case of no change) from 4 x monitors...

gitlab.winehq.org

해당 Wine 패치입니다. Wine8.0에서 적용이 가능하며 그에 따라 Steam의 Proton 8.0에서도 적용이 가능합니다

 

 

https://drive.google.com/file/d/1XCMXRoN2mZVY8YSIZ_KWprZM6IS77s02/view?usp=sharing

 

ge-proton-8-djmax.tar.gz

 

drive.google.com

그래서 GE-Proton에 해당 패치를 적용해서 배포합니다. 

다만 glibc의 버전이 2.37이상에서 작동될겁니다. (제가 사용하는 환경(Debian unstable)에서 컴파일 하다보니 그렇게 됐습니다.) 일단 위의 방법대로 compatibilitytools.d 폴더에 압축을 푸는 방식으로 설치하시고 강제로 호환성 체크를 해주세요.

 

아마도 해당 패치가 머지가 될것으로 보이니 이후에 정식 업데이트된 후에는 정상적인 게임이 가능할 겁니다.

,

스팀은 Proton이라는 윈도우 호환레이어를 제공하고 있어서 리눅스에서도 쉽게 윈도우 전용 게임을 실행 할 수 있습니다. 그리고 문제가 되었던 안티치트도 유명한 Battleye나 EAC에 한해서 지원이 되고 있습니다. 

 

하지만 역시 Proton도 Wine이기에 Wine처럼 삽질이 필요합니다.

 

특정 게임의 경우 일부 옵션을 건들거나 특정 버전을 사용해야 하는 경우가 많습니다. 대부분은 ProtonDB(https://www.protondb.com/)를 검색하면 다 나옵니다만 영어가 안 되시는 분들이나 삽질이 이해가 안 되시는 분들이 있다보니 몇몇 게임에 한해서 제가 했던 것을 공유합니다.

 

1. Muse Dash

특이하게도 구버전의 Proton을 써야만 제대로 돌아가는 게임입니다. Unity엔진들은 대부분 최신 버전에서 더 잘돌아가는데 이쪽은 좀 다르더군요.

스팀 라이브러리에서 Muse Dash의 속성으로 들어가자

스팀 라이브러리에서 Muse Dash의 오른쪽 버튼을 눌러서 속성으로 들어갑니다.

호환탭에서 강제로 특정 Steam 플레이 호환도구 사용하기를 누르고 Proton 6.3을 선택하시면 Proton 6.3이 다운로드 되면서 Muse Dash가 정상적으로 실행이 됩니다. 아마도 Wine의 특성상 일부 API의 기능이 바뀌면서 잘 되던것이 안 되는 일이 생긴 것 같습니다.

 

2. Mirror2 : Project-X

Mirror는 신사의 게임입니다만 Mirror2는 그래픽이 좋은 그냥 평범한 퍼즐게임입니다. 이쪽은 별도의 런처 프로그램을 사용하는데 해당 런처가 문제를 일으키는 경우입니다. 정작 게임을 따로 실행 시키면 아무 문제없이 잘 실행됩니다. 그래서 런처 대신 게임을 직접 실행하도록 수정하는 방법입니다.

 

똑같이 오른쪽 버튼을 눌러 속성에 들어갑니다.

이번에는 일반 탭에서 시작옵션을 적어줍니다.

 

eval $(echo "%command%" | sed "s|Launcher\/Mirror2.ProjectX.Launcher.exe|ProjectX\/Mirror2\/Binaries\/Win64\/Mirror2_X-Win64-Shipping.exe|")

 

위의 텍스트를 복사해서 싹 넣어주시면 됩니다. 그러면 게임이 난데없이 대만 중국어로 나오게 되는데 오른쪽 위의 톱니바퀴를 누르고 

제일 아래의 것을 누르면 한국어가 보입니다. 위의 스크린샷을 잘 보세요.

 

3. Halo : Master Chief Collection

이건 그냥 안티치트 문제입니다. EAC가 분명 지원된다고 했지만 무슨 이유인지 안티치트가 정상 작동하지 않고 있습니다. 따라서 플레이 버튼을 누르고 나오는 창에서

Anti-Cheat Disabled를 선택해서 안티치트가 동작하지 않도록 해야 실행됩니다. 물론 온라인 매치는 불가능해집니다.

 

4. 그섬(Island : Into the Mist)

한국에서 만든 어드벤처 게임입니다. 그런데 D3D11를 Vulkan으로 바꾸는데 문제가 있는 듯 합니다. 이건 Vulkan대신 OpenGL로 실행되도록 하면 됩니다.

 

역시 오른쪽 버튼을 눌러서 속성에 들어간 다음 

일반탭에서 시작옵션에 다음과 같이 적습니다.

 

PROTON_USE_WINED3D11=1  thread_submit=true %command%

 

어차피 2D 게임이라 OpenGL로 돌려도 크게 티가 안 납니다.

 

 

스팀덱의 출시 이후 수많은 제보와 글이 올라왔습니다. 그리고 많은 해결방법이 생겨났고 Proton의 개발에도 박차를 가하고 있습니다. 언젠가는 이런 옵션을 수정 하지 않고도 멀쩡히 실행되는 경우가 오겠지요?

,