의외로 Odroid라고 적힌게 있는데 하드커널에서 수정한 펌웨어라고 합니다. 아마도 Odroid에서 쓰기위해서 따로 만든 펌웨어 같은데 (여긴 별명이 취미로 소형 컴퓨터를 만드는 한국업체입니다.) 이걸로도 해보고 막 바꿔가며 해본 결과...
여기 있는 것중 구버전 v00.04.00.05 (선택된것이 아닌 Bus Power+ ODD가 적힌 펌웨어)로 바꾸니 이게 왠걸...?
갑자기 SSD가 인식이 됩니다.
어이가 없더군요. 이게 JMicron에서 제공한 표준 펌웨어 였고 여타 다른 업체에서 펌웨어 수정을 통해 별의별 작업을 해놓았나 보더군요. 그게 도리어 호환문제를 일으켰고 펌웨어를 계속 바꾸다보니 인식이 됐습니다. 이게 문제가 좀 있다고 하는데.... 그래도 일단 동작은 해야 뭘 쓰던가 말던가 하죠...
암튼 덕분에 고생좀 했습니다.
그런데 뭔가 좀 궁금해졌습니다. 다른 펌웨어는 어떨까?
그래서 작동이 되지 않던 1XX나 하드커널 펌웨어가 아닌 다른 펌웨어를 한번 해봤습니다.
JMS578_Beihuan_v68.01.00.02.bin
RD Version 체크하고 Inculde JMS577 NVRAM까지 하고 돌려봤습니다.
....? 이건 인식이 또 되네요?
이게 아마 UASP지원 펌웨어라고 알고 있는데 갑자기 뭔가 잘 되니까 또 이상한 기분....
뒤에 2를 지우셔야 합니다. 빌드 될때 제일 오류가 많이 난 이유인데 빌드 폴더에 들어가보니 freetype2가 아니라 freetype 이더군요. 그래서 이 부분을 고쳤습니다.
그리고 197번째 줄 저는 주석 처리한 뒤에 아래에 새로 적었는데 add_definitions(-DDISABLE_DISCORD_RPC -DDISABLE_OPENGL -DGL_GLEXT_PROTOTYPES -D__STDC_LIMIT_MACROS -DNO_TTF -DSDL_MAIN_HANDLED)
ssl뒤에 freetype을 적어 줍니다. 이것때문에 또 왕창 오류가 났는데 알고보니 openrct2 메인라이브러리에도 freetype함수를 불러오게끔 되어 있더군요.
그리고 빌드 시 오류중 하나를 잡기 위해서 sudo apt install nlohmann-json
위 명령어로 nlohmann-json 패키지를 설치후에 /usr/include/niohmann 폴더를 src/thirdparty/niohmann으로 복사합니다. 이러니까 안드로이드 스튜디오에서 알아서 잘 인식하더군요.
그리고 안드로이드에 설치하는 법대로 알아서 OpenRCT2를 설치하고 실행하면.. 폰트가 깨져 있을 겁니다. 이번에는 PC에서 했던 대로 config.ini를 수정해야 합니다. 스마트폰에서 openrct2-user 폴더에 들어가면 config.ini파일이 있습니다. 이걸 열고 [font]부분을 찾으면 죄다 비어있을 텐데 나눔고딕 파일을 openrct2/rct2.ttf 파일명으로 넣어놓고 다음과 같이 수정합니다.
현재 가장 구하기 쉬운 버전은 스팀판입니다. 다만 10명중 10명에게 물어보면 거의 다 스팀판 싫어합니다... 일본어 음성이라 별로인 것도 있고 옛날 추억삼아 하는 게임이라 그때 그 느낌이 아니라서 별로라는 군요.
대부분은 만트라판을 추천합니다만 이쪽은 또 호환성 문제가 많습니다. 16비트 코드를 요구하는 부분이 있어서 최신 OS에선 당연하다는 듯 제대로 안 돌아갑니다. 그래서 XP이후에 출시된 후지쯔판에 만트라판 데이터를 섞은 버전을 추천하는 편입니다. Winlator도 16비트 코드가 당연히 안 돌아가므로 32비트 코드로만 구성된 후지쯔판이 가장 잘 돌아갑니다. (만트라판이 안 돌아가는건 아닌데 뭔가 버벅거립니다.)
저작권이 아직 멀쩡히 살아있는 게임입니다. 왠만하면 스팀판이라도 구매는 하고 해당 파일을 이용하도록 합시다. (저는 사실 이미 두가지 판본의 CD를 갖고 있습니다만 설치 후 융합하는게 귀찮은 관계로...)
위의 고전게임 배포 블로그에선 레지스트리와 버그픽스, 호환성 패치가 되어져 있으므로 일반 PC에선 아주 잘 굴러갈겁니다. 심지어 Wine에서도 잘 굴러갑니다.
다만 Winlator에서 굴리려면 추가 삽질이 동반됩니다. 우선 컨테이너는
Name은 알아서 잘 정하시고 Graphic Driver는 VirGL을 쓰겠습니다. 뭔가 이쪽이 오류가 덜 합니다.
Game Controller는 솔직히 다 필요없으므로 꺼주시는 걸 추천합니다. 컨테이너 설정은 이 정도면 됩니다.
그리고 게임도 미리 어느정도 PC에서 손을 본 다음 스마트폰에 설치합시다. 알아서 잘 해당 블로그에서 잘 다운로드 받아보면 _inmm을 통해 CD-DA패치가 되어 있으며 dgvoodoo를 통해 DDraw 호환패치가 되어져 있습니다. 이중 dgvoodoo를 무력화 할 것입니다. 이유는 VirGL에서 문제가 있거든요.
여기 보시면 ddraw.dll 파일이 있습니다. 이걸 파일명을 바꿔줍니다. 전 뒤에 .bak을 붙였습니다. 만약 DXVK를 꼭 쓰겠다고 하신다면 원래대로 다시 돌려주시면 됩니다.
그리고 위 파일을 다운받아 덮어 씌웁니다. 해당 파일은 오프닝 영상을 없애고 호환성 로더를 실행 시키기 위한 DLL파일과 실행파일에 직접 해킹을 통해 메시지박스를 제거한 버전입니다. 메시지 박스가 제거된 관계로 게임이 안 꺼지는 문제가 있는데 어차피 최신 OS에서는 제대로 종료가 안 되고 프로세스가 남아 강제종료 해야 합니다.
이렇게 하시면 게임은 준비됩니다. 이걸 스마트폰에 넣습니다.
스마트폰과 USB연결 후에 Download 폴더에 통째로 복사하면 되겠지요. 아니면 다른 방법을 통해 복사하시면 됩니다.
이제 Containers 에서 해당 컨테이너를 실행합니다.
이제 여기서 아까 넣은 폴더를 선택후에 C:로 복사합니다. D:에서 바로 실행도 가능하긴 한데 뭔가 오류가 있을 가능성이 있고 Android시스템과 꼬일 수 있습니다. 복사를 합시다.
이렇게 C:안에 복사를 해두면 실수로 다운로드폴더에서 지워버려도 남아 있게 됩니다. 이제 바로 실행!은 아니고 레지스트리를 입력해야 합니다.
시작 - system tools - Registry Edtiror를 클릭합니다.
레지스트리-레지스트리 가져오기 이후에 C:에 우리가 복사한 곳으로 가면 Doogie라는 폴더가 있습니다. 위 블로그 제작자분이 만들어둔 레지스트리 입력파일입니다. 이걸 입력해야 게임이 실행됩니다.
레지스트리 파일이 모여 있는 곳 여기 있는 모든걸 다 입력해야 한다.
여기 보시면 파일이 4개가 있는데 파일을 하나하나 열기해서 입력해야 합니다.
성공적으로 추가되었다고 메시지가 뜨는데 이걸 한번씩 다 하세요. SetPathX.reg를 제외하고 총 3번 하시면 됩니다. (SetpathX.reg는 윈도8이후 전용입니다. Wine에선 SetPath.reg만 해도 문제없습니다)
그리고 OS를 윈도우XP로 바꿉시다. 후지쯔판은 XP를 위해 만들어진 버전입니다. 따라서 XP로 해야 잘 실행되겠지요.
시작- System Tools - Wine Configuration 여기서
windows 버전을 WindowsXP로 바꿉니다. 그리고
데스크탑 종료를 해줍니다. 이제 컨테이너가 꺼질텐데 다시 실행하려고 하면 실행이 안 될겁니다. 아마 셧다운 되는데 시간이 걸려서 그럴겁니다. 조금 기다리거나 휴대폰을 그냥 껐다 켜는게 더 빠를 수도 있습니다.
이제 다시 Containers에서 다시 환경을 실행해 봅시다.
그리고 _PM3Win.exe가 있을 겁니다. 오리지널 프린세스메이커3가 아닌 검정색 아이콘입니다. 이 프로그램은 호환성을 위한 메모리 패치 및 강제종료시 프로세스가 남는 것을 감시하는 역할을 합니다. 즉, 최신OS에서의 호환 문제를 해결합니다.
이걸 실행해 봅시다. 몇번실행하다보면 어느 순간 실행이 됩니다.
그리고 위 스크린샷에 있는 위치즈음을 클릭 해보면 환경설정이 가능해집니다.
CDDA연주는 무슨이유인지 계속 오류가 나면서 귀찮아 지는 문제가 있습니다. 그렇기에 BGM을 꺼버리는게 동작하는데 가장 좋습니다. 다만 아래의 Winamp방식으로 바꿔서 재생하니 제대로 된 음악을 들을 수 있었습니다. 제일 아래 설정 참조. 다만 Winamp가 따로 돌아가다보니 휴대폰에 불이나려 합니다. 그냥 끄는게 정답일수도 있습니다.
그리고 화면 특수효과도 꺼주셔야 게임할때 안정적으로 돌아갑니다. 저게 켜지면 은근히 버벅거리더군요.
Winamp설정안하고 기본 (DirectShow방식)을 쓰면 아래처럼오류납니다. WMP가 문제인걸로 보입니다.
CD-DA가 되어야 배경음악이 나올텐데 이게 말을 안 듣습니다. 이것도 일종의 호환패치인데 아쉽더군요. 리눅스 PC에서는 따로 가상드라이브를 만들어서 해당 ISO파일을 넣는 방식으로 음악을 들었는데 Winlator에선 안 되니 아쉽네요. _inmm이 이용도로 나온건데 아쉽네요.(WMP를 설치하면 된다는 이야기도 있는데 안 해봤습니다.)
그래서 위에 호환패치에 이러한 설정으로 된 레지스트리를 포함했습니다.(BGM을 기본적으로 끕니다)
이제 이후에는 게임을 켤때마다 이런식으로 켜면 힘들겠죠? 바로 실행 가능한 아이콘을 만들어 봅시다.
_PM3WIN.exe 파일을 여기서 복사합니다. 그리고 Desktop 에다가 바로가기를 만듭니다. 메뉴에 보면 있는 Edit-Paste Shortcut을 누르면 됩니다.
이러면
햄버거 매뉴 - Shorcuts에 이렇게 아이콘이 뜨게 됩니다. 이걸 누르면 바로 실행이 됩니다. 이제 작은 마우스는 쓸 일이 없을 테니 터치스크린으로 교체를 하고 이를 위해 가상 버튼을 하나 만듭시다.
햄버거 버튼을 누르고 Input Controllers를 누릅니다.
그리고 여기서 추가로 더하기 버튼을 눌러서 가상버튼 프로필을 만듭시다.
우리는 여기서 PM3라고 했습니다. 그냥 이건 마음대로 하시면 됩니다.
Controls Editor를 눌러서 이제 버튼을 배치합시다. 이제 여기서 가로모드로 하는걸 추천합니다. 아마 저는 오른쪽 위나 아래에 뒤로 가기 버튼 역할을 할 수 있는 ESC버튼을 만들려고 합니다.
해당 화면에서 버튼을 만들고자 하는 부분을 먼저 클릭 한 뒤에 버튼을 누르면 None 이라는 이름의 동그라미 하나가 생깁니다. 이게 버튼 역할을 할겁니다. 이걸 이리저리 끌고 다니면서 위치 조정을 할 수 있습니다. 그다음 톱니 버튼을 누르면 여기에 어떤 기능을 부여 할 수 있습니다.
여기서 Binding에 ESC를 하나 만듭시다. 프린세스 메이커는 이거 하나만 있어도 됩니다. 나머지는 마우스 클릭이거든요. 빨리 넘기기 위한 CTRL 키를 만드셔도 되는데 저는 귀찮아서 넘기겠습니다.
그리고 Shorcuts로 실행 했을때 버튼과 해상도를 설정합시다. Shortcuts를 눌러서 다시 세팅을 추가로 합시다.
오른쪽의 점점점을 누른다음 Settings를 눌러서 손을 봅시다.
Screen Size를 960x544로 바꿉니다. 이유는 사실 640x480의 게임에 창테두리를 포함하는 크기입니다.
그리고 Win Components가 있는 부분을 오른쪽으로 땡기다 보면 Advanced가 있습니다.
여기서 Input Controls에 Profile을 아까 우리가 만든 PM3 프로파일로 바꾸고 아래 Simulate touch screen에 체크를 합니다.
이제 게임을 다시 실행해 봅시다.
이제 스마트폰에서 게임이 가능해졌습니다. 심지어 터치스크린이라 옛날과 또 다른 맛이 있습니다.
P.S 제가 올린 실행파일에서 메시지 박스를 제거 했는데 이게 일반 PC에선 문제가 전혀 없습니다. 그런데 winlator에선 메시지가 게임창 뒤로 넘어가서 게임이 안 넘어가는 문제가 있습니다. 그래서 그냥 메시지박스가 나오지 않도록 바이너리 패치가 일부 적용되었습니다. 이로인해 불안정해질 가능성이 없지않아 있습니다.
===============================25.3.10============== 배경음악이 안나오는건 _inmmserv.exe와 DirectShow가 문제가 생긴 탓으로 보입니다. 그래서 역사와 전통의 Winamp로 구동되게끔 조금 손을 대봤습니다.
이 MOD를 이용하고 있습니다. 왜냐하면 최신 Wine환경에서 glibc버전의 영향이 크거든요. 최신버전의 Wine을 위해선 아무래도 glibc가 같이 버전이 어느정도 되어야 합니다. 특히 Proton같은 변형 Wine을 쓴다면 더더욱 glibc가 필요합니다. 그리고 무엇보다 해당 버전은 MIDI가 지원됩니다. 고전게임에선 MIDI가 주로 이용되었으니까요.
한번 저는 여기에서 고전게임을 한번 실행해 보도록 하겠습니다. 다만 가능하면 인스톨이 대신 기존 설치된 게임을 복사해서 쓰는걸 추천합니다. 레지스트리 입력을 자동으로 해주는 게임도 있습니다. (디스크스테이션 게임이 대표적)
전 여기서 winlator-ajay 7.1.2을 쓰고 있습니다. 내장된 Wine은 9.0을 기반으로 한 커스텀 버전입니다. 그럭저럭 최신버전입니다.
처음 설치하면
출처 : https://winlator.com/winlator-glibc/
이렇게 뜨면서 시스템파일을 설치합니다. X11과 Box64, 그리고 내장된 Wine 을 설치하는 중입니다.
그리고 나면 Containers라는 화면이 뜹니다. 그리고 왼쪽 위에는 햄버거 버튼이 있어서 이것 저것 확인이 가능합니다.
Docker를 써보셨으면 Container 개념이 바로 잡히실겁니다. 각 Container는 일종의 Wine Prefix 역할을 합니다. Playonlinux나 Lutris를 통해 각 프로그램별로 환경을 갖추는 바로 그걸 의미 합니다.
저는 이미 이것저것 설치해둔 터라 뭔가가 많이 있습니다만 처음 시작하면 아무것도 없을 겁니다. 오른쪽 위에 +를 눌러봅시다.
Name은 Container 이름이며 사이즈는 우선 720p로 그대로 두는걸 추천합니다. 해상도가 높으면 구동시 버벅임이 심해지고 너무 작으면 창이 밖으로 넘어가는 불상사가 일어납니다.
Wine Version이야 당연히 Windows 호환 레이어의 버전입니다. 특정 프로그램의 경우 구버전에서 잘 돌아가는 프로그램도 있지만 우선 내장된 버전이 이것이니 이걸 그대로 이용합시다.
그리고 Graphic Driver 이게 중요한데 스냅드래곤 칩셋의 경우 Turnip이 꽤 좋은 퍼포먼스를 보여줍니다. 특히 DXVK를 쓸 수 있어서 Vulkan을 쓰므로 상당히 좋은 모습을 보입니다. 다만 호환성은 반대로 떨어집니다. 이건 PC리눅스에서도 마찬가지였습니다.
VirGL은 호환성이 상당히 좋은 드라이버입니다. Qemu등에서 쓰이는 드라이버로 PC에선 상당히 좋은 모습을 보여주지만 Vulkan이 작동되지 않습니다. WineD3D를 통해 OpenGL로 구동해야 합니다. 웃긴건 삼성 최신 칩셋에서는 Vulkan성능이 상당히 좋은 GPU가 들어갔음에도 VirGL을 통해 OpenGL을 써야하는 뭔가 안타까운 상황입니다. 개발이 지속되면 삼성칩셋에서 Vulkan이 구동될 수도 있을겁니다만 아직은 아닙니다.
만약 굉장히 오래된 고전게임을 구동한다면 개인적으로 VirGL을 쓰는걸 추천합니다. DXVK가 구형 API를 지원 못하는 관계로 쓰나마나인 경우가 잦습니다. dgVoodoo같은 레이어를 쓰기도 하는데 스마트폰에선 퍼포먼스가 PC에 비해 떨어지는 관계로 CPU 발열이 엄청나더군요. 차라리 WineD3D를 써서 CPU부담을 줄이는걸 추천합니다. 어차피 고전게임들은 그렇게 많은 성능을 요구하지 않습니다.
MIDI SoundFont는 MIDI를 구동할때 필요합니다. MIDI를 사용한 게임(뿌요뿌요2, 환세취호전 등)을 쓰신다면 이걸 켜주시면 음악을 들을 수 있습니다. 심지어 윈도우 기본 폰트보다 상당히 좋은 품질이 나옵니다.
그 외에 Drives를 추가해서 스마트폰의 외부에 접근이 가능하게 할 수 있습니다. 참고로 기본 설정은 D드라이브가 스마트폰의 다운로드 폴더입니다. 보통은 기본으로 두는 편입니다.
그리고 오른쪽 아래의 체크를 누르면 컨테이너가 생성됩니다.
이제 여기서 재생버튼(?)을 누르면
윈도우와 흡사한 화면이 나오면서 파일탐색기가 같이 뜹니다. 그리고 터치패드를 이리저리 문지르다보면 마우스포인터가 노트북 터치패드 처럼 움직인다는 것을 알 수 있습니다.
네, 터치스크린 방식이 아닌 노트북 터치패드처럼 쓴다고 생각해야 합니다. (물론 터치스크린처럼 쓸 수도 있습니다만 작은 파일을 선택하거나 하기엔 답답하기에 이게 더 편할 수 있습니다.)
사실 이 화면은 Wine Desktop화면입니다.
제가 사용하는 ajay모드 버전을 쓰신다면 fix wfm launch를 한번 해주시는걸 추천합니다. 가끔 Wine Desktop에서 밖으로 빠져나가서 따로 실행되는 프로그램들이 있습니다. 일반 리눅스 데스크탑이라면 알아서 따로 열린창으로 작업이 가능하지만 우린 Wine Desktop만으로 작업을 해야하니 난감한 상태가 됩니다. 이 설정은 해당 문제를 방지해줄 수 있습니다.
그리고 D:를 통해서 아까 설정한 스마트폰 내의 다운로드 폴더에 접근이 가능합니다. 만약 아무것도 안 뜬다면 컨테이너를 닫은다음 Drives 설정으로 들어가서 접근 허용해주시면 됩니다.
즉, 이제 필요하다면 다운로드 받은 프로그램을 D드라이브에서 복사해서 가져오거나 직접 실행하는 방식으로 해당 컨테이너에서 굴릴 수 있게 된다는 의미입니다.
다만, Wine에서도 그렇게 삽질이 동반되었는데(그동안 제가 해왔던 삽질을 생각해보자면...)여긴 아키텍처가 다르니 일부 그냥 돌아가는 프로그램들을 제외하면 더했으면 더했지 덜 하지는 않을겁니다.
뒤로 버튼을 한번 누르면 세로모드로 바꾸거나 키보드를 소환하거나 닫아 버릴 수도 있습니다. Input Control을 통해 가상 버튼을 만들어서 게임에서 써먹을 수도 있습니다. 만약 멈춰버려서 말을 안 듣거나 하면 Task Manager를 통해 특정 프로그램을 닫을 수도 있습니다. Exit는 당연히 해당 컨테이너를 닫아버리는 기능이겠지요.
참고로 컨테이너를 닫은 다음 시간이 어느정도 지나야 완벽히 닫깁니다. Box64 서비스가 내려가는 시간이 꽤 걸리는 듯 합니다. 이것도 리눅스가 셧다운 될때 꽤 시간이 걸린다는걸 생각해보시면 될 듯 합니다.
아마 다음에는 고전게임중 하나인
이걸 해볼까 합니다. 가상버튼들이 뭔가 이상한데 이건 다른 게임용으로 만든 버튼이 튀어나온 탓입니다.(...)
이건 꽤 삽질이 많이 동반 되었기에 이정도의 삽질은 해야 게임이 된다는걸 보여줄 수 있을것 같거든요.
Lutris에서 Wine부분을 마우스로 올리면 아이콘이 두개가 뜹니다. 여기서 왼쪽 아이콘을 누르면 Wine버전을 고를 수 있게 됩니다.
저는 여기서 무슨 이유인지 wine-ge 8.26버전만이 설치 가능했습니다. 해당 버전을 설치합니다.
Install 버튼을 누른뒤에 Uninstall 모양으로 바뀌면 설치가 완료 된겁니다. 아니면 터미널 창을 유심히 보시면 됩니다.
그리고 Wine 설정을 합니다.
이제 오른쪽 아이콘을 클릭하면 Runner로서 Wine 설정이 가능해집니다.
여기서 Wine Version을 아까 설치한 것으로 바꾸고 Enable DXVK를 활성화 해주시면 됩니다. FSR이나 Anti-Cheat는 그냥 꺼도 됩니다. 사실 게임용 옵션인데 저희는 게임을 설치할게 아니니까요. 오른쪽 위에 SAVE 까지 눌러줍니다.
이제 설치를 합니다.
왼쪽 위에 더하기 버튼을 누르면 Prefix를 만들고 설치 할 수 있게 됩니다.
여기서 Install a Windows game from an executable을 선택합니다.
Setup.exe를 통해 설치하는 방식입니다.
Game name은 알아보기 편한 것으로 해주시고 Install 버튼을 누르면 (Locale은 바꾸지 말아주세요.)
여기서 Install 버튼을 누를 수 있게 됩니다.
Prefix를 만들 곳을 지정해달라고 합니다.
저는 기본위치를 사용할겁니다만 원하시는 위치를 지정하시면 됩니다. 참고로 shorcut은 모두 체크 해제해주시면 됩니다.
이제 Setup.exe를 선택이 가능해지는데 MODS의 setup.exe를 지정합니다.
Install 버튼을 누르면 이제 설치창이 뜨면서 설치가 시작됩니다.
다만, 중간중간 Visual C++ runtime이나 DirectX등이 설치될텐데 모두 설치를 해주셔야 합니다. 보통은 wineconfig을 통해 native 설정이 필요하지만 wine-ge와 lutris가 알아서 native 설정까지 끝내줍니다.
마지막에 one desk설치시 edge Runtime설치중에 오류가 납니다. 이건 무시하고 넘어갑니다. (one desk는 사용 하지 않으면 됩니다.)
모두 설치가 끝나면 One Desk 아이콘만 덜렁 있는데 나머지 프로그램들의 아이콘을 만들어 줍니다.
이제 GEN, SDS, ADS, Design+ 등 사용하시는 프로그램의 실행아이콘을 만듭니다. Lutris를 쓰실 정도면 알아서 잘 만드실 거라고 생각됩니다.
기본적으로 나와 있는 OneDesk의 아이콘에 오른쪽 버튼을 누르고 Duplication 을 합니다. 아마 이름을 바꾸라고 할텐데 원하는 이름으로 바꿉니다. 그리고 복사된 아이콘에 오른쪽 버튼을 누르고 Configure를 누릅니다.
그리고 여기서 Game Options의 Excutable을 부분을 각각
{설치할때 지정한 Prefix}/drive_c/Program Files/MIDAS/MODS/Midas Ads/ADS.exe {설치할때 지정한 Prefix}/drive_c/Program Files/MIDAS/MODS/Midas Design+/Design+.exe {설치할때 지정한 Prefix}/drive_c/Program Files/MIDAS/MODS/Midas Gen/MidasGen.exe {설치할때 지정한 Prefix}/drive_c/Program Files/MIDAS/MODS/Midas SDS/SDSw.exe
이렇게 지정하면 ADS, Design+, GEN, SDS를 만들 수 있습니다. 그리고 GEN이나 ADS를 실행하면 Gecko를 설치한다고 뜹니다. 이거 설치하셔야 인증페이지 뜹니다.
이제 문제는 Design+인데 이건 dotnet45가 필요합니다.
여기서 와인잔 아이콘 클릭 후에 Winetricks를 실행합니다.
만약 문제가 생긴다면 zenity를 설치하세요.
아래 순서대로 선택후에 확인을 누릅니다.
dotnet45만 체크해도 dotnet40까지 체크되는 듯 합니다. 그냥 이대로 하시면 됩니다.
그러면 64비트에선 문제가있을 수 있다며 메시지가 계속 뜨는데 다 확인 버튼을 눌러서 넘기도록 합시다. 한참을 설치가 진행하게 되는데 터미널에서 이것저것 뜨는 것을 통해 잘 설치되는 것을 볼 수 있습니다.
그리고 설치가 완료 되면 winetricks 창이 뜨게 됩니다. 이러면 모든 것이 완료 된것이니 취소 버튼을 눌러서 Winetricks 창을 닫으면 됩니다.
이제 Design+를 실행하면 정품인증 창이 뜨면서 인증을 진행 하시면 됩니다.
다른 프로그램들도
잘 뜨는 것이 확인 됩니다.
만약 쓰면서 이상한 오류가 나거나 하면 터미널창을 통해 특정 DLL 호환 문제인 것으로 생각하시면 됩니다. winetricks를 사용하시거나 수동으로 DLL 파일을 설치하시면 됩니다.
Wine은 윈도우프로그램을 리눅스/유닉스에서 실행되게끔 하는 호환 레이어입니다. 프로젝트가 지속되다보니 지금은 상당히 많은 프로그램들이 구동되고있습니다. 최근에는 스팀덱을 필두로 게임성능이 강화된 Proton이 나와서 그래픽카드의 활용성능도 상당히 좋아졌습니다.
다만, Wine프로젝트는 기존의 Win32와 Win64 API를 원본 그대로 구현하는것도 있지만 리눅스와 연결되는 부분(화면에 뿌리는 GDI, 각종 입력장치 연결 라이브러리, DirectX를 OpenGL로 번역하는 Wined3d 등)을 내부적으로 구현했기에 다른OS에서 그대로 쓰기 힘들었습니다.
안드로이드의 경우 X를 쓰지 않기에 기존 Wine에 구현된 GDI구현체를 쓸 수 없었고 이를 위해 Termux-X11 같은 리눅스 데스크탑 호환환경을 갖춰서 굴리는 방식을 써야했습니다. (Mobox라는건이 이런식으로 구축해야 합니다) 아키텍처 문제로 X86과 AMD64로 만들어진 기계어를 ARM하드웨어용으로 번역하는 Box86과 Box64를 따로 설치해야하는건 덤이었고요.
Winlator는 Box86 및 Box64를 내장하고 Wine의 연결부분을 안드로이드의 것으로 대체하는 방식으로 안드로이드에서 쉽게 윈도우 프로그램, 그것도 PC에서 쓰는 X86용 프로그램을 돌아가게끔 해주는 앱입니다.
다만 기존 Wine도 완벽하지 않기에 100%호환이 보장되지 않은 상황에서 Box86, Box64를 통한 하드웨어 아키텍처 번역까지 있기에 완전한 구동은 어려운 상황입니다. 그만큼 성능저하는 덤입니다.
역으로 말하면 시간이 지나 Wine의 구현이 더 정확해지고 Box64가 발전하면서 안드로이드 기기의 성능이 좋아지면 지금 구동이 되지 않는 프로그램들도 구동이 될 가능성이 상당히 높습니다.
스냅드래곤 888칩셋기준 itch.io로 대표되는 2D인디게임 정도는 돌리는데 크게 무리가 없기에 깔끔하게 잘 돌아갑니다. 항간에선 GOG.com게임들은 DRM문제가 없기에 화면까진 볼 수 있다고 합니다. 유튜브를 뒤지면 위처3같은 꽤 그래픽 좋은 게임도 잘 돌아간다고 합니다.
안드로이드용 MSOffice가 있기에 굳이? 싶긴한데 윈도우용 MSOffice도 구버전(2010)에 한해서 구동에 성공했다고 하는군요. 그 외에도 호환성 강화를 위해 안드로이드용 C런타임이 아닌 Glibc를 네이티브로 내장해 호환성을 강화한 변종도 나오고 있으며 Wine을 커스텀한 Proton을 활용한 Winlator도 나오고 있습니다.
아니 보통은 그렇지 않긴 한데 기계식 키보드 중에 싸구려를 사는 사람들은 키보드를 바꾸거나 키보드를 개조하거나 둘 중 하나가 됩니다.
옛날에 썼던 멤브레인 키보드는 개조고 뭐고 딱히 할 이유가 없었고 가끔 찢어진 러버돔이나 교체하면 그만이었는데 기계식 키보드는 뭐 이렇게 부품이 다양한지....(어쩌면 멤브레인 키보드로 접한게 멤브레인의 끝판왕 DT-35여서 그럴지도...)
지금 쓰고 있는 키보드는 알리에서 할인하길래 2만원 남짓에 구매한 Mechenike사의 K500이란 키보드입니다. LED가 예쁘고 크기가 아담한 편이라 이런 스타일을 좋아합니다. 그리고 생각보다 리듬게임 할때 키감이 좋았습니다.
다만... 여기에 쓰인 스위치가 후아노사에서 만든 스위치인데 쓰면 쓸수록 고장이 잦습니다. 의외로 내구성이 별로더군요. 후아노스위치가 마우스에서 꽤 유명하다고 들었는데(심지어 어떤 사람은 비싼 마우스를 사다가 바로 후아노 스위치로 갈아버린다는데...) 키보드에선 생각보다 별로인 것 같습니다.
그래서 하루가 다르게 문제가 심한 후아노 스위치는 내다버리고 평이 이상하게 좋던 홀리판다의 카피스위치를 구해서 설치해봤습니다.
근데... 후아노 스위치보다 더 시끄럽습니다. 제가 원한 저소음, 무소음이 아니라 뭔가 쾅쾅쾅 하는 느낌이 드는걸 보니 아무래도 키보드 자체에서 울리는 소리가 나는 듯합니다. 찾아보니 다들 키보드 아래에 뭔가를 깔더군요. PC방이야 게임소리가 워낙 큰데다가 버튼 누르는 소리가 좀 들려줘야 장사가 되는 기분(?)이 들지만 집에서는 이런 소리가 난다면 글쎄요...
아무래도 이거 소리를 잡아야 할 거 같은데 추가 지출이 또 나가게 생겼네요.....
그리고 유튜브 찾아보니 이 키보드는 역시 싼거라 그런지 바닥에 아무것도 없습니다. PCB와 바닥 판 사이가 텅 비어있습니다. 이러니 시끄러울 수 밖에요...아무래도 이번 주말에는 키보드를 분해해서 바닥에 뭔가 엄청 깔아둬야 할 거 같습니다. 보통 종이 테이프를 붙인 다음 마른 행주같은걸 쓰는거 같은데 이러면 좀 낫겠지요.
===========쾅쾅 하는 소리를 잡은 방법=========
키보드를 뜯은 다음 PCB 아래의 공간을 최대한 없애면 됩니다.
그러니까 그냥 뭐든 채우세요. 제일 좋은건 흡음재로 파는 것들입니다. 좋은게 많지요. 그리고 저는 부직포를 채워넣었습니다. 부직포도 흡음재로 자주 쓰이는 재질이니까요.
그러니까... 부직포하면 제일 구하기 쉬운 다이소 행주(...)를 여러겹으로 잘라다가 끼워넣었습니다. 스페이스바가 잘 안 움직이는 문제가 생겼지만 나사를 살살 풀어주니 해결되었고 자잘자잘 소리는 나지만 아무튼 쾅쾅 소리는 사라졌습니다. 뭔가 행복하군요.
PCB와 스위치 사이에 끼우는 무언가도 있는데 이런 싸구려 키보드에 이런저런 무언가를 계속 돈 쓰긴 싫어서 그냥 행주를 채워넣는 것으로 해결봤습니다.
최근 안드로이드 커스텀롬의 기반은 두가지로 나눌 수 있습니다. 1. 기존의 전통적인 AOSP를 기반으로 이리저리 지지고 볶아서 만드는 커스텀롬(LinneageOS가 대표적) 2. 픽셀용으로 나온 OS를 이리저리 지지고 볶아서 만드는 커스텀롬(Pixel Experience가 대표적)
사실 AOSP기반의 롬이어도 gapps(구글앱스)를 설치하면 거기서 거기이긴합니다. 하지만 최근 이런저런 커스텀롬을 쓰다보니 차이가 하나 둘씩 눈에 보이더군요.
1. AOSP기반의 롬의 경우 구글특화기능이 빠지는 경우가 많습니다. - gapps에 따라 해당기능이 작동하기도 하지만 대부분 QuickShare(구, NearbyShare)같은 기능이 막히는것을 확인했습니다.
2. gms(구글코어라고도 합니다)의 일부기능이 작동되지 않는 경우가 존재합니다. -푸시알림같은 기능인데 구글에 해당 MAC어드레스를 등록하면 작동한다지만 이 또한 귀찮지요.
3. 게이밍쪽에서 커스텀 정도에 따라 성능차이가 벌어지는 편입니다. -사실 이건 픽셀에 OpenGLES를 Vulkan으로 변환해서 렌더링하는 기능이 들어갔기 때문인데 이게 오픈되지 않은건지 대다수 AOSP기반 롬은 해당 기능이 없습니다.
4. 가끔 커스텀롬이 픽셀로 인식되는 경우가 있습니다. -장점인지 단점인지 알 수 없지만 AOSP기반롬은 따로 루팅이라도 하지 않은 이상 대부분 본래 모델명으로 인식되지만 픽셀기반의 경우 픽셀로 인식되는 경우가 꽤 있습니다. 여러대의 휴대폰을 쓸 때 헷갈릴 수 있습니다.
안드로이드에 Treble이 적용된 이후 픽셀기반OS를 포팅하기 쉬워졌다고 합니다. 통칭 GSI롬이라고 하는데 GSI기반을 쓰면 그냥 픽셀기반OS에 가깝습니다. 이미 x86용 안드로이드도 gsi롬으로 나오고 있는데 이것도 구글의 야심과 관계가 있어보이는건 제 의심일까요?