https://www.linuxmint.com/download.php


이제 리눅스민트 19.1의 정식버전이 발표되었습니다. 그동안 제가 작업해왔던 것처럼 MATE버전을 기반으로 한국어 설정을 미리하고 배포를 할 준비를 하고 있습니다.


사실 그동안 이것저것 문제가 많아서 아무것도 못했었거든요.


기존에 사용하던 19버전도 업그레이드 해야하고 달라진 부분도 체크하면서 확인을 해봐야 할 것 같습니다. 물론 기존에 사용하던 프로그램은 아무런 문제없이 사용이 가능하겠지만 (같은 우분투 18.04기반이므로) 그래도 혹시 모르니 확인할 것은 해봐야 겠습니다.


기존 19버전 사용자는 업데이트매니저 - 편집 - 리눅스민트 19.1 업그레이드 메뉴를 통해 쉽게 업그레이드가 가능합니다.

,

솔직히 그동안 몰랐습니다.


유튜브를 볼 때 왜 이리 답답한지... 그동안 그냥 내 컴퓨터가 느려서 그런가부다 했었지요.


알고보니... 그동안 브라우저에서 하드웨어 가속이 되지 않고 있었던 겁니다.


분명히 여기보면 Video Decode에 하드웨어 가속이라고 써있습니다. 그런데 Arch 위키를 뒤져보니

크롬과 Firefox 둘 다 그 어떤 비디오가속을 지원하지 않는다고 합니다.

https://www.reddit.com/r/linux/comments/9kzxdm/still_no_chromechromium_hw_video_acceleration_on/


여기에도 여전히 하드웨어 가속이 지원이 되지 않는다고 나옵니다. 다만 h264ify라는 확장을 설치해서 CPU사용율이 높은 VP9코덱 대신 H264코덱으로 사용율을 낮출 수 있다고 나오긴 합니다.


이쯤되니 엄청 속은 기분이 드네요...


아무튼! 방법이 없는 것은 아닙니다. 다행히도 Chromium에 VAAPI를 지원하는 패치가 나왔고(대신 구글은 이를 지원하지 않습니다.) 이를 이용하면 브라우저에서 하드웨어 가속으로 영상을 볼 수 있습니다.


대신 h264ify를 설치해서 H264로 재생되게 하는 것이 좋습니다. 2018년 현재 사실상 표준 코덱은 H264/AVC코덱이고 하드웨어 지원폭이 넓으니 이쪽을 이용하는 것이 정신건강에 아주 좋습니다.


우선 자신의 시스템에 VAAPI를 지원하는지 확인 합니다.

터미널에서 vainfo를 설치한 후 실행합니다.


이런식으로 나오면 vaapi가 지원이 되는 것입니다. 만약 지원이 안 된다면 mesa-va-drivers 등의 패키지를 설치하세요.


그리고 브라우저에 패치를 통해 VAAPI를 지원하게 해야 합니다.


현재 VAAPI지원 Chromium은 https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-beta

이곳을 통해 배포되고 있습니다. 각종 패치들을 추가해서 chromium을 쉽게 쓸 수 있도록 만든 PPA입니다.


터미널을 열고

sudo add-apt-repository ppa:saiarcot895/chromium-beta
sudo apt-get update

sudo apt-get install chromium-browser


그리고 설치된 Chromium-Browser를 실행합니다.

그리고 chrome://flags/

여기로 들어간 다음에 accel로 검색을 하면




이렇게 됩니다. 여기서 Override software rendering list 와 Hardware-accelerated video를 Enabled로 바꿔줍니다.


이렇게 하면 하드웨어 가속이 이루어지면서 동영상을 볼 수 있게 됩니다!!!

,

https://blog.linuxmint.com/?p=3662


우분투 18.04.1 기반으로 만들어지고 우분투 18.04와 동일하게 10년간 지원을 받는 리눅스 민트 19.1버전의 베타버전이 릴리즈 되었습니다.


기존 리눅스민트19 버전과 큰 차이는 없지만 ukuu등의 툴 없이 업데이트 매니저를 통해 커널 버전을 선택할 수 있게 되었습니다.


이 외에도 가독성을 높이기 위한 그래픽적 향상이 있다고 합니다. 물론 나머지는 우분투 18.04.1과 동일하니 따로 신경 쓸 이유는 없을 것입니다.


