닌텐도DS는 스마트폰 시대 이전의 지하철이나 버스에서 흔히 볼 수 있는 물건 중 하나였습니다. 그 당시 제 기억으로는 이나영와 장동건이라는 걸출한 스타의 CF를 통해서 홍보했던 것으로 기억합니다. 


이 때 정말 NDSL이 어마어마하게 팔려나갔습니다. 아 NDS가 아니라 NDSL이요. 닌텐도코리아를 통해 들어온 닌텐도DS는 NDSL입니다. 닌텐도DS 시리즈는 "휴대용 게임기의 강자는 역시 닌텐도다."라는 인식을 심어주기에는 충분했습니다. PSP가 훨씬 더 성능이 좋고 많은 기능들로 무장했었지만 장동건과 이나영을 앞세운 마케팅효과가 정말 주요했습니다.


하지만 닌텐도DS들은 어느 날 뜻하지 않은 경쟁자를 만나서 거리에서 모습을 감추기 시작합니다. 다름아닌 아이폰을 필두로 한 스마트폰들이 등장하면서 몰락의 길을 걷기 시작합니다. 아니, 이미 NDS와 NDSL, 그리고 NDSi는 수명이 끝나가고 있었다고 봐도 상관없었습니다. 하지만 갑작스럽게 사라졌다는 느낌일까요? 스마트폰들이 NDS시리즈를 밀어냈다는 느낌이 강했습니다. 하지만 NDS는 스마트폰에는 없는 정말 재미있는 게임들이 많았고 지금도 상당히 재미있습니다. 하지만 그렇다고 지금 NDS를 들고 다니는 것은 조금 무거운 느낌이 듭니다. 주머니에 들어가는 스마트폰이 있는데 NDS는 그에 비하면 너무 두껍다는 느낌입니다.


이런 NDS를 스마트폰을 대신 할 수 있게 만든 것이 바로 이번에 소개할 NDS에뮬레이터인 nds4droid와 Drastic입니다. 특히 Drastic은 스마트폰에서의 속도 문제를 해결한 에뮬레이터라 비싼 가격에도 어마어마한 양을 팔았습니다. 한 때 플레이스토어 다운로드 수 1위까지 갔었으니까요. nds4droid는 현재 가장 PC에서 호환성이 좋다는 DeSmuME를 기반으로 만들어져서 호환성 하나는 기막힙니다. 거두절미하고 바로 이야기 해보도록 하지요.


nds4droid는 오픈소스로 만들어진 DeSmuME의 소스코드로 만들어진 에뮬레이터입니다. 사실 이전에 NDS에뮬레이터 중에 no$gba라는 에뮬레이터가 있었습니다만, 업데이트가 워낙 안 되어서 이를 밀어내고 신흥 강자로 우뚝 선 에뮬레이터입니다. NDS게임을 PC에서 하겠다면 DeSmuME로 굴리는 것이 당연한 수준이지요. 호환성도 가장 좋고 속도도 상당히 괜찮습니다. 포켓몬스터 시리즈같이 유명한 게임의 경우에는 별 문제 없이 된다고 봐도 됩니다.


DeSmuME로 포켓몬스터 시리즈 정도는 별 문제없이 잘 돌아간다. 이 에뮬레이터를 안드로이드에 포팅하면? 스크린샷은 포켓몬스터-화이트2


약간 나온지 지난 물건은 필터까지 적용해서 깔끔한 화면으로 충분히 돌릴 수 있는 수준. 스크린샷은 포켓몬스터-하트골드


PC에서도 상당한 호환성을 보유한 에물레이터이고 오픈소스이기까지 한 물건이니 당연하게도 이를 안드로이드에서 돌리기 위한 프로젝트가 시작되었지요. 그리고 이윽고 nds4droid란 이름으로 플레이스토어에 등록됩니다. 사실 NDS에뮬레이터는 이전에도 상당히 많은 수가 플레이 스토어에 등록되었는데 가짜가 반이고 호환성 꽝이 나머지 였습니다. 되기는 되어도 1~2fps나올까말까한 수준이었지요. 그런데 nds4droid는 느리기는 하지만 그래도 15fps는 나와주었습니다. 실기에 비해 상당히 답답하기는 해도 못 할 수준은 아니었다는 것입니다. 포켓몬스터 블랙,화이트 이후 시리즈는 좀 힘들기는 했지만 그래도 그럭저럭 돌아가주며 희망을 보여주었습니다. 무엇보다 오픈소스인것도 한몫했습니다."NDS게임들이 스마트폰에서 돌아갈 날이 얼마 안 남았구나"라면서요. 그렇게 nds4droid를 통해 안드로이드 환경에서 NDS게임을 할 수 있다는 희망을 보게됩니다.


nds4droid로 포켓몬스터 블랙버전을 돌린모습 Nexus7 2011년형으로 돌린 것인데 타이틀에서 12fps이 나온다. 못할 수준은 아니지만 답답한 면은 있다.


nds4droid가 호환성을 확보하고 돌아가는 모습을 보여준 후, 어느 날 갑자기 플레이스토어에 갑작스런 핵폭탄이 떨어지게 됩니다. 그 이름이 바로 Drastic입니다. 6000원이라는 상당한 가격임에도 판매량이 어마어마했고, 별5개가 마구 쏟아지는 그런 어플리케이션이 나온 것입니다. 그 이유가 지금까지의 에뮬레이터의 추종을 불허하는 어마어마한 속도를 보여주었기 때문입니다. 그냥 실기 그대로의 속도를 보여주며 포켓몬스터, 마리오, 젤다같은 NDS게임들을 별 무리없이 돌리는 모습을 보여주었습니다. 심지어 실기와 비교해도 속도 차이가 전혀 나지 않았습니다. 이는 NDS에뮬레이터계의 거의 혁명 수준이었습니다.


Drastic의 타이틀 화면 군더더기없이 깔끔하다.


하지만 속도에서 혁명을 보여준 Drastic은 초기엔 호환성 문제가 많이 터졌습니다. 대표적인 것이 포켓몬스터 블랙/화이트버전에서 갑작스런 백화현상이 일어나는 것이었습니다. 지금은 당연하게도 해결되었지만 이 백화현상을 피하기 위해서 nds4droid로 세이브파일을 옮겨서 백화현상이 일어나는 구간을 지나간 뒤에 다시 Drastic으로 세이브 파일을 옮기는 등의 술수를 이용했습니다. 이외에 제가 직접 겪었던 문제로 날짜가 마구 헝클어지는 문제가 있습니다.(저는 최근

에도 겪었습니다. 7월인데도 배경은 겨울로 인식이 되더군요. 남반구로 인식이 된 것인지 해결이 아직 완벽히 안 된 듯 합니다.)하지만 개발자가 열의를 가지고 개발을 하고 있고, 사람들도 계속 구입 중인 것을 보면, 이런저런 문제는 해결될 듯 합니다.

하지만 Drastic은 큰 문제를 하나 안고 있습니다. 바로 오픈소스가 아니라는 사실입니다. PC에서 no$gba가 대세였다가 몰락 하게 된 이유는 no$gba가 클로즈드소스이면서 업데이트가 끊기는 바람에 오픈소스인 DeSmuME에게 밀린 것입니다. Drastic도 갑자기 업데이트가 끊길 가능성은 충분합니다. 개발자가 만약 업데이트가 어렵다면 오픈소스로 전환 할 수도 있겠지만, 지금의 판매량을 보면 그럴일은 거의 없을 것 같고, 개발자측에서 양심을 믿고 계속 개발해주기를 바래야 합니다. 두번째 문제로 닌텐도의 태클로 플레이스토어에서 추방될 수도 있습니다. NDS이전에 GBA에뮬레이터들이 플레이스토어에서 추방당한 전력이 있기에 이는 가능성이 정말 농후합니다. Tiger에뮬레이터도 당시에 정말 많은 게임기들을 지원했고 상당한 다운로드수(Tiger에뮬레이터들은 무료버전이 있었습니다.)를 보유했지만 그냥 전부 다 퇴출당하고 구글링을 통해서 구할 수밖에 없는 물건이 되었습니다. 오픈소스라면 소스코드가 남아있고 git을 통해 다운로드 받아서 쓸 수 있기 때문에 사라질 염려는 없다고 볼 수 있습니다. 그런데 nds4droid도 아직 플레이스토어에 남아있고 Drastic도 무사히 있는 것을 보면 닌텐도에서도 그냥 NDS시리즈는 포기한 것일지도 모르겠습니다. (한때 대숙청되었던 GBA에뮬레이터도 다시 올라와 있는 것을 보면 닌텐도에서 그냥 태클 걸기를 포기 했을 수도 있습니다.) 하지만 갑자기 닌텐도가 마음이 바뀌어서 언제 구글에 언제 갑자기 태클을 걸지도 모르지요.


