나도 참 희한하게 살았구나라는 생각이 듭니다.

우분투라는 녀석을 쓰게 된 계기도 특이한데 학교에서 이런저런 과제로 USB메모리를 쓰다가 집까지 바이러스가 들어오게 되었고 그것도 Virut.C라는 악질이 들어와서 모든 파일을 못 쓰게 만드는 일이 일어났습니다.

다행히 과제들과 자료들은 어찌저찌 백업되어있어서 살렸지만 이미 컴퓨터에 들어온 Virut의 박멸방법은 오직하나더군요. 모든 파일을 폐기해서 더 큰 피해를 막을것.
Virut은 모든 파일을 감염시키기 때문에 해당컴퓨터의 파일을 폐기하지 않으면 계속 남아있습니다.

그래서 이왕 깨끗하게 밀어버린는거 Windows대신 바이러스 걱정없는(실제로는 결국 이쪽도 보안관련으로 고생중이지만)리눅스로 넘어가기로 하고 그 중 가장 쉽다는 우분투를 선택했습니다. 당시 버전이 우분투 8.04라는 우분투 역사상 최고의 안정성을 보여준 버전이었습니다.

덕분에 우분투자체에 만족하면서 쓰다가(만약 9.10을 처음 접했다면 바로 접었을겁니다.) 역시 Windows가 필요하게 되서 가상머신도 돌리고 멀티부팅도하면서 썼는데 당시 인터넷은 ActiveX도배라서 인터넷하나 하는데도 고생을 엄청했습니다.

그나마 IEs4Linux라는게 있어서 IE를 쓸 수 있다는거에 만족해야했던 시절이었습니다.

그래서 Wine으로 이것저것 시도를 많이했고 아프리카TV를 보는데 성공하거나 한글2007을 돌리거나 하면서 노하우를 공유하고자 블로그를 시작했습니다.
이당시 삽질이 와닿지 않지만 그때 참 누군가에게 도움이 되길 바라면서 열심히 했었습니다.

요즘은 그렇게 힘들던 게임도 스팀덕에 어지간하면 돌아가고 MS Office는 별 힘 안들이고 쓸 수 있는 등 Wine과 그 파생의 발전이 눈부시게 빨라졌네요. 참고로 제 PC는 Windows 가상머신이 가끔 켜지고 대부분은 리눅스만으로 처리합니다.

이 정도로 리눅스가 편리해진 탓인지 그 때만큼 화려한 삽질이 덜하게 되었고 점점 포스팅이 늦어지고 있습니다. 언젠가는 여기있던 삽질들도 추억이 되는 날이 오겠지요.

,

리눅스에서 스팀게임 글 올린지 얼마나 됐다고 바로 특정 게임 삽질기를 하나 더 올립니다. 이쪽은 생각지도 못한 일이 일어났습니다.
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의 개발에도 박차를 가하고 있습니다. 언젠가는 이런 옵션을 수정 하지 않고도 멀쩡히 실행되는 경우가 오겠지요?

,