아마도 하모니카 다음 버전은 이 버전을 기반으로 제작하게 될 텐데 이전에 설치 버그를 해결 할 수 있을지는 의문이네요.

,

이전에 더 룸PC판에 대한 한글패치를 공개한 적이 있었습니다.

더 룸 : https://moordev.tistory.com/286




이것의 후속작인 더 룸투의 한글패치가 만들어졌습니다.

기존 더 룸의 방식과 한글폰트 방식이 달라져서 고생을 했는데 슬라임랜처의 한글패치를 만드신분의 도움을 얻어 한글폰트 이식에 성공했습니다. NGUI의 비트맵방식을 사용했는데 https://github.com/dmc31a42/UnityL10nTool 이 도구를 만들어서 배포해 주셨습니다.


그래서 더 룸 투도 같은 방법으로 모바일판의 한글을 컨버팅해서 적용했습니다. 다만 한글 폰트가 조금 안 어울리는 듯하지만 뭐 보이는것이 다행이지요.


패치 방법은 다음과 같습니다.

https://drive.google.com/open?id=1DFRNXwJh5uyTjB9eUO5OsfVVdcr0lzEn



2018 11 30현재 타자기파트에서 오류가 발생한다고 합니다.

오류발생시 기존 파일로 되돌린 뒤에 해당파트를 임시로 진행후 다시 넘기시기 바랍니다.


현재 오류원인 확인중입니다.


타자기 파트 오류 해결되었습니다.





위 파일을 다운로드 받습니다.

그리고 스팀에서 오른쪽 버튼 속성을 누릅니다.


그리고 로컬파일 탭에서 로컬 컨텐츠 보기


TheRoomTwo_Data 폴더로 들어갑니다.



그리고 압축 파일 내용을 여기에 풀어버립니다.


그러면...?


그냥 영어를 덮었으니 영어로 맞춰놓을 것 괜히 한국어로 잘 뜨는데 Korean찾는 바보는 하지 말자


,

https://store.steampowered.com/app/704850/Thief_Simulator/


2018. 12. 1. 공식한글화가 되었습니다.


이제 따로 한글패치를 하지 않으셔도 됩니다!


하지만 공식번역이 부자연스러우므로 더 자연스러운 한글패치를 원하다면 이쪽으로!!

https://www.team-freestyle.com/single-post/2018/12/07/도둑-시뮬레이터-한국어-패치


Options-Settings-Langauge Support에서 kr을 선택하세요!


비공식번역은 ko입니다!







이건 초기 번역기 돌린 버전



일명 도둑시뮬레이터입니다.


Car Mechanic Slmulator 같은 시뮬레이터 게임(?)을 만드는 회사입니다. 이번에는 그 중에서도 특이하게 도둑이 되는 게임을 만들었습니다. 사실 저도 누군가의 추천을 보고 했습니다.


일부 사람들은 중학생 수준의 영어만 할 줄 알면 전혀 문제없다라고 하는데 그래도 이왕이면 한글이 좋잖아요?


그래서 만들었습니다.


일단 초벌번역은 구글 번역기를 동원했고 이후에 손번역(?)을 조금 더 해서 일단 말은 되게끔 만들어 두었습니다. 아직 검수 중이니 중간중간 오역과 이상한 부분이 많이 있을겁니다.


한글패치는 아래의 것을 다운로드 받으세요.(2018. 11. 29)


https://drive.google.com/open?id=1iLUP37iLRlx60Lbb9q_HB8WEv5cia5JU




일단 스팀에서 Thief Simulator에 오른쪽 버튼을 눌러서 속성으로 들어갑니다.


그다음 로컬파일 탭에서 로컬컨텐츠 보기 버튼을 누릅니다.


그 다음 thief_Data 폴더로 들어갑니다.


그리고 압축 파일의 내용을 여기에 덮어버리면 됩니다.


그리고 게임내에서 바로 한글이 뜨는 것이 아니라 옵션을 바꿔줘야 합니다. 우선 프로필을 만든 다음 메뉴로 진입합니다.


그리고 Options-Settings-Language에서 ko를 선택합니다.


이제 한글이 뜹니다!!!