nds4droid는 Drastic의 등장으로 갑자기 위축되었다는 느낌이 들지만 반대로 Drastic으로 인해 nds4droid의 성능을 향상 시킬 수있는 가능성을 발견 한 듯한 느낌이 듭니다. 사실 Drastic이 발전하는 것은 발전하는 것이지만 nds4droid가 발전하는 것이 사용자들에게는 더욱 좋습니다. 일단 무료인데다가 오픈소스라서 플레이스토어에서 사라져도 구하기가 쉽거든요. 개인적으로는 nds4droid를 응원하고 있습니다만, Drastic이 너무 좋아서 계속 Drastic을 이용하게 되네요.


이상으로 Drastic과 nds4droid에 대해 알아보았습니다. 사용방법이야 굳이 따로 알려주지 않아도 될 것이라고 믿고 단순한 고찰만 했습니다. 어차피 플레이스토어에도 나와있고 도움말만 읽어봐도 다 나와있으니 그대로 하시면 되니까요. 이 에뮬레이터 이야기 시리즈는 그냥 에뮬레이터에 대한 역사(?)와 고찰에 대해서만 이야기 하도록 하겠습니다. 다른 블로그에만 가도 자세히 나와있는데 제가 굳이 알려드릴 이유는 없을 것 같으니까요.


다음 이야기는 PSP에뮬레이터 PPSSPP에 대한 이야기를 해보겠습니다.

,

리눅스를 다른 사람들에게 별로 추천하지 못하는 이유 중 하나가 응용프로그램, 그 중에서도 게임이 안 된다는 것이 주 원인입니다. 우분투 8.04 시절에 Compiz의 화려한 효과를 보여주면 사람들은 우와~ 했지만 언제나 돌아오는 질문은 "근데 이거 게임 되냐?"였습니다. 그 당시에 제가 할 수 있던 대답은 하나였지요.


"스타 정도는 삽질하면 돌아가."


네 삽질 좀 해야 스타가 돌아가던 시절이었습니다. 물론 스타가 돌아간다는 사실 만으로도 행복하던 시절이기도 했지요. 물론 리눅스용 게임으로 퀘이크가 있기는 했지만 지금이나 그때나 퀘이크는 아는 사람만 아는 게임이었습니다. 퀘이크라고 해봐야 "그게 뭔데?"라는 질문만 돌아올 정도였으니 예시로 들기에는 부적절했습니다. 그래서 하는 수 없이 그 당시에도 꾸준한 인기가 있었던 스타크래프트를 예로들었지요.이후에 Wine이 꾸준히 개발되며 호환성을 상당히 확보했고 표준 Windows API가 아닌 특이한 방법으로 만들어진 게임이 아닌 이상 어쨌건 게임이 되긴 되는 시대까지 되었습니다. Wine이 거의 완벽한 호환성을 갖추게 된 때가 아마도 2009~2010년이 되었을 때였을 것입니다.


그리하여 Wine을 이용해서 수많은 윈도용 게임을 리눅스에서 할 수 있게 되었습니다. 물론 패키지게임의 경우 DRM들이 문제를 왕창 일으키기는 했지만 No-CD, No-DVD 패치들이 인터넷에 돌아다녔기 때문에 보통 이를 이용해서 해결했습니다.


우분투 10.04시절 롤러코스터 타이쿤3 구동 스크린샷 저의 Daum블로그에 올렸던 스크린샷입니다. 그래픽은 기본 wine으로 구동 음악은 DirectX9 라이브러리 설치후 설정으로 해결

