10년전만해도 이게 뭔 뚱딴지같은 소리냐 했을텐데 2025년 지금은 AMD만큼 리눅스 지원이 잘 되는 제품이 없습니다.
과거엔 인텔이 최고였고 ClearLinux라는 인텔에서 직접 만든 배포판도 있을 정도였지만 지금 인텔의 상태가 말이아니기에 리눅스관련 직원들이 해고되었다는군요. 실제로 몇몇기능은 커널에 구현되다 말았고요. (이러다 제온이 리눅스 서버시장에서 조차 밀리는거 아닌가 싶습니다)
AMD는 이와 반대로 리눅스 지원이 좋아지다못해 최고의 성능을 발휘하는 OS와 CPU가 되었습니다. 특히 쓰레드리퍼나 에픽을 쓸때 윈도우에 비해 리눅스의 성능이 정말 굉장하지요.
거기다 스팀덱출시 이후 라데온에서 리눅스의 Vulkan성능이 대폭 좋아져서 윈도의 라데온과 비교해 성능을 더 뽑아내고 있습니다. 심지어 Nvidia의 DLSS와 다르게 AMD는 비슷한 기능인 FSR도 네이티브로 돌리지요.
10년전만 하더라도 리눅스 데스크탑은 인텔CPU에 인텔그래픽이 진리였습니다. 성능문제는 둘째치고 안정성면에서 문제가 심했거든요. 만약 3D를 원한다면 Nvidia카드를 박아서 Nvidia의 독점드라이버를 설치해야했고요. 물론 그래도 안정성은 충분했습니다. 커널버전에 따른 호환성은 있었을지언정 드라이버만 설치되면 쓰는데는 지장이 없었으니까요.
그런데 AI의 대두이후 Nvidia의 드라이버는 CUDA를 위시한 컴퓨트성능위주로 흘러가게 되었고 Vulkan과 OpenGL성능이 나락으로 가기 시작했습니다. 언제부터인가 Vulkan의 지원되는 수준이 떨어지고 강점이었던 OpenGL의 안정성조차 떨어지더군요.
인텔은... 그때나 지금이나 바탕화면 표시기...였지요.
그런데 스팀덱에 AMD칩셋이 쓰이고 AMD가 Vulkan에 투자하면서 이야기가 달라지기 시작했습니다. Doom Eternal만 해도 Vulkan버전으로 돌리면 AMD그래픽카드에서 성능이 배로 좋아진다고 하지요. DirectX나 OpenGL성능이 경쟁사에 비해 떨어지니 최신API인 Vulkan에 투자한듯합니다. 그런데 그게 스팀덱에서 꽃을 피운듯합니다.
그리고 AMD의 드라이버는 (완벽한건 아니지만)오픈소스입니다. amdgpu라는 이름으로 공개되어있습니다. 커널에 직접 반영도 되고 덕분에 Wayland지원도 빨랐습니다. 그러다보니 사용자가 늘어날 수록 안정성이 좋아지는 경향이 있는데(버그리포트가 그만큼 많아지므로 생각지못한 패닉이 줄어듭니다) 스팀덱으로 인해 AMD그래픽사용자가 늘어나자 안정성이 급격히 좋아지기 시작했습니다.
최근 제 Debian시스템을 기준으로 Nvidia 1660에서 돌아가지 않던 게임이 RX570에서 돌아가는것을 확인했습니다. 원인은 Vulkan드라이버였습니다. FSR이 켜지면서 프레임이 좋아진건 덤입니다.
보통 이쪽은 하나도 모르는 수많은 꼰대들이 이런식으로 이야기하곤 합니다. 대부분 이렇게 이야기하는 사람들은 돈만보고 살아왔거나 자기자신만 아는 경우가 많습니다.
그런데 다들 알다시피 오픈소스는 수많은 기여자들의 취미활동으로 많은 수가 굴러갑니다. 솔직히 저 사람들 입장에선 이해가 안 될겁니다. 그런데 "성취감"이라는게 뭐라 형용할 수없는 중독성을 지니고 있습니다.
특히 내가 기여한 무언가가 다른 누군가에게 유용하게 쓰이고 있을때의 그 기분이란...
거기다가 보통 오픈소스프로젝트에는 한줄이라도 코드에 기여했거나 그냥 UI용 아이콘 하나라도 만들어주면 Thanks To에 이름이 올라갑니다. 영화 끝날때 크레딧에 내 이름이 써있다고 생각해보세요. 그리고 심지어 사람들이 작품을 칭찬한다고 상상하면 난 거기에 모래알만큼 기여했지만 어찌됐건 기분이 좋습니다.
=================================
솔직히 오픈소스에 기여하는건 어렵지 않습니다. 심지어 프로그래밍을 못 해도 충분히 기여가 가능합니다. 많은 프로그램들은 전세계에서 만들어지다보니 수많은 언어지원이 어렵습니다.
프로젝트관리자가 기여자들이 가져다주는 코드들 중 제일 쌍심지켜고 환영하는게 번역물입니다. 왜냐하면 그 사람들은 최소 영어와 자국어외에는 모르거든요. 번역기를 쓰면 당연히 번역투로 나오기 때문에 엉망이라는건 본인들도 아주 잘 알고 있습니다.
그런데 갑자기 특정언어권 사용자가 직접 번역해서 가져다주면 그렇게 좋을 수가 없겠지요. 아마 바로 다음버전에 적용해줄 가능성이 높습니다. "사용자층 확대" "모국어 사용자라는 신뢰" "번역을 기여할 정도로 내 작품을 쓰는자의 물건"
이 세가지 측면에서 좋은 기여가 없습니다.
개발자들은 번역된걸 쓰는경우가 적은편입니다. 보통영문판을 선호하지요. 하지만 보통의 한국인은 다릅니다. 기왕이면 한글판을 선호합니다.
저부터도 첫 오픈소스 기여가 번역이었습니다. 20문장 남짓이었지만 다음날 바로 적용해서 업데이트까지 해주더군요. 그리고 몇년이 지난지금 그 프로그램사용자들이 제 번역을 기준으로 사용법을 공유하고 있습니다.
# Modernized from /etc/apt/sources.list Types: deb deb-src URIs: http://mirror.kakao.com/debian/ Suites: sid Components: non-free contrib main non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
요렇게 만들어서 여러줄로 쓰는 걸 말합니다. 어느정도 업데이트 하다보면 이런 방식으로 바꿀건데 진행할거냐고 물어봅니다. 저야 뭐 그냥 시키는대로 하는 편이라 그러라고 했더니 기존 sources.list파일을 백업하고 sources.list.d/debian.sources 파일을 위와같이 만들더군요. 물론 구글크롬 저장소와 MS VSCODE 저장소도 이런 식으로 바꿨습니다. 다만...
Notice: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://packages.microsoft.com/repos/code stable InRelease' doesn't support architecture 'i386' Notice: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://dl.google.com/linux/chrome/deb stable InRelease' doesn't support architecture 'i386' Notice: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://pkg.cloudflareclient.com bookworm InRelease' doesn't support architecture 'i386' Notice: Missing Signed-By in the sources.list(5) entry for 'https://packages.microsoft.com/repos/code'
OpenRCT2 지금도 이리저리 손 대보고 있습니다. 소스가 공개되어있다보니 별의별걸 다 해볼 수 있더군요.
그러다 한가지 생각난게 있는데 openrct2-cli란게 있습니다. 이건 서버구축을 위해 만든거에 가까운데 게임자처는 돌아가도록 되어 있습니다. 콘솔명령을 내리면 실제로 공원에 적용이 되고요.
그렇게 생각해본게 그럼 이걸 띄우고 별도의 프론트엔드를 띄운다면 RCT2특유의 그래픽과 완전 별개인 그래픽으로 게임이 가능한거 아닌가? 라는 생각이 들었습니다.
실제로 비슷한 프로젝트가 있었습니다. OpenRCT2-Unity OpenRCT2를 내부에서 라이브러리 형태로 실행하고 Unity로 만드는 프로젝트입니다. Unity이기에 3D로 구동되는데 롤러코스터 타이쿤3 느낌이 납니다. 즉, 내가 만든 공원을 3D로 돌아다니는 것이지요.
근데 이 프로젝트는 현재 멈춰있습니다. 그게 딱히 기여자도 없고 흥미본위에 맞춰져 있었으니까요.
그런데 조금만 더 생각해보면 이야기는 조금 달라집니다. Unity든 Unreal이든 유명 게임엔진에 이걸 붙이면 디아블로2 리저렉션처럼 만들수 있다는 이야기가 됩니다.
OpenRCT2는 픽셀이 튀는 문제가 있습니다. FHD를 넘어 4k모니터가 보급되다보니 생기는 문제인데 기존 2D이미지를 뜯어고쳐서 고해상도로 올리고 프론트엔드처럼 만들면 고해상도로 충분히 게임이 가능해질 수 있습니다.
비슷하게 모바일버전인 롤러코스터 타이쿤 클래식의 경우 각 기기들의 해상도가 미친듯이 올라가다보니 픽셀튐과 색상이 더러워지는 문제가 생겼는데 이걸 OpenRCT2와 프론트엔드로 해결 할 수 있을지도 모릅니다. 그리고 프론트엔드에 따라 지금은 구동이 불가능한 iOS에서의 구동도 생각해볼 수 있습니다.
직접 현재 OpenRCT2를 뜯어서 고해상도에 맞추면 되지않냐고 생각할 수도 있습니다. 실제로 몇몇 옵션이 그걸 감안하고 생성되어 있습니다만 언제 완성될지 모릅니다. 그리고 전 그 때 그 감성도 좋지만 최신감성도 나쁘지 않다고 보거든요. 마치, 슈퍼마리오 메이커의 그래픽 스타일 변경처럼요.
일단 기존 OpenRCT2의 Viewport를 다른 게임엔진으로 들고오는것부터 생각해봐야겠네요.
PC프로그램의 상당수가 모바일로 이식된지는 오래됐습니다. MS오피스도 그렇고 포토샵도 핵심기능에 한해 포팅되어있지요. 한컴오피스는 특이하게도 PC버전같은 UI로 모바일버전이 있지요.
다만 모바일버전의 경우 여러요소가 고려되다보니 PC버전과는 궤를 달리하는 물건도 꽤 많습니다. 그리고 포팅할때 UI/UX가 가장 골치아픕니다.
첫째로 화면이 작다보니 버튼들이 꽤 큰편입니다. MS오피스처럼 적극적으로 도구상자들을 쓸 경우 가뜩이나 작은 화면의 상단을 잡아먹습니다. 그러다보니 PC버전과 다르게 두번세번 클릭하게 만드는 경우가 많습니다. 그래서 상황에따라 필요한 도구상자를 띄우는 방식을 쓰거나 따로 기능메뉴 버튼을 만든뒤 기능을 메뉴에서 일일이 선택하는 방식을 씁니다. 이게 UX면에서 답답하게 만드는경향이 있어서 지금도 어떻게 하는게 좋을지 고민하게 만듭니다.
둘째로 마우스 동작방식이 다릅니다. 모바일은 기본적으로 마우스가 없습니다. 터치스크린이라는 조작계 하나뿐이지요. 그래서 커서가 버튼위에 있는 Mouseover상태가 없습니다.
옛날 프로그램의 경우 이 MouseOver상태를 상정하고 만든 경우가 꽤 있습니다. 이런경우 모바일로 넘어올때 해당기능이 골때립니다. 보통 이런경우 한번 터치(혹은 클릭)시 MouseOver에 해당하는기능이 나타나고 같은 부분을 터치(혹은 클릭)시 본래기능이 동작한다거나 해야합니다.
셋째로 마우스는 버튼이 3개나 있지만 터치스크린은 화면터치 하나 뿐이라는겁니다. 즉, 기존 입력계 기준 "마우스왼쪽버튼을 누른다" 하나만 있을 뿐입니다.
다만, Windows8이후 OS차원에서 터치스크린을 지원하다보니 이쪽은 OS에서 마우스를 에뮬레이션 해주기도 하니 좀 낫습니다. 특히 길게누르면 마우스 오른쪽버튼으로 처리해주는걸 OS에서 해주지요. 그래서 모바일로 포팅된 앱들을 보면 짧게 터치하면 왼쪽버튼 클릭이고 길게터치하면 오른쪽버튼 클릭되게끔 만들곤 합니다. 애초에 Windows에서 그렇게 해주니 똑같이 구현하는겁니다. 하지만 안드로이드나 iOS는 에뮬레이션 그런거 없으니 알아서 구현해야합니다.
모바일이나 터치스크린은 "길게누른다"와 "스크롤 드래그"를 적극적으로 쓰기 때문에 PC에서 쓰던 "클릭"이라는 타이밍이 무조건 MouseUp상태가 되는 순간입니다. 만약 MouseDown때 기능이 동작한다면 "길게누르기"와 "스크롤 드래그"기능을 쓸 수가 없겠지요.
최근에 나오는 대다수 UI라이브러리의 경우 "Click"과 "MouseUp", "MouswDown"을 철저히 구분합니다만 옛날프로그램은 MouseUp과 MouseDown뿐이었습니다. 그래서 버튼을 클릭시 MpuseDown에다가 구현하는 경우가 꽤 있었고 이를 모바일에 포팅할때 애먹게 만들곤 했습니다. 그래서 입력기기에 따라 알아서 판단하는 "Click"이라는 상태가 하나 더 추가 됐습니다. 그래서 최근 라이브러리를 가져다가 Click에다가 구현하면 PC와 모바일 둘 다 해결가능합니다만 이미 만들어진 프로그램을 최신 라이브러리에 맞추는게 쉬운일은 아니겠지요. 그리고 모든 UI라이브러리가 다 그렇게 만들어진것도 아니고요. (여전히 MouseUp과 MouseDown만 있는 라이브러리도 꽤 많습니다)
다섯째로 상시 통신연결하는걸 자제해야합니다. 이건 무슨 이야기이냐면 PC는 대부분 유선으로 연결되었기에 통신을 수시로 하지만 모바일은 통신이 끊기는 경우가 잦아서 특정타이밍에 몰아서 하는경우가 많습니다. 미국같이 땅덩어리가 넓은 경우 고속도로가면 통신이 끊기는 경우가 꽤 있습니다. 이때 통신을 시도하면 할 수록 쓸데없이 배터리만 나갑니다. 그래서 이 부분을 손 봐야합니다. 역시 최근 라이브러리는 이런걸 감안하지만 문제는 옛날 프로그램이지요.
최근 OpenRCT2의 안드로이드버전을 손보면서 느낀걸 이야기해봤습니다. 이쪽은 SDL을 쓰면서 UI라이브러리 따로 쓰지 않아 지금 한창 애먹고 있는중입니다. 뭔가 하나 구현하면 다른게 터지는 등의 문제가 심해서 그냥 다 뜯어서 처음부터 입력쪽을 다시 구현할까 고민중입니다.(...)
의외로 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로 구동되게끔 조금 손을 대봤습니다.