게임내 폰트는 Spoqa Hans Sans (NotoSans CJK KR 기반 경량화 폰트)를 사용했습니다. 그래서 왜인지 안드로이드 모바일 게임 느낌이 다분히 날 겁니다.


검수자 : 림뽐 (twitch.tv/limppom)

제가 플레이가 할 수 없는 지경이라 게임 방송으로 검수 중입니다.

,

Steam의 Proton지원으로 인해 리눅스에서 게임하기가 한결 더 쉬워졌습니다.

2018년 현재 주류 게임개발 라이브러리는 DirectX11입니다. 대부분 게임들이 11버전으로 만들어지고 있지요.


SteamPlay는 이러한 DirectX11버전을 Vulkan으로 변환해서 플레이를 할 수 있도록 도와줍니다.

하지만 역시 기본 바탕은 wine이기에 Wine으로 인한 오류는 그대로 나타납니다. 저 같은 경우에는 Thread관련 오류가 많이 났는데 이를 해결하는 방법을 알려드리고자 합니다.


AMD CPU에 Unity3D엔진에서 특히 오류가 잦았는데 원인은 아직도 알지 못합니다. 보나마나 멀티코어활용 문제겠지요.


방법은 thread_submit옵션을 켜서 각 thread를 넘나들때 GIL처럼 잠그는 기능(?)을 활성화 하는 겁니다. 이때 속도 문제가 발생하지만 그래도 게임이 다운되지는 않습니다.


오류가 나는 게임의 속성으로 들어갑니다.


여기서 시작 옵션 설정을 눌러주시고


thread_submit=true %command%


위와 같이 적어줍니다. 그리고 실행하면 Thread관련 오류를 잡을 수 있게 됩니다.

,

우분투 18.04 이후 kdenlive의 업데이트가 뚝 끊겼습니다.

kdenlive측에서는 우분투는 appimage로 패킹된 버전을 쓰라고 하더군요. 어쩐지 우분투 저장소에 있던 버전이 낮다 싶었습니다.


kdenlive의 우분투 계열은 Appimage로 된 버전을 다운로드 받아서 쓰는 것을 추천한다.

아마도 QT와의 호환문제 및 테마 문제로 인해서 (kde 관련 패키지가 어마어마하게 따라옴)이러한 Appimage 버전을 추천한 것 같습니다.


그러나 이 Appimage버전은 한글 입력이 안 된다는 겁니다!!!

그동안 저는 노가다로 복사 부여넣기를 했는데 원인이 알고보니 여기 있더군요.


https://github.com/qTox/qTox/issues/5320


전혀 다른 프로그램이지만 힌트를 여기서 얻었습니다. 일부 Appimage버전의 경우 libfcitxplatforminputcontextplugin.so 파일이 누락되어서 fcitx 사용자의 경우 한글 입력이 되지 않는 현상이 있다는 것입니다.


해당 라이브러리를 정해진 위치에서 찾아다 넣어만 주면 되는 겁니다.


방법은 Appimage파일을 열고 해당 파일을 찾아서 넣은 다음 다시 패키징을 하면 됩니다.


푸는 것은 kdenlive의 appimage파일만 있으면 되고 다시 묶는 것은 appimagetool만 있으면 됩니다.


https://github.com/AppImage/AppImageKit/releases

여기서 appimagetool의 Appimage파일을 다운로드 받으세요. 요즘은 보통 64비트니까 x86_64버전을 다운로드 받으면 됩니다.

32비트라면 i686을 다운로드 받으면 됩니다.


그리고 아까 다운로드 받은 appimagetool과 kdenlive Appimage파일을 같은 곳에 두고 둘 다 실행 권한을 줍시다. 속성에 들어가서 프로그램으로 실행 허용을 주면 됩니다.


자 이제 Appimage파일들이 있는 곳에서 터미널을 열고 다음과 같이 명령을 줍시다.


./kdenlive-18.08.2-x86_64.AppImage --appimage-extract

이러면 squashfs-root라는 폴더가 생기면서 kdenlive의 Appimage 파일의 압축이 풀리기 시작합니다. 


명령어 한번에 압축이 풀린다.

이 안을 들여다보면 우리가 사용하는 시스템의 루트와 똑같다는 것을 알 수 있습니다.

만약 정상적으로 fcitx환경이 설치된 시스템이라면