어쨌건 이제 리눅스에서 게임이 안 된다는 말은 옛말이된지 오래되었습니다. 다만 Wine을 이용한 방법은 생각 외로 복잡해서 설치하는 사람에게 고통을 자주 안겨주었습니다. 그 때 해결 방안을 함께 알려준 물건이 바로 PlayonLinux입니다.(http://www.playonlinux.com) 이전에도 포스팅을 했었지만 PlayonLinux는 Wine만으로 게임하기가 너무 불편하고 힘들자 Wine을 버전별로 관리하게 하고 각 프로그램마다 가상 윈도(즉, Wine의 FakeWindows를 말합니다.)설정을 다르게 해서 게임 별로 관리하기 쉽게 만든 것이 특징입니다. 지금은 게임 외의 다른 프로그램도 지원하지만요.



무엇보다 게임설치에 필요한 라이브러리(DirectX같은 것을 말하는 것입니다.)를 자동으로 미리 설치해주고 설치를 쉽게 하도록 안내해주고 있어서 이 프로그램을 이용하면서 리눅스에서의 윈도 게임은 쉽고 빠르게 즐길 수 있게 됩니다. 사실 PlayonLinux 이전에도 Wine을 편하게 쓰기 위해서 많은 시도가 이루어져 왔습니다. Wine-doors라던가 Cedega(이것은 자체 개발한 유료 라이브러리인 WineX라는 것을 이용합니다.)라던가 많이 있었지만 PlayonLinux와 Cedega와의 차이는 사용 라이브러리가 Wine이냐 WineX냐의 차이였고 Wine-doors는 그냥 Wine을 GUI로 쓰고자 하는 경우에 가까웠습니다. winetricks(https://code.google.com/p/winetricks/)를 통해 라이브러리르 설치하는 것도 물론 없었고요. PlayonLinux의 설치스크립트 같은 것은 없었습니다. PlayonLinux가 지금은 게임 만큼이나 다른 일반 프로그램설치도 지원하지만 지금도 게임이 제일 많이 리스트에 있습니다. 그것이 사실 처음에는 게임에 특화 시켰던 흔적 이라고도 볼 수 있습니다. 


하지만 PlayonLinux는 모든 게임을 자동으로 완벽하게 해주지는 못했습니다. 바로 No-CD,DVD패치가 법적인 문제가 있어서 이용자가 따로 패치를 하도록 구성을 할 수밖에 없었기 때문입니다. "패치만 해주면 되는데 상관없지 않나?"라고 생각하시는 분들도 있을 수 있는데 처음 쓰는 사람에게는 그것도 은근히 고역입니다. 게다가 No-CD,DVD패치를 구글링 해야하는 수고도 필요했고요. 그런데 이때 DRM-FREE를 표방한 사이트가 등장하게 됩니다. 바로 GOG.com입니다. 이 GOG.com에서 파는 게임들은 따로 패치를 하는 수고로움이 없어졌기에 PlayonLinux에 리스트업됩니다. 이 때 상당히 업데이트가 잦았던 것으로 기억합니다. GOG.com에 새로운 게임이 올라오면 그 순간 새 설치리스트가 올라올 정도였습니다.


DRM-FREE게임을 판매하는 GOG.com 이제는 윈도용 뿐만 아니라 리눅스게임도 팔고 있습니다.


이제 리눅스에서는 Wine의 힘을 얻고 윈도용으로 출시된 게임들을 할 수 있게 되었습니다. 하지만 인간의 욕심은 끝이 없지요. 컴퓨터의 최고 성능을 끌어내야 하는 게임에서 Wine을 한번 거쳐야 한다는 사실은 게임에게는 좀 부족했었던 것 같습니다. 특히 네이티브 리눅스 지원게임과 윈도게임을 Wine으로 돌리는 것은 정말 큰 차이가 났습니다. 이후로 리눅서들은 리눅스 네이티브 게임을 갈망했는데 이를 한번에 뚫어준 것은 다름 아닌 세계 최대 게임유통사(?) Valve였습니다.

스팀에서 팔고있는 리눅스 지원 게임들 자그마치 600여개가 넘어간다. 그 중에서 문명5도 포함되어져 있다.

Valve는 아시는 대로 Steam이란 거대 유통망을 가지고 있는 회사입니다. 그리고 PlayonLinux에 따로 Steam이 있을 정도로 Steam을 이용한 게임을 돌리기 위한 노력도 정말 많이 있었습니다. 그런데 어느날 Valve는 Mac용 Steam을 발표하면서 FAQ부분에 의미심장한 부분이 추가되게 됩니다.


Q : Linux용은 없나요?

A : 아직 Linux용은 개발되지 않았습니다. 하지만 Wine을 이용해서 Windows용 Steam을 실행해 볼 수 있습니다.


정말 이렇게 나와있었습니다. 아마도 Mac용이 출시 된다고 했을 때 Linux용에 대한 문의가 많았던 것 같습니다. 그래서인지 Wine으로 실행이 가능하다고 친절(?)하게 답을 달아주었습니다. 실제로 이 때 Wine으로 Valve사 게임은 충분히 돌아갔으므로 틀린 말은 아니었지요. 하지만 이 일이 기폭제가 되었을지는 잘 모르겠습니다. 어느날 Valve는 갑자기 Linux용 Left4Dead2를 시연하면서 Linux용 Steam을 발표하게 됩니다. Steam의 전부는 아니지만 Steam의 이용 목적이라고 할 수 있던 Valve사의 게임을 Linux로 포팅 하겠다는 발표도 빼놓지 않았습니다. 리눅스 커뮤니티는 전부 뒤집어졌습니다. 어떤 분은 이런 글을 남기셨더군요.

"Valve가 리눅스로 도망간 내 지갑을 또 노리고 있다."

어쨌건 이로써 Lefrt4Dead나 TeamFortress2 등의 굵직한 게임들이 리눅스 네이티브로 출시되게 되었습니다. 물론 리눅스용이 따로 있었던 게임들도 Steam을 통해서 리눅스용을 구입할 수 있게 되었습니다.

 사실 이렇게 되어버린 것도 시장경제논리에 따른 것입니다. 그 원인은 Microsoft가 만든 것이고요. 무슨 말이냐면 Microsoft가 WindowsStore를 Windows8에 끼워넣자 Valve는 Steam의 영향력이 줄어들 것이라 생각하고는 Windows외의 도피처를 생각하게 됩니다. 사실 Microsoft의 윈도 끼워넣기로 잘 나가던 회사가 망한 것이 한둘이 아님을 감안하면 충분히 예상은 가능했지요. 이 때 Valve가 생각한 것이 바로 리눅스였던 것입니다. MacOSX도 있지만 어차피 얘네도 앱스토어가 있어서 자신들이 직접 게임을 팔겠다고 나서기 충분한 상황이었습니다. 지금도 실제로 팔고 있고요. 그 다음 플랫폼은 바로 리눅스입니다. 점유율은 다른 OS에 비하면 박살이기는 했지만 충분히 경쟁력은 있다고 생각했음이 분명합니다. 어쨌건 Valve는 결국 리눅스 중에서도 특히 데스크탑용으로 많이 쓰이는 우분투 용으로 Steam은 출시되게 됩니다. 그리고 우분투 게이머들은 환호했구요. (물론 그들의 지갑은 가벼워졌다고 합니다.)


그런데 Valve는 Microsoft를 보면서 한 가지 더 생각한 것이 있었던 것 같습니다. Microsoft가 자신의 플랫폼을 가지고 시장을 좌지우지 한다고 판단한 것인지 Vavle는 리눅스를 기반으로 한 SteamOS를 발표하게 됩니다. 이미 자사 게임들을 리눅스 용으로 내놓았고 리눅스용 게임도 충분하니 이 SteamOS도 크게 꿀릴 것인 없다고 판단한 모양입니다. 아니면 Steam의 점유율을 새로운 플랫폼 창조로 잇겠다는 극히 Valve스러운 행보일 수도 있고요.


이 SteamOS는 리눅스를 기반으로 한 또 다른 OS이기도 하지만 오로지 Steam만을 위한 OS이기도 합니다. 사실 일반 적인 리눅스 데스크탑에 Steam을 설치한 것과는 크게 다르지 않습니다만 필요한 것만 설치하고 다른 것은 일체 배제함으로써 OS를 게임용으로 최적화를 가능케 한 면이 있지요.


그리고 이 SteamOS를 기반으로 소위 SteamBox란 것도 있고 터치패드를 이용한 Steam용 게임패드도 개발중에 있습니다. 즉, Steam을 이용해서 거실의 최강자 Microsoft와 Sony 그리고 Nintendo의 자리까지 노리겠다는 수로 보입니다. 어찌보면 Micorosoft에게 복수한 것이 아닐까 생각이 들 정도네요.


하지만 이 SteamOS의 성공을 판가름할 열쇠도 다름 아닌 리눅스용 게임들입니다. Valve는 WindowsPC에서 스트리밍해서 플레이 가능케 하겠다고 하는데 그래봐야 리눅스 네이티브 보다 성능이 떨어질 것은 뻔합니다. 다시 한번 말씀드리지만 게임이란 하드웨어의 성능을 제일 많이 필요로 하는 프로그램입니다. 스트리밍만으로 부족할 가능성이 높습니다. 무엇보다 아직까지도 스트리밍이 구현되었다는 소리를 못 들었습니다. 스트리밍의 성능이 어느정도 나올지는 일단 나와봐야 알 것 같고 현재 SteamOS에서 돌아가는 것은 오로지 리눅스용 게임들 뿐입니다. 이 게임 중에 킬러컨텐츠는 얼마나 있을까요? SteamOS가 성공하면 리눅스는 이제 게임하기 어려운 OS가 아니게 될 것입니다. 다른 프로그램을 몰라도 게임하나 만큼은 자신있는 플랫폼이 될 수도 있습니다. 제 나름대로는 이 SteamOS가 꼭 성공하기를 바랄뿐입니다.


제가 리눅스를 처음 접했던 시절에는 정말 게임하기 힘들었습니다. 아니 애초에 게임을 하려고 한 발상자체가 말이 안 되던 시절이기도 했지요. 그런데 이제 7년정도 지나가니 리눅스가 게임 전용 플랫폼이 되기도 하네요. 덕분에 요즘에는 몇몇 친구들 한정해서 우분투 써보라고 하기도 합니다. 왜냐하면 게임도 잘 돌아간다고 얘기해 줄 수 있거든요.

,


윈도를 사용하는 사람들은 CCleaner같은 프로그램이나 V3 Lite같은 프로그램에 붙어나오는 스위퍼 기능을 애용합니다. 인터넷캐시나 레지스트리에 남은 쓰레기값 그리고 백업파일(*.BAK) 등을 깔끔하게 삭제하기 위해서 해당 프로그램의 기능을 활용합니다. 그런데 우분투도 데스크탑OS이다보니 캐시나 로그등이 많이 남습니다. 어쩌면 우분투는 로그를 정말 잘 남기므로 오류가 뜨거나 약간의 경고도 로그가 꽤 많이 남습니다. 그런데 데스크탑 쓰는 사람치고 로그를 유심히 보는 사람은 극히 드물 것입니다. 만약 오래된 로그라면 더더욱 쓸모 없을 것이고요. 이런 로그나 캐시파일들 솔직히 말해서 정말 쓸모없는 것들이지요? 이런 것들을 한꺼번에 처리해 줄 수있는 프로그램이 필요했지요.

그래서 깨끗한 우분투 환경을 조성하기 위해 이 프로그램을 소개합니다. BleachBit!


깨끗한 우분투 환경이라고 했지만 이것으로 깨끗해 진다는 보장은 없습니다. 윈도에서 아무리 CCleaner 돌려봐야 포맷하고 다시 설치하느니만 못한 상태가 되는 것과 비슷하다고 볼 수도 있습니다. 아니 까놓고 말해서 집을 대청소한다고 그 집이 새집이 되는 것은 아니잖아요. BleachBit는 말그대로 그냥 청소프로그램일 뿐입니다. 환상은 접어두고 단순히 어떤 것들을 청소해주는 지 확인 해 봅시다.


일단 저 같은 경우에는 Flash와 LibreOffice의 캐시들이 있군요. Flash캐시는 보통 광고들을 통해서 들어온 경우가 많습니다. 당연히 쓸모없는 것입니다. 삭제를 해주셔야 합니다. 쿠키도 물론 해당 사이트에서 필요로 한 경우입니다. 삭제 해주시는 것이 좋습니다.

APT는 여러분들이 소프트웨어 센터를 사용하면서 생긴 각종 패키지들 정보와 업데이트 정보, 그리고 다운로드 받다가 에러 나서 버려진 캐시 등을 말합니다. 특히 autoclean과 autoremove는 더 이상 이 시스템에서 있을 이유가 없는 패키지들을 삭제해 주는 역할을 합니다. 몇몇 라이브러리를 필요로 인해 자동으로 설치 했지만 이후에 해당 라이브러리를 이용하는 프로그램을 삭제해서 해당 라이브러리가 쓸모 없어진 경우, autoremove 옵션으로 삭제가 됩니다. (APT는 정말 귀찮은 곳을 잘 긁어주는 프로그램입니다.)

Bash 사용기록은 터미널을 이용해서 쉘 스크립트를 실행하거나 쉘 명령을 이용 했을시에 쌓이는 것입니다. 남겨도 나쁠 것은 없지만 남겨봐야 쓸모없습니다. 왜냐하면 이 기능은 서버에서나 쓰일 법한 기능이니까요.

X11디버그로그 당연히 데스크탑 용으로 쓰는 엔드유저에게는 전혀 쓸모없는 파일입니다. 만약 에러가 나서 물어볼 곳이 필요하다면 모를까(보통 에러와 함께 로그파일을 달라고 합니다.) 잘 쓰고 있다면 갖고 있을 이유가 하등 없습니다.

그 외에 시스템도 있는데 시스템에서 몇몇 기능은 최적화 작업을 동반하기 때문에 상당히 시간이 오래걸립니다. 거의 조각모음 한다고 생각하시면 됩니다. 특히 저 메모리 최적화 부분은 솔직히 안 해도 될 정도로 요새 램 용량들이 워낙 커서 할 이유가 더 더욱 없어집니다. 예전의 윈도98시절의 메모리 청소기도 아니고 쓸 이유가 하등 없지요.


만약 오래 걸릴 작업이라면 BleachBit가 알아서 오래걸릴 작업이라고 알려줍니다. 그러면 그냥 안 하시면 됩니다. 굳이 할 필요 없어요. 다른 캐시나 로그 파일 삭제만으로도 상당한 양의 용량이 확보 될 것입니다. 우분투나 윈도나 어차피 사용자의 사용 경향에 맞게 점점 나아지는 운영체제라(XP시절부터 Prefetch란 것이 있었지요. 우분투는 그러한 기능이 없지만 사용자들이 삽질해서 만들어가지요.)잘 쓰고 있다면 굳이 싹싹 지울 이유는 없습니다. 다만 쓸모없는 파일을 삭제 함으로써 디스크 용량을 확보하는 것이 주 목적이지요.


만약 우분투 시스템의 디스크 용량이 부족하신가요? 패키지트리가 지저분하신가요? 그러면 BleachBit를 한번 굴려주세요. 우분투가 깨끗해집니다.

,

1. aFBA

소스코드 : https://github.com/Cpasjuste/libafba

바이너리 : http://android.mydedibox.fr/afba/aFBA.apk

aFBA는 여러 안드로이드 아케이드 에뮬레이터 중에서도 Tiger Arcade나 다른 아케이드 에뮬레이터를 제치고 가장 최적화된 에뮬레이터로 꼽히는 에뮬레이터입니다.

사실 아케이드 에뮬레이터의 본좌는 Mame입니다. 하지만 안드로이드용 mame는 속도가 아직까지는 별로더군요. Mamedroid 외에더 mamedroid reloaded란 것도 나왔지만 롬 호환성만 좋아졌을뿐 aFBA에 비하면 그렇게 성능이 좋지 못합니다. aFBA는 아케이드 에뮬레이터 중에서 Final Burn이란 에뮬레이터를 기반으로 하는데 cps1,2 pgm, neogeo같이 그럭저럭 잔뼈 굵은(pgm이 메이저 급이었던가요?)기판은 지원하지만 마이너한 기판은 가차없이 미지원입니다. 이를 기반으로 했기에 aFBA도 마찬가지로 일부 메이저 기판만 지원합니다. 하지만 성능은 우월합니다. 넥서스원에서도 메탈슬러그3를 무사히 돌려서 게임이 가능했으니까요. MetalSlug3가 오래된 게임이기는 하지만 Mamedroid에서는 게임플레이가 도저히 못해 먹을 수준이었지만 aFBA는 아주 훌륭했습니다.

 TigerArcade와의 비교에도 aFBA가 압승이더군요. 지원기판수도 비슷한데다가 타이거 에뮬레이터는 구하기도 어려운편이라 그냥 이렇게 사장되어가는 분위기입니다. 심지어 aFBA는 오픈소스라 사라질 염려도 없습니다. 한때 나마 유료로 판매했던 neoDroid도 이거에 밀리더군요. 아마도 aFBA는 소스코드가 있는한 계속적인 업데이트도 가능하리라 보는데 최근 업데이트가 없는듯 합니다. 그도그럴것이 cps나 네오지오나 새로운 게임은 나오지도 않는데다가 킷캣에서도 민망할정도로 잘 돌아가고 있어서 커밋할 필요성을 못느껴서 그런듯합니다. 롬셋이 급변하지 않는이상 12년 버전인 1.6이 장수할 것 같네요. 

전체적인 인터페이스도 다른 에뮬레이터에 비하면 환상적입니다. 너무깔끔해서 에뮬레이터가 아니라 어느 웹페이질 보는 듯합니다. Tiger시리즈가 투박한 인터페이스를 자랑한거에 비하면 거의 깔끔하게잘 만들었습니다.


만약 속도가 느리다면 게임내에서 한번 뒤로를 누른 다음 위쪽 도구 상자중에서 두 번째 버튼을 터치 그리고 none을 고르시면 확실히 성능이 나아짐을 보입니다. 사실 이것은 브라운관 느낌이 나도록 하는 필터가 작동하면 서 생긴 일종의 프레임 하락인데 게임하면서 굳이 필요없는 필터를 제외함으로써 프레임의 이득을 보고자 하는 것입니다. 필터가 빠짐으로써 게임이 약간 깨끗해 보이는 효과도 얻을 수 있습니다. 만약 원한다면 더 깔끔하게 보이게 하는 필터를 적용해도 좋습니다. 다만, 이때는 성능이 좀 좋아야 히겠지요.


지원게임은 MAME가 지원하는 게임이면 됩니다. 다만, 기판이 CPS1,2 NeoGeo, PGM 그리고 이들보다 이전의 물건인 경우 정도만 가능합니다. Finalburn지원 리스트를 보시는 것이 더 빠르겠군요.





다음 포스팅에는 포켓몬스터 6세대를 스마트폰으로 가능 하게한 drastic과 nds4droid에 대한 포스팅을 해보도록 하겠습니다.

,

OpenShot과 Kdenlive는 각각 GTK계와 QT계의 대표적 동영상 편집 도구입니다. 특히 오픈소스 편집 도구 중에서도 병렬 편집지원 (파이널컷같은) 동영상 편집 도구 중 가장 사용자층이 넓습니다. 사실 GTK계에는 Pitivi라는 걸출한 물건이 있고 이 또한 상당한 사용자를 보유하고 있습니다만, 아직까진 상당히 불안정한 모습을 자주 보이더군요. Pitivi의 경우 Openshot과 비교할 시 불안정함과 동시에 기능상으로도 무언가 많이 부족한 느낌이었습니다. 그리하여 결국 Pitivi는 빼기로 결정했습니다. Pitivi팬분이 계신다면 조금은 아쉽겠네요. Cinerella라는 물건도 있습니다만, 이 물건도 HD급을 편집하려드니 제 컴퓨터에서도 상당히 불안정하더군요. 그래서 비교에서 빠졌습니다.


그러면 간단하게 Openshot과 Kdenlive만을 비교하도록 하겠습니다.

우선 인터페이스 비교입니다.


Openshot

 Kdenlive

 


 



이 둘만 봐도 KDE와 Gnome의 철학 차이가 느껴집니다. Openshot의 경우에는 상당히 간편하게 직관적으로 만들어놓았습니다. 물론 Kdenlive가 직관적이지 않다는 것은 아닙니다만 기본적으로 아이콘들과 버튼이 큼직큼직하기에 눈에 쉽게 들어옵니다. 하지만 기능상의 부족이 약간 신경쓰이네요. 동영상 속도라던가 소리 피치 조절같은 의외로 자주 쓰일 법한 기능은 빠져있습니다. 아니면 제가 못 찾은 것일 수도 있습니다. 잘 안 쓸것이라 판단하고 치워놓았을 가능성도 있습니다. Gnome의 철학이 바로 이런식이니까요.

Kdenlive는 Openshot에 비하면 약간 난잡해보이는 인터페이스입니다. 그림판만 쓰던 사람이 포토샵을 처음 잡았을때의 느낌일까요? 어떻게 하는거지? 라는 생각이 먼저 듭니다. 그런데 이리저리 쓰다 보니 사용방법이 Openshot하고 크게 차이는 없더군요. 클립을 가져오고 -> 클립을 이어붙이고 -> 클립을 자르고 -> 붙이고 -> 효과를 주는 것으로 마무리 Openshot과 Kdenlive의 작업 방법은 거의 비슷합니다. 여기서 이미지를 마스크화 해서 추가하고 자막을 만들어서 넣어주면 꽤 괜찮은 동영상이 하나 만들어집니다.

그런데 Openshot과 Kdenlive의 인터페이스는 이를 보자마자 알게 하느냐? 아니면 잠시 멍~때리다가 알게 하느냐의 차이가 있습니다.


 개인적으로는 인터페이스는 Openshot에 한 표 주고 싶습니다.


하지만 안정성은 어떻게 될까요? Kdenlive는 KDE의 특유의 개발방법에 의거 VLC를 동시에 이용합니다. 저기 있는 미리보기 화면이 사실 VLC플레이어랍니다. 요새는 이런식으로 만들어진 물건 보기 힘들긴 합니다만, 윈도에서 미디어 플레이어 컨트롤 때려 박는 것과 비슷하지요. 그런데 프로세스가 따로 돌아가는 것인지 저 미리보기가 버벅거려도 Kdenlive 자체는 그렇게 느려지지 않습니다. 가끔 미리보기가 수많은 효과 때문에 효과를 렌더링하느라 버벅거리는 일이 잦지만 최소한 죽어버리는 일은 드물더군요. 가끔 과열로 인해 시스템이 마비된 적은 있습니다. 그럴 때는 살포시 전원차단후에 5분정도 냅둔후에 다시 켜면 작업이 쌩쌩해집니다. Openshot은 그에 비하면 아직 불안정한 모습이 보입니다. 불안정한 것은 미리보기 했다가 그대로 프로그램 자체가 튕기는 경우가 있습니다.(그래도 Pitivi보다는 낫습니다.) 상황이 이러하다보니 개인적으로 동영상 클립의 갯수 많고 자막이 많은 경우에는 Kdenlive를 이용하는 경우가 많습니다.


 안정성으로는 Kdenlive의 승리입니다.


이제 인코딩 속도를 보는 것은 어떨까요? 이 경우는 Gstreamer vs Videolan 이라고 볼 수 있습니다. Openshot이 Gstreamer이고 Kdenlive가 Videolan 즉 VLC입니다. 동영상 호환은 VLC보다는 Gstreamer가 더 괜찮았습니다. 재생이 아니라 일부 인코딩한 결과물을 말하는 것입니다. 해당 결과물이 일부 기기에서 한해서지만 VLC로 인코딩한 영상은 재생을 못하더군요. 둘다 H.264에 AAC오디오 MP4컨테이너였지만 프로파일 문제였는지 아니면 다른 문제였는지 약간 차아기 났습니다. 하지만 인코딩할 때의 속도 만큼은 Videolan쪽이 월등했습니다. 사실 일부기기만 재생이 안 된다 뿐이지 그 기기를 안 쓴다면 별 문제는 없어 보입니다. 그리고 youtube 업로드가 목적이라면 더더욱 문제 없습니다.


 인코딩 속도도 Kdenlive의 승리입니다.


이 외에도 몇 가지 더 비교할 수도 있습니다만, 우선은 여기까지입니다. Kdenlive가 더 점수가 높긴 하지만 심층 분석은 아니니 적당히 참고로만 하시고요. 사실 간단한 편집이라면 클립이 적을경우 Openshot, 클립이 많으면 Kdenlive를 사용합니다. 사실 Openshot이 인터페이스가 조금 쉬운 편이라 작업속도가 빠르거든요. 하지만 클립이 많으면 죽어버리는 것은 어쩔 수 없어서 Kdenlive를 사용합니다. 그리고 동영상 길이가 길다면 역시 Kdenlive를 사용합니다.

역시 상황에 맞게 사용해야 하는 것일까요?

,

http://www.ubuntugeek.com/how-to-improve-ubuntu-laptop-power-management.html


우분투는 그 자체 만으로도 상당히 쓸만한 OS이지만 리눅스 특유의 ACPI정책덕에 전력을 많이소모하는 것으로 유명하다. 발열도 윈도에 비해 많은 편이고 배터리 소모율도 상당한 편이다. 그래서 laptop-mode-tool이라던가 커널패치를 통해 CPU전압을 조절하는 등 많은 시도가 있어왔고 이를 하나롤 처리해주는 패키지를 소개하고자 한다.


이름은 TLP이며 

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw


위의 3줄 명령어로 설치 가능하다. 보면 알겠지만 PPA를 통한 설치이므로 우분투계열이 아닌경우 설치가 어려울 수 있다. 하지만 오픈소스이니 찾아보면 소스를 컴파일함으로써 사용 가능하니 다른 배포판사용자들도 충분히 사용가능하리라 믿는다. 그도 그럴 것이 여기는 우분투 사용관련 블로그이다.


sudo tlp start


위 명령어를 이용하여 바로 작동이 가능하다. 특히 tlp가 관리하는 것이 배터리모드와 AC모드의 구분 및 바로 절약모드 돌입이다. 우선 적으로 AMD GPU의 low전압모드가 있고 성능은 떨어지더라도 발열량을 극히 줄일 수 있어서 상당히 괜찮게 만들어진다. 그외에 사운드카드의 절약모드의 경우 소리가 안 나고 있을 경우에는 전원을 차단해서 배터리를 절약하는 방식으로 돌아가며 일부 보드나 노트북은 무선랜 사용시 자동으로 전원 차단을 해줘서 전원절약을 극대화 시켜주기도 한다. 사실 이 기능들은 모두 우분투에 기본적으로 들어가 있는 기능들이지만 이를 모두 활성화 해주려면 상당한 삽질이 필요하다. 이것을 한번에 해주는 것이 바로 tlp이다.


이 설정도 /etc/default/tlp파일을 수정함으로써 AC전원에서 절약모드로 들어갈 수도 있다. 만약 발열이 심하다면 이 설정을 손을 대는 것도 나쁘지는 않다. 물론 관리자 권한으로 수정해야 하므로 sudo명령은 필수다.


만약 뭐가 뭔지 모르겠고 난 그냥 발열만 잡고 싶다면 AC와 배터리를 똑같이 설정해주면 된다.


# Seconds laptop mode has to to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2 


이 기본 설정이라면

# Seconds laptop mode has to to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
DISK_IDLE_SECS_ON_AC=2
DISK_IDLE_SECS_ON_BAT=2

으로 바꿔줌으로써 상당한 하드디스크 발열을 잡을 수 있다.


다른 모드도 비슷하게 작동하니 숫자를 조절해가면서 성능과 발열을 조절하면 우분투에서도 상당히 전력소모량을 줄일 수 있게 된다.


만약 지금 설정을 보고 싶다면 터미널에서

tlp-stat

이 명령만으로 충분히 확인 가능하니 직접 시도하면서 삽질을 해보자. 이런 재미에 우분투로 삽질하는 것 아니겠는가?



,

컴퓨터를 쓰다보면 ACPI란 말을 자주 듣게 된다. 사실 윈도를 설치할때 몇번 듣게 됨과 동시에 전원이 자동으로 꺼지지 않으면 사용하란 말도 듣게된다. 이 ACPI란 무엇일까? 

ACPI란 일종의 컴퓨터 전력관리 표준규격에 일종이다. 우리가 시스템종료를 실행했을때 따로 스위치조작없이 전원이 나가는것도 이 ACPI때문이며 노트북에서 배터리모드로 자동 전환되는것도 바로 이 ACPI의 규격에 나와있는것이다. 헌데 이 ACPI가 표준그대로 잘 만들어지면 크게 문제는 없겠는데 PC제작사에서 대충 동작만 가능하게끔 만들어놓곤 하는것이 문제다. 이 동작여부도 오로지 당시의 대세윈도만 여부를 판단한다. 지금시점이라면 윈도7이 될것이다. 대기업PC라면 미리 탑재된 윈도만 동작확인을 하며 다른OS는 신경도 안쓰기 마련이다.

사실 윈도에서도 규격에 맞지않게 만들어졌다면 당연히 정상작동을 안해야 하는데 윈도란것이 워낙 괴랄한 하드웨어지원을 하는터라(레거시지원이 제일 잘되는OS가 바로 윈도)신기하게도 작동을 한다. 

문제는 여기서 발생되는데 다른OS를 설치해서 사용하는경우 이 ACPI설계가 개판이면 정상작동여부가 불투명해진다는 것이다. 대표적인것이 2.6.38때 벌어진 pci-e과열사태가 있다. 윈도야 워낙 잘 돌아갔지만 aspm을 강제 활성화하지 않은경우 리눅스에서는 배터리광탈 및 과열을 일으켜버리고 사망하시는 일이 일어났는데 일부 비표준ACPI지원과 관련이 있다고 한다. 그도 그럴것이 리눅스를 미리 탑재하고 출시되는 PC는 몇 안되니 리눅스의 점유율을 높이려면 기존 윈도와 동거(?)하던가 윈도를 밀어내고 자리를 차지하는 수밖에 없다. 그런데 그 윈도 기본탑재PC들이 저런 개판ACPI를 달고 다니는 경우가 꽤 있다보니 리눅스도 윈도마냥 괴랄한지원을 추가하는 수밖에 없다.

그런 비표준ACPI지원하려다 생겨난 버그도 생기고 하는터에 최근 리눅스는 전력관리 테이블조차 윈도의 것을 그대로 쓰는것으로 밝혀졌다. 아니, 사실 PC마다 멋대로이기는 해도 OS별 전력관리테이블이 존재해서 팬컨트롤이나 cpu스로틀링 같은것을 해당테이블에 맞춰 운영하게 되어있는데 보통은 리눅스용 테이블이 만들어져있어서 이것을 이용하지만 이것마저 개판인 경우도 많다보니 그냥 리눅스에서 리눅스용 테이블대신 윈도용 테이블을 가져다가 사용한다는 것이다. 제 아무리 많은 발전을 한 리눅스라고는 해도 윈도와 전원관리 철학이 다르지 않았던가(리눅스는 전원절약보다는 안정을 선호 윈도는 노트북에 한해 전력최소를 지향)하지만 워낙PC제조사들이 막장짓을 자주해서인지 커널부터 윈도용을 가져가 쓴다니...(물론 부트옵션으로 리눅스용 테이블을 쓰게끔 할 수도 있다)

어쨌건 불행인지 다행인지 옛날에 꽤 문제를 닐으키던 ACPI활성화 문제는 적당히 해결이 됐는지도 모르겠다. 하지만 지금도 가끔 최신 하드웨어에서 전력관리가 안 되어서 과열및 전력광탈 현상이 아직도 목격되고 있다. 시간이 지나면 자연스럽게 해결될 문재라고는 한다. 그런데 그게 언제냐고...

옛날이야기를 하자면 우분투 라이브 옵션 중에 acpi=off 옵션이 붙어있었다. 이것은 아에 acpi를 무시하겠다는 의미로 팬이 왕왕돌아가면서 사용자의 귀를 간지럽히게 된다. 그리고 자동 셧다운도 작동하지 못했다. 어떤의미인줄 알겠는가? 리눅스에서 acpi를 지금수준으로 지원하는것도 거의 기적이라고 생각이 들 정도다. 이러니 아직도 리눅스가 전력관리 못한다는 소릴듣지...

정말 리눅스는 언제쯤 메인 대세가 될 수 있을 것인가... 아니면 PC제조사들이 신경써서 표준그대로 설계하면 참 좋을텐데(실제 호환이 가장 뛰어난 하드웨어는 애플의 물건이다)

,

출처는 https://launchpad.net/~kendatsuba/+archive/ubuntu/starcraft/+packages 이곳이고 패치는

wine1.2_1.1.42-0ubuntu4_1.1.42-0ubuntu4starcraft1.diff.gz

인데 버전을 보면 1.1.42버전용임을 알 수 있습니다. Playonlinux를 이용하면 충분히 다른 버전 Wine을 이용해서 굴릴 수 있으므로 지금 시스템에 설치된 Wine은 별로 신경 쓰실 필요는 없습니다.

http://sourceforge.net/projects/wine/files/Source/wine-1.1.42.tar.bz2/download

여기서 1.1.42버전의 소스를 받은 다음 압축을 풀고 패치파일을 압축을 푼 폴더에 넣어줍니다.

그 다음 patch -p1 < wine1.2_1.1.42-0ubuntu4_1.1.42-0ubuntu4starcraft1.diff

라고 해주시면 와인에 패치가 됩니다. 그다음

make

그리고 Playonlinux를 설치 하셨다면 ~/.PlayOnLinux/wine/linux-x86 (32비트기준 64비트라면 linux-amd64입니다.)에다가 폴더 하나 만들어서 컴파일된 결과물을 넣어주시면 됩니다.

그런데 컴파일 하기 귀찮으시면 위의 출처 들어가셔서 deb파일을 다운로드 받은 다음 똑같이 압축 풀어주셔도 됩니다. 사실 이것이 훨씬 더 편합니다. 그리고 스타크래프트를 설치후에 돌려주시면 됩니다.윈도7에서 색상 깨지는 것과는 다르게 상당히 잘 됩니다. 특히 패치중에 스타크래프트용 속도패치가 들어가 있어서 딜레이도 상당히 줄어듭니다.

참고사항 : 스타크래프트2는 어떻게 돌리냐고 하시는 분들도 있을 것 같은데 Playonlinux에 이미 있습니다. 그것으로 설치하시면 잘 됩니다. 스타크래프트1은 Playonlinux에 들어가있는 녀석이 속도패치가 되어있지를 않아서 따로 설명을 하는 것입니다.

,

이 글은 2012년 10월 27일에 제 다음블로그에 있던 글을 가져온 것입니다. 지금하고 약간 안 맞을 수도 있습니다. (하지만 저는 아직도 이 방법대로 만들어서 사용하고 있습니다.)

컴퓨터를 10년이상 굴리다보니 친구나 친척을 통해서 낡은PC가 잘 굴러들어온다. 소음도 엄청 크고 가끔 터질지 모르는 시한폭탄같은 물건도 있지만 그것 중에는 버려두기 아까울 정도의 물건도 있다. 특히 내가 어딘가에서 3만원주고 구입한 인터넷PC가 그러한데 우리은행이라 적힌 것을 봐서 고객편의용으로 굴리다가 용산에 내놓은 것으로 보였다. 어쨌건 생각보다 깨끗한데다가 조용한 편이라(120mm 팬 하나로 냉각을 끝낸다.) 토렌트머신 및 NAS대용으로 굴리고 있다. NAS용으로는 그냥 Pydio/AjaXplorer 를 이용하면 NAS대용으로 충분히 굴릴 수 있다. 이건 쉬우니까 설명 안 한다. 

일단 이제는 쓰지않는 낡은 PC에 하드를 큰걸 넣고 깨끗한(?)리눅스를 설치한다. 제일 좋은 것은 역시 우분투서버버전이나 X없는 데비안, 그리고 센트OS정도? X를 쓴다면 내가 이 글을 올릴 이유가 없을 정도로 쉬울테니(마우스로 딸깍거리기만 하면 바로 웹컨트롤이 되는데 굳이 이렇게 글을 올리겠는가...)

설명 기준은 우분투(혹은 데비안)기준이다. 다른 OS를 쓴다면 설정파일이나 몇가지가 다를 것이다.

(트랜스미션 홈페이지에서 데비안만 따로 설명하고 있다. 설정파일이 다른곳에 있다고(...))

일단 

sudo apt-get install transmission-daemon

으로 트랜스미션의 데몬(서버버전?)을 설치한다. 그리고 설정파일을 수정하기 위해서 서버를 중지시켜야 한다. 중지 명령어는

sudo /etc/init.d/transmission-daemon stop

이러면 서버가 중지되었다고 뜬다. 서버를 중지시키는 이유는 아파치와는 다르게 일단 데몬이 죽지 않으면 설정파일을 원래대로 돌려놓기 때문이다.

이제 /var/lib/transmission-daemon/info/setting.json 파일을 편집한다.

sudo nano /var/lib/transmission-daemon/info/setting.json

(만약 나노를 쓴다면 이렇다는 것이고 vi를 원한다면 nano 대신 vi를 쓰면 될것이다. 참고로 vi는 초보자에겐 엄청 버겁다...)


쭈욱 내려가다가 rpc-whitelist란 항목이 보이는데 이부분을 true에서 false로 고친다. (외부에서 웹으로 접속하기 위함이다.)

포트도 바꾸려면 포트도 바꾼다. 기본포트는 9091이다.

rpc-username과 rpc-password도 원하는 것으로 고친다. 이 항목은 웹으로 접속할 때 필요한 로그온과정에서 물어볼 것이다. 잘 기억하자.

그리고uname umask의(감사합니다 욱이님 수정했습니다.) 숫자를 18에서 0으로 고치자. 이래야 777로 누구나 수정 가능한 권한이 주어지게 된다.

일단 여기까지만 해도 상관없다. 나머지는 웹으로 접속한다음 설정해도 충분히 설정이 가능하기 떄문에...

다시 서버를 실행한다. sudo /etc/init.d/transmission-daemon start

그리고 웹브라우저로 서버에 접속해보자.

http://(서버주소):(포트번호 기본은9091) 

이 러면 유저네임과 패스워드를 물어볼텐데 아까 설정한 이름과 패스워드를 입력해보자. 이제 웹으로 토렌트를 충분히 컨트롤할 수있게 되었다. 더 많은 설정을 하고 싶다면 아래쪽의 톱니버튼을 누르고 Preference를 누르면 더 설정이 가능하다. 예를 들면 다운로드 폴더라던가 속도라던가.

안드로이드에서는 TorrrentFu같은 어플리케이션으로 컨트롤이 가능하다. 아니면 Transmission-remote같은 것도 괜찮다. 아이폰도 있을텐데 이건 내가 아이폰이 없으니 알아서 앱스토어를 잘 뒤져보시라. 정 짜증나면 그냥 웹브라우저를 이용해도 충분히 컨트롤 가능하다. 다만 PC용 웹화면이라 확대축소가 불가피하다.

써보니 Transmission 의 큰 문제가 있었다. Transmission으로 받은 파일은 소유주가 Transmission이고 덕분에 CIFS등으로 접속하면 여길 수정할 수가 없다는 것이다. 그래서 Transmission 계정에 몇 가지 권한을 지니게 해줘야만 했다.

만약 Transmission의 계정명이 debian-transmission이라면

sudo usermod -a -G debian-transmission

sudo chgrp debian-transmission 다운로드폴더

sudo chmod 777 다운로드폴더

같은 작업이 필요하다.

,

이 글은 2014년 1월 5일 원래 제 다음 블로그에서 가져온 글입니다.

Long Live The Queen 프린세스메이커의 패러디 게임이라고 하는데 죽을일이 없는(가끔 가출은 하더만...) 프린세스 메이커와는 다르게 잘못된 선택은 곧 죽음인 살얼음판의 프린세스메이커라고 한다고해서 가격도 싸길래 냉큼 질러보았다.(사실 리눅스 지원인것도 한 몫했다. 리눅스 지원 게임이 그리 많지는 않으니..최근 개인프로젝트로 돌릴까 하는 클라우드게이밍도 스팀이 리눅스를 지원하면 그냥 클라우드 데스크탑에 스팀만 띄워주면 되니까 쉬워진다.)

일단 냉큼 지르고 영어의 압박을 간단히 떨친후(사실 영어로 되어있어서 반대로 게임하기 수월했다.) 뭐가뭔지 몰라(...) 공략을 찾던 중 이 게임이 Ren'Py라는 엔진으로 만들어졌다는 것을 알았다.

 Ren'Py... 이름에 왠지 Py가 들어가는데다가 MacOSX, Linux, Windows를 전부 지원한다? 혹시 이거 Python?하고 스팀설치 폴더에 들어가서 뜯어본결과 Python맞더만...그것도 PyGame이라는 엔진을 비주얼노벨용으로 만든게 Ren'Py고 PyGame이 안드로이드도 지원하기 때문에 Ren'Py도 안드로이드 지원이 가능하다고 되어있었다.

그러나. 이 게임은 스팀에서 판매하기에 안드로이드 지원이 될 턱이 없었고 스크립트 언어인 Python이라면 별 저항없이 안드로이드에 이식이 되지 않을까 하던중 RenPy SDK에서 안드로이드 지원이 가능하다는 것을 찾아내었다.

흐음...이걸 일단 안드로이드에 이식해 보기로 하고 결국 휴일에 삽을 들고 말았다...에라이.

 자 안드로이드 포팅(?)을 위한 준비물을 우선 말해보도록 하겠다. 여기서는 우분투같은 리눅스 환경에서 작업하는 것으로 되어있습니다. Mac이나 Windows는 스팀게임의 경로나 안드로이드폰 연결방법등이 다릅니다.

 http://baekansi.hosting.paran.com/doc/html/android.html

여기에 일단 안드로이드용으로 컴파일 하기위해 어떻게 해야할지 자세히 나와있다.

우선 필요한 것은

1. Ren'Py SDK http://www.renpy.org/latest.html

2. Oracle JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html

3. Python 2.7 이건 뭐...알아서 검색하던가 sudo apt-get install python2.7

4. RAPT(렌파이 안드로이드 패키징 툴)http://www.renpy.org/dl/android/

5. 손을 댈 Ren'Py로 만들어진 게임(여기선 Long Live The Queen 되시겠다. 이건 Steam관련 스크립트가 있긴 하지만...스팀없이도 실행되는 것을 확인)

6. rpatool https://github.com/Shizmob/rpatool  rpa나 rpi등으로 이미지나 음악들이 압축 되어있는 경우 어쩔 수 없이 이 파일들을 풀어 해쳐놓아야 안드로이드에서 실행이 된다. 아니면 다른 방법이 있을 수도 있는데 방법을 잘 모르겠다.(...)

7. 삽질을 위한 안드로이드 기반 기기(에뮬레이터는 비추)

8. adb 안드로이드개발 홈페이지에서 다운로드 받던지 아니면 sudo apt-get install android-tools-adb

*. 당신의 삽질력


일단 되었으면 JDK와 Python을 설치하자.

그리고 Ren'Py SDK를 적당한곳에 압축을 풀고 RAPT를 Ren'Py SDK의 압축 푼곳에다가 같이 압축을 풀어넣자.

압축 풀기가 완료되었다면 renpy.sh를 실행해서 Ren'Py런처가 실행이 잘 되는지 우선 보도록 하자. 되었다면 예시로 같이 들어있는 것도 실행해 보고 이것저것 하다가 일단 종료.

 이 제 스팀에서 Ren'Py게임을 구입하자. 아니면 조금 뒤적거리면 무료로 좋은 게임을 배포하기도 하니 잘 찾아보자. 걔중엔 지하철에서 하기에는 조금 엄한물건도 있기는 하지만....여기서는 아까 말했던 Long Live The Queen(이하 LLQ)을 이용하도록 하자. 그리고 꼭 한번 실행시켜주자. 가끔 스팀이 제대로 다운로드 안 하고 다 됐다고 사기치는 경우가 있어서 그런것이니  한번은 꼭 실행시켜보도록 하자.

실행이 확인 되었으면 ~/.local/share/Steam/SteamApps/common 로가면 당신이 그동안 스팀에다가 쏟아부은 결과물들이 들어가 앉아 있다. 여기서 Long Live The Queen이란 이름의 폴더째로 일단 복사하자.

 복사한 폴더는 위의 Ren'Py SDK와 RAPT의 압축을 풀어넣은 곳에다가 붙여넣기 하면 된다. 다시 한번 renpy.sh를 실행해보자. LongLifeTheQueen이 보이는가? 오른쪽에 Android라고 보이는가? 여기에 보면 Emulation으로 실행을 해볼 수 있다!!!! 그.러.나. 여기서 실행하면 당연하다는 듯이 에러난다. 이 에러를 잡는 것이 바로 이 삽질의 핵심이다.

삽질의 처음은 로그를 뜯어보는 것이다. 로그를 한번보자. glpatch.rpy가 에러가 났다고 나온다. 하지만 게임폴더를 아무리 뒤져도 rpy파일은 보이지 않는다. 사실 파이썬을 써보면 알겠지만 속도를 위해 한번 바이트코드로 컴파일하게 되는데 렌파이도 비슷한 원리로 스크립트를 컴파일 해 놓은 것이다. 즉 로그에서 rpy라고 나오는 파일이 사실 rpyc를 말하는 것으로 생각해도 좋다.
 

 암튼 glpatch라는 놈이 문제라고 되어있는데 이미 컴파일되어있는 스크립트를 어떻게 해볼 수는 없고 한번 제거해보도록 하자.즉 삭제! 그리고 빈파일을 하나 만들어서 glpatch.rpy라고 하나 만들어 놓자. 빈 파일이기 때문에 아무런 내용은 없지만 그렇다고 파일이 없으면 그건 그것대로 또 에러가 난다. 말그대로 patch라고 되어있는 걸로 봐서 OpenGL관련 문제를 해결한 패치로 보인다. 그러나 안드로이드에서는 저게 도리어 문제를 일으키니 패치를 없애도록 하자. 그리고 한번 게임을 실행해보면 glpatch.rpyc가 생성되어있는 것을 알 수 있다. rpy가 빈파일이므로 rpyc도 빈내용으로 만들어진 바이트코드가 된다. 이걸로 한 가지 알 수 있는 것은 저 패치는 PC에서만 통하는 것으로 보인다는 것. 아마 Nvidia나 ATI드라이버 호환내용이 아니었을까?

아까처럼 PC에서 renpy.sh를 실행하고 Android - Emulation - Phone 혹은 Tablet 를 실행해보자. 이번에는 타이틀 화면이 뜬다? 참고로 Translation.rpy를 작성한뒤 game폴더에 넣어주고 Translation.rpy에 폰트를 지정한다음 해당 폰트를 Game폴더에 같이 넣어주면 폰트도 맘대로 바꿀 수 있게 된다. 다만 은폰트나 나눔 폰트를 이용하는 것을 권한다. 맑은 고딕도 예쁘지만 이건 MS가 저작권을 지니고 있어서...Translation.rpy작성법은 http://www.renpy.org/wiki/Ren%27Py_%EC%97%90%EC%84%9C_%ED%95%9C%EA%B8%80_%EC%84%A4%EC%A0%95%EC%97%90_%EB%94%B0%EB%A5%B8_%EC%95%88%EB%82%B4

여기를 참조하시길

이제 안드로이드용으로 컴파일을 해보자. 해보기에 앞서서 터미널 사용법을 알고 있으리라 믿는다.

 renpy가 설치된 곳으로 가서 (RAPT의 압축을 푼 곳으로 가서)

./android.py installsdk

라고 치면 이 녀석이 안드로이드 SDK를 다운로드 받으면서 이것저것 물어보게 된다. 그냥 yes 혹은 no라고 대답만 하면 알아서 잘 해주니 그냥 시키는대로 하자.

그다음

./android.py configure LongLiveTheQueen

이라 치면 configure 뒤에 붙은 게임의 안드로이드 설정을 하게 된다. 역시 묻는말에 꼬박꼬박 대답하면 된다. 개인적으로는 2.2기반보다 4.0기반으로 만드는 것을 추천한다. 3.0은 그냥 버리는 거다.

이제 설정이 끝났다면 드디어 APK빌드를 해보게 된다. 이에 앞서 안드로이드 폰을 PC에 연결하고 ADB설정을 하고 디버그모드를 허용까지 해주어야 편하다. ADB설정은 이 블로그 어딘가에 잘 써있으니 참고.

일단 안드로이드기기를 PC에 연결하고

./android.py build LongLiveTheQueen release install

이렇게 하면 안드로이드용으로 빌드도 하고 안드로이드기기에 알아서 설치까지 다 해준다.


이제 실행해보기전에

./android.py logcat

을 실행하고 기기에서 게임을 실행해보자. (Ren'Py기본 아이콘에 기본로딩화면이 뜬다. 이는 RAPT루트/res/drawable을 교체함으로써 바꿀 수 있다. 이건 그냥 참고사항


아마도 혹은 역시나 에러를 내뿜어 주실것이다.

 steam.rpy

결국 스팀이 일을 내주셨다. 아까처럼 steam.rpyc를 삭제하고 빈파일로 steam.rpy파일을 하나 만든 후에 게임을 한번 실행하고 다시 APK를 만들어주자.


그리고 bytecode.rpyb파일은 그때그때마다 삭제해놓길 바란다. 게임실행속도를 올리기위한 방법중 하나지만 APK의 용량증가의 원인중 하나이므로...


이제는 안드로이드기기에서 타이틀화면을 봐야 정상인데....

 안된다. 그럼 아까처럼 logcat을 한번 보자.

  왠 아이콘 이미지를 못 찾는다고 뜬다.(icon-big.png)ignore 버튼을 누르니 이번엔 배경이미지를 못찾는다고 하고 배경음악도 못찾는다고 하고..

이 파일들 아까 Game폴더에 없었는데?


 사실 이것의 경우는 안드로이드용 렌파이의 문제일것으로 보인다. 게임 개발자나 회사에서 감추고픈(?) 이미지나 음악들이 떠돌아다니는 것을 싫어하기에 Ren'Py에서는 rpa라는 파일로 압축+암호화를 하는데 이게 안드로이드 내에서 정상적으로 복호화가 진행이 되지 않은 것이다. 잘 뒤져보면 llq.rpa란 파일이 보인다. 아마 못찾는다고 뜬 파일들은 이 안에 다 있을 것이다. 그럼 이걸 풀어서 game폴더에 흩뜨려 놓으면 정상적으로 실행이 될 것이다.

그럼 무엇으로 복호화를 할까? 아주 간단하게도 rpatool을 이용하면 된다. 이 것도 하나의 파이썬 스크립트로 되어있는데 그냥 game폴더에 넣어주자. 그리고 cd명령으로 game폴더까지 들어간다음

./rpatool.py -x llq.rpa

이러면 암호화되었던 것들이 압축이 싹풀리면서 보이게 된다. 그럼 이제 rpatool하고 llq.rpa파일은 필요없어졌으니 삭제하자. 겸사겸사 bytecode.rpyb파일도 삭제해주고.

이제 다시 빌드하고 폰에 넣으면?

 타이틀화면 입성! 게임까지 입성이다!!!

오오..


힘든 사투였다.오오..근데 이 게임을 지하철에서 하는 건 좀 무리 아니려나...

2014. 7 .26 우선 안드로이드 포팅을 하는 방법을 올린 유튜브 영상이다. 본인이 찍었으며 이 방법을 통해서 만들어진 결과물을 마음대로 배포하지를 않기를 바란다. 만들어진 결과물은 개인적으로만 사용하고 꼭 스팀에서 구입한 것을 이용하자. 공식홈페이지에서 구입한 것은...잘 모르겠다.


,