/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts
여기에 libfcitxplatforminputcontextplugin.so 파일이 있을 것입니다. 만약 없다면 우분투 기준 fcitx-frontend-qt5 패키지를 설치하시면 됩니다.


이 파일을 복사해서 squashfs-root내의 같은 위치에 넣어주면 되는 것입니다.

Applimage들 있는 곳/squashfs-root/usr/lib/qt5/plugins/platforminputcontexts

이곳에 들어가면 파일이 하나 부족한 것을 알 수 있습니다. ibus용만 들어있지요. 하지만 ibus는 제가 별로라서 안 씁니다.



여기에는 파일이 하나 부족하다



여기에 libfcitxplatforminputcontextplugin.so 파일을 복사해서 넣습니다.


그리고 다시 Appimage를 만들면 되는 겁니다.


아까 Appimage가 있던 터미널에서

./appimagetool-x86_64.AppImage squashfs-root

이렇게 명령을 내리면...



Appimage 파일을 만들기 시작합니다.


이제 이것을 실행해보면...

kdenlive에서 한글 입력이 됩니다!!!!


그러니까 방법은 하나입니다. 누락된 해당 파일을 넣어달라고 하거나 yml파일을 수정해달라고 넣거나... KDE팀에게 요청을 해야겠습니다.


일단 그동안 임시로 제가 수정한 Appimage버전을 사용해주세요.


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


Appimage로 된 것이니 그냥 다운로드 받은 다음 실행 권한을 주고 실행하면 됩니다.

,

명작 퍼즐 게임인 더 룸(The Room)이란 게임이 있습니다. 모바일로 먼저 나왔고 총 3까지 나왔으며 2까진 한글화 되었습니다. 사실 3는 너무 어렵고 배배 꼬아놔서 다들 별로라고 합니다.


더룸의 한글패치는

https://drive.google.com/file/d/1gM8FAqFu7cIO_XiouyepDvEAN6s70X-m/view?usp=sharing


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


이것을 다운로드 받아서 (The Room이 설치된 곳)/TheRoom_Data에 덮어 씌우시면 됩니다.


그리고 언어 설정을 German(독일어)로 바꿔 주세요.







===여기서 부터는 작업내용 ====================


어쨌건 이 더 룸이란 게임이 PC판으로도 나왔습니다. PC인 만큼 화질도 좋아지고 선명해 졌습니다.


단! PC판은 한글이 없습니다...

https://store.steampowered.com/app/288160/The_Room/


하지만 분명 모바일버전에서는 한국어가 있었습니다. 아마도 아시아 판권이 없어서 PC판에서는 한국어를 제외한 것 같은데 한국어가 있다 없으니 짜증나지요.


그런데 어차피 모바일이나 PC나 게임 내용은 동일합니다. 게임엔진도 Unity3D로 동일하기 때문에 다른 것이 하나도 없습니다. 그러면 모바일에 있는 문장을 빼다가 PC판에다 이식하면 되지 않을까요?


그래서 직접 해봤습니다.


우선 한국어판 더 룸의 APK를 구합니다. 저는 https://apkpure.com/the-room-asia/com.chorusworldwide.theroom

여기서 직접 다운로드 받았습니다. 플레이스토어를 사용하지 못하는 곳을 위해 만들어진 APK미러 사이트로 웹에서 직접 APK를 받을 수 있습니다.




아시아판이니까 당연히 한국어가 있겠죠?

파일은 xapk란 이상한 것인데 사실 그냥 Zip형태입니다. 그냥 일반 압축프로그램으로 풀립니다. 그리고 그 안에는 우리에게 익숙한 apk파일과 obb파일이 있는 형태입니다.


물론 다들 알다시피 apk파일과 obb파일도 그냥 zip입니다. 그냥 압축해제가 됩니다. 우리는 여기서 /Android/obb/com.chorusworldwide.theroom 까지 들어가서 main.15.com.chorusworldwide.theroom.obb 파일까지 압축을 해제해버립니다.


obb파일도 그냥 일반 압축파일로 인식된다.

그리고 /assets/bin/Data 까지 들어가면... 이제 Unity3D 에셋 파일들이 등장합니다!

이건 이미 만들어진 수많은 Unity3D 해제툴을 이용해서 뜯을 수 있습니다.


저는 Unity3D에셋을 해체할 때 두가지 툴을 이용합니다.

AssetsBundleExtractor(https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor)


UnityEx(

UnityEX.7z

)


우선 모바일 더 룸에서 sharedassets1.assets.split0 안에 번역된 텍스트가 들어있습니다.

이것을 얻으려면 AssetsBundleExtractor를 사용합니다. UnityEx로도 되기는 하는데 불안정한 UTF-16으로 내보내기 때문에 AssetsBundleExtractor를 써서 UTF-8로 뽑아내는 겁니다.


AssetsBundleExtractor에서 sharedassets1.assets.split0파일을 열고 Korean을 찾은 다음 Plugins 클릭 그리고 export to txt를 누르면 한국어로 번역된 문장을 뽑아낼 수 있습니다.


이런 식으로 뽑아낸 텍스트 파일을 PC판의 English에 그냥 이식을 해버리면 모바일에서 번역된 문장을 PC판에서도 쓸 수 있겠지요!


이번에는 PC판 더 룸을 뜯어봅시다.

PC판에서는 (더 룸이 설치된 곳)/TheRoom_Data 에 assets파일들이 들어있습니다. 여기서 필요한 것은 resources.assets입니다. 이 안에 English.txt가 있더군요. 이걸 뽑아내고 비교해서 한국어로 바꾼다음 다시 이식을 하는 것입니다.


PC판의 에셋을 열자

English를 열어서 덤프하고...

모바일버전의 한국어를 PC판 English.txt파일에 새로 적자!

다만 PC판에 일부 문장이 추가되어 있어서 무작정 파일 바꿔치기는 어렵습니다. 따라서 English.txt파일을 번역한다고 생각하고 English.txt파일을 한국어로 바꿔주시면 됩니다. 어차피 상당부분은 겹칠겁니다.


저는 Python 스크립트를 만들어서 해결했는데 공개하기는 좀 더럽네요.

#-*- coding: utf-8 -*-
import csv

eng = open("English.txt", 'r')
kor = open("Korean.txt", 'r')
moded = open("EngKor.txt",'w')

engrdr = csv.reader(eng, delimiter = '=', quotechar='|')
korrdr = csv.reader(kor, delimiter = '=', quotechar='|')
#modedwr= csv.writer(moded, delimiter = '=')

korlist = list(korrdr)


for engline in engrdr:
    print(engline)
    line = engline[0] + '=' + engline[1]+'\n'
    for korline in korlist:
        if engline[0] == korline[0]:
            print (engline[0] + '=' + korline[1])
            line = engline[0] + '=' + korline[1]+'\n'
            #moded.write(engline[0] + '=' + korline[1]+'\n')
        """
        else:
            print (engline[0] + '=' + engline[1])
            line =engline[0] + '=' + engline[1]+'\n'
            #moded.write(engline[0] + '=' + engline[1]+'\n')
        """
        
    moded.write(line)


eng.close()
kor.close()
moded.close()


이것을 이용하면 Engkor.txt 라는 파일이 나오는데 이것을 다시 AssetsBundleExtractor로 English.txt를 대체합니다.


이번에는 English를 누른다음 Plugins를 누르고 import from .txt를 선택해서 번역된 txt파일을 선택합니다.


이제 OK를 누르면 저장할 거냐고 물어봅니다. 기존에 열어버린 resources.assets파일을 덮을 수는 없으니 다른이름으로 저장하고 바꿔주시면됩니다.


이제 PC판 더 룸을 실행하면... 여전히 한글이 안 뜹니다... 이건 폰트 문제인데 UnityEX를 써서 TTF파일을 한글이 나오는 놈으로 바꿔주시면 됩니다. 이건

https://moordev.tistory.com/224


여기서 설명했습니다.


이것은 UnityEX를 이용합니다. AssetsBundleExtractor로 하면 오류가 나더군요.


UnityEX를 실행하고 Open archive Unity를 누른다음 PC판 더 룸의 sharedassets0.assets 파일을 선택합니다.


그 다음 Type에 Font라고 되어있는 항목을 찾습니다. 더 룸은 2개가 그러합니다.

OldTimAme

TheRoom


이 두가지 항목을 선택하고 오른쪽 버튼을 눌러 Export selected를 누릅니다.

그러면 Unity_Assets_Files이란 폴더가 생기고 그 안에 TTF파일 두개가 덩그러니 놓입니다.



이 두 파일을 원하는 한글 TTF로 바꾸시면 됩니다. 저는 서울한강체와 서울남산체를 사용했습니다. 가독성이 정말 좋더군요. 물론 파일명만 바꿔서 덮어버리면 됩니다.


그리고 UnityEX에서 import all files를 누르면 sharedassets0.assets 파일에 덮어버립니다. 만약을 위해서 해당 파일을 미리 백업하는 지혜가 필요하지요.


이제 기존 resources.assets를 지우고 아까 번역본을 English.와 바꿔치기한 resources.assets로 이름을 바꾼 다음 실행하면...


짜잔!!! PC판에서도 한글을 쓸 수 있게 되었습니다!


이후 텍스쳐 작업을 마무리 지었습니다. 역시 텍스쳐는 UnityEx를 이용했고 DDS포맷을 Gimp로 수정한 후 작업했습니다.



,

Linux용 Steam에서 Steam Play(Proton)을 사용해서 이런저런 많은 게임을 구동했습니다. 하지만 Wine도 완벽하지 않고 그것을 기반으로 한 Proton도 완벽하지 않기 때문에 모든 게임이 구동되는 것이 아닙니다. 그래서 Protontricks 같은 각종 트릭을 써서 구동을 하고 있습니다. (https://moordev.tistory.com/284)


하지만 게임 구동이 안 되는 것이 Wine문제일 수도 있고 DXVK 문제일 수도 있습니다. 사실 DXVK이전에 WineD3D로 기존 Direct3D게임을 OpenGL로 구동하는 방법이 있었습니다. 이쪽은 느리긴 하지만 구동 자체는 완벽합니다.


보통 DXVK문제로 Steam Play에서 오류가 나는 경우는 다음과 같습니다.


The Island : In To The Mist란 게임으로 GameMaker2 엔진을 사용했고 DirectX11을 요구합니다. 그런데 저 오류 코드는 VRAM관련 오류인데 제 시스템에서 오류가 날 이유가 없습니다. 이 게임은 VRAM을 512MB만을 요구하거든요. 그러니까 하드웨어 문제가 아니라는 의미입니다. 결론은 Proton의 문제란 것이고 이걸 해결 하는 방법은 간단합니다. DXVK를 써서 Vulkan 모드로 구동하지 않고 WineD3D로 OpenGL모드로 구동하게 하면 됩니다.


Vulkan 드라이버 설치 및 SteamPlay를 활성화 했다는 가정하에 이야기 하겠습니다.

SteamPlay 활성화는 https://moordev.tistory.com/282 이 곳을 참고하세요.


게임 이름의 속성으로 들어갑니다.


"시작 옵션 설정..." 버튼을 누릅니다. 


여기에

PROTON_USE_WINED3D11=1 %command%


라고 적어주시면 됩니다. 뒤에 %command%까지 적어주셔야 합니다.

그리고 플레이 버튼을 누르면...


리눅스에서 문제 없이 구동이 됩니다!

만약 Vulkan이 구동이 안 되는 구형 시스템이라면 이 옵션으로 게임이 돌아가는 경우가 많다고 하니까 참고하세요!


Unity3D 엔진을 활용한 게임에서 나는 이런 오류도 같은 방법으로 해결이 가능합니다.

,

일단 먼저 https://moordev.tistory.com/282 이 글을 먼저 보는 것을 추천합니다.


이전에 우린 리눅스용 스팀에서 Proton으로 윈도우용 게임을 실행하는 것을 알아봤습니다. 이전에 PlayonLinux나 직접 Wine으로 삽질하는 것보다 훨씬 더 쉽게 게임을 실행하고 관리 할 수 있게 되었다는 것은 엄청난 발전입니다.


다만 아직도 상당수 게임들은 https://appdb.winehq.org/ 여기서 찾아보듯이 winetricks등을 이용해서 추가 라이브러리를 지정해야 하는 등 여전히 삽질이 필요합니다. 물론 여기까지 왔다는 것 자체가 상당히 고무적인 일입니다.


그래서 이번에는 추가 삽질을 해야하는 게임에 대해 알아보고자 합니다.


이번 타겟은 Puyo puyo Tetris입니다.

이전에도 PlayonLinux로 설치 및 실행까지 성공했던 게임입니다.


이젠 리눅스용 스팀에서 이 게임을 큰 문제없이 실행 가능하다.

사실 이건 Proton으로 큰 문제없이 실행되는 게임입니다. 문제는 실행만 되지 온라인모드만 들어가면 그대로 얼어붙는 문제가 생깁니다. 원인은 X_audio_2_7.dll이 완벽하지 않아서 생긴 일이라고 합니다. 


그걸 알아볼 수 있는 방법은 winehq.org에서 직접 찾아보는 것입니다.

https://appdb.winehq.org/objectManager.php?sClass=version&iId=36583


찾아보니 winetricks로 xact를 설치하고 winecfg에서 xaudio2_7을 네이티브로 설정하라고 나오는군요.


그럼 우린 이걸 응용해서 proton에 적용하면 됩니다.


우린 winetricks대신 protontricks(https://github.com/Sirmentio/protontricks)를 쓰면 됩니다.


설치는

sudo apt install winetricks

wget https://raw.githubusercontent.com/Sirmentio/protontricks/master/protontricks && chmod +x protontricks
sudo mv protontricks /usr/bin/protontricks


이렇게 하고 리눅스용 Steam에서 Puyo Puyo Tetris를 설치합니다.

이건 어렵지도 않지요. 설치가 완료되면 플레이버튼이 활성화 될 겁니다. 일단 플레이 버튼을 눌러서 사전설치 라이브러리를 설치합니다.


이제 Visual C++ Runtime 등이 설치 될 겁니다. 그리고 게임이 실행되겠지만 아쉽게도 음악이 들리지 않고 게임중에 멈추는 일이 일어납니다.


이제 이걸 Protontricks로 처리하면 됩니다. winehq.org에 나온 대로 우린 xact를 설치하고 xaudio2_7을 네이티브 설정만 하면 됩니다.


일단 터미널을 열고 시작해봅시다.

protontricks -s puyo


이렇게 하면

자 괄호안의 숫자코드가 보일겁니다. 저게 APPID입니다. 저걸 복사해서 다음 명령을 칩시다.


protontricks 숫자코드


여기선 숫자코드가 546050이군요.


이제 다음과 같은 창이 뜰겁니다.

터미널 내용도 확인해주세요.


이제 winetricks창에서 Select the default wineprefix를 선택하고 확인을 누릅니다.


다음에선 Install a Windows DLL or component를 선택하고 확인

그리고 아래로 쭉 내려서 xact에 체크하고 확인을 누릅니다.

그러면 이제 터미널에서 무언가 막 지나가면서 설치가 될 겁니다.

그리고 다 되었으면 취소를 눌러서 전 화면으로 돌아옵니다.


이번에는 Run winecfg를 선택

여기는 Wine을 많이 써보셨으면 익숙하실텐데 라이브러리 탭으로 들어갑니다. 그리고 새로 덮어 쓸 라이브러리에 xaudio2_7을 적은 다음 더하기 버튼을 누릅니다. 그러면 네이티브 설정 완료입니다.


덮어쓰기 목록에 xaudio2_7이 들어가게 된다.

그리고 확인을 누른 다음 winetricks창을 닫아주시면 됩니다.


이제 다시 Steam에서 Puyo Puyo Tetris의 플레이버튼을 누르면...


아무 문제 없이 실행이 됩니다!!!!!


Proton은 Vulkan이 지원된다는 가정하에 구동이 됩니다. 만약 Vulkan 실행이 되지 않는다면 mesa-vulkan-drivers 패키지를 설치해보시기 바랍니다.


sudo apt install mesa-vulkan-drivers


일부 AMD GPU의 경우 커널파라미터를 설정해야 할 수도 있습니다.


관리가 권한으로 /etc/default/grub 파일을 열고

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"


이 부분을

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.cik_support=0 amdgpu.cik_support=1 radeon.si_support=0 amdgpu.si_support=1"


이렇게 고쳐준 다음

sudo update-grub


이렇게 명령을 내려주면 radeon 드라이버대신 amdgpu드라이버가 돌아가면서 vulkan 지원이 됩니다.


Protontricks와 리눅스용 스팀을 이용해서 윈도우용 게임을 굴리는 법을 알아봤습니다.

,