본문 바로가기
게임/추가 정보

돌핀 에뮬레이터 2020년 2월~3월 진행 보고서

by 사과향잉크 2020. 4. 11.

지난 몇 개월 동안 전세계의 많은 이들이 노력했다는 걸 알고 있습니다.

여러분이 거대한 계획의 아주 작은 일부라는 느낌을 받을 수도 있겠죠.

모든 이들은 고립을 대처하고 기분을 밝게 하기 위해 인터넷, 게임, 에뮬레이션 등 많은 대처 방법을 가지고 있습니다.

돌핀 에뮬레이터에 의지하는 여러분, 우리는 돌핀이 힘든 시기에 여러분의 하루를 조금이나마 더 밝게 만들기를 바랍니다.

 

진행 보고서를 보면 핵심 에뮬레이션 이외에 영향을 미치는 많은 변화가 있다는 걸 알 수 있을 겁니다.

예를 들어 안드로이드와 맥OS의 돌핀은 다크 모드가 돌아와 눈에 부담 없이 밤에 게임하기에 완벽해졌습니다.

그렇지만 가장 중요한 걸 말하자면 여러분의 위 리모컨이 다양하게 활용될 새로운 방법이 있습니다.

하이브리드 위 리모컨 제거, 저장/불러오기를 쓰면 위 리모컨이 강제로 끊김, 실제 위 리모컨의 한계에 실망한 사람들은 매우 신날 겁니다.

그럼 진행 보고서를 즐겨주세요!

 

5.0-11655 Qt 5.14.1 업데이트

돌핀을 열고 GUI를 확대하면 더 좋아졌다는 걸 알 수 있습니다.

spycrab이 돌핀을 Qt 5.13.1에서 최신 버전인 5.14.1로 업데이트했기 때문이죠!

새로운 Qt 버전은 새로운 많은 개선점이 있습니다. 자세한 건 여기에서 보세요.

많은 수정사항이 돌핀에 적용되지 않지만, HiDPI 지원이 개선되었습니다. 혼합 DPI 스케일링 다중 모니터 설정에서 특히 눈에 띄죠.

 

왼쪽은 DPI 스케일링 1.5배, 오른쪽은 2배. 엄청 크다
업데이트로 모니터의 스케일링에 맞춰 변경된다

아직 몇 가지 문제가 있습니다.

스케일하지 않은 디스플레이에서 연 돌핀을 스케일링한 디스플레이로 옮기면 망가질 수 있습니다.

이 문제는 일관된 것이며 스케일링한 모니터에서 열면 쉽게 문제를 피할 수 있습니다.

전체적으로 돌핀은 HiDPI 디스플레이에서 더 일관적으로 작동해야합니다.

 

 

5.0-11684 위 리모컨의 입력 설정 지원

하이브리드 위 리모컨은 많은 사용자가 좋아하는 기능이었습니다.

이 설정으로 사용자는 실제 위 리모컨의 입력을 다른 기기의 입력과 섞어 쓸 수 있었죠.

예를 들면 포인터를 마우스에 지정해 센서 바 없이 위 리모컨을 쓰거나, 엑스박스 원 컨트롤러를 눈차크로 사용할 수 있습니다.

정말 유용했지만, 문제도 정말 많았습니다. 잘 알려졌다시피 불안정한데 코드가 문제였죠.

오래된 실제 위 리모컨 코드 위에 작업했고, 우리 수준이 가장 낮았을 때조차도 임시방편으로 여겼습니다.

너무 안 좋았기 때문에 위 리모컨 코드를 두 번이나 크게 다시 썼음에도 아무도 하이브리드 위 리모컨 근처에 가지 않았죠.

하지만 정말 유용했고 팬이 좋아했기에 정당하게 제거하지 않고 그냥 무시했습니다.

몇 년 동안 그랬지만 방치해놓았더니 해가 되었죠.

2018년까지 하이브리드 위 리모컨은 거의 다 망가졌고, 뭔가 해야했습니다.

결국 2018년 5월에  돌핀에서 하이브리드 위 리모컨을 없앴습니다.

그 기능을 제거함으로써 현대 코드 품질 수준에 맞는 더 나은 구현을 위한 문이 열리길 바랐죠.

그리고 이제 우리의 희망이 실현되었다고 말할 수 있어 기쁩니다.

 

Billiard는 최근 더 나은 표시, 더 발전된 입력 파싱, 심지어 에뮬레이션 모션 플러스까지 우리의 모든 입력 시스템을 비트 하나하나 점검하는 엄청난 일을 하고 있습니다.

하이브리드 위 리모컨에 생각이 미치자 Billiard는 이렇게 질문했습니다.

다른 컨트롤러에 이미 확보한 모든 기능을 활용할 수 있게 그냥 위 리모컨을 우리의 강력한 입력 설정에 연결하면 되는 거 아냐?

그래서 그렇게 했습니다.

 

이제 돌핀은 연결된 위 리모컨을 우리의 컨트롤러 입력 지정 시스템인 입력 설정에 연결할 수 있습니다.

컴퓨터에 연결한 다른 컨트롤러처럼 위 리모컨의 입력을 설정할 수 있죠.

드디어 손에 든 위 리모컨의 센서와 버튼을 마음대로 바꿀 수 있습니다.

하지만 새로운 시스템은 그보다 훨씬 더 많은 것이 가능합니다.

가능성이 넘쳐 흘러서 몇 가지 예를 들어보려 해도 목록을 하나 만들어야 할 정도죠! 심지어 이 목록은 가능성의 아주 일부일 뿐입니다.

 

· 다른 컨트롤러와 마찬가지로 어떤 버튼도 다른 버튼으로 쓸 수 있습니다. 바이오하자드 4에서 A 대신 B로 총을 쏘고 싶나요? 가능합니다!

· 하이브리드 위 리모컨의 핵심 기능이었던 센서 바 없이 위 리모컨 사용하기는 어떨까요?

위 리모컨의 가속도계와 자이로스코프를 모션 입력 탭에 지정하고 포인터 에뮬레이션을 활성화하면 다른 모션 컨트롤러와 마찬가지로 위 리모컨이 가리키는 위치를 정할 때 위 리모컨의 센서를 이용할 겁니다. 센서 바 없이요!

이전처럼 마우스를 포인터로 쓸 수도 있습니다.

· 움직임을 모션 시뮬레이션 시스템과 결합할 수 있습니다. 좀 더 복잡한 부분에 실제 움직임을 사용하고, 회전 같은 간단한 움직임은 버튼으로 처리하는 거죠. 슈퍼 마리오 갤럭시, 젤다의 전설: 황혼의 공주 같은 게임에서 정말 유용합니다!

· 위 리모컨과 확장기기를 게임큐브 컨트롤러로 쓸 수 있습니다. 오리지널 클래식 컨트롤러(프로 말고)가 있을 정도로 운이 좋은 사람이라면 아날로그 R/L 트리거를 사용할 수 있습니다!

· 게임에 확장기기가 연결되있다고 전할 수 있으며 특정 확장기기만 지원하는 게임도 다른 확장기기를 사용해 보다 편안히 즐길 수 있습니다.

· 실제 위 리모컨으로 넷플레이? 이제 가능합니다!

· 위 리모컨으로 단축키를 쓰려구요? 다른 컨트롤러와 똑같이 작동합니다.

· 실제 위 리모컨을 에뮬레이션 컨트롤러로 사용하면서 하는 분리는 저장상태를 불러올 때 위 리모컨이 끊기지 않게 합니다. 그보다 나아가 돌핀의 고급 설정 패널에서 상태 저장/불러오기 단축키를 위 리모컨 버튼이나 버튼 조합에 넣을 수도 있죠!

 

이건 빙산의 일각일 뿐입니다. 실제 위 리모컨을 돌핀의 지정 시스템 전체에 열어주죠.

사용자는 우리의 고급 수식 파서와 컨트롤러 설정에서 적절한 속임수로 쓸 수 있습니다.

단순히 하이브리드 위 리모컨을 대체하는 걸 훨씬 뛰어넘어 믿을 수 없을 정도로 강력한 기능이지요!

그리고 이번에는 돌핀에 존재하는 시스템을 이용한 적절하고 깨끗한 코드라서 기능이 계속 유지되리라 확신합니다.

 

새로운 기능을 사용하려면 컨트롤러 설정에서 에뮬된 위 리모트를 누르고, 새로고침과 동기화 버튼을 동시에 눌러 위 리모컨을 연결하세요. 지속적인 스캐닝을 켰다면 동기화 버튼만 누르고요.

위 리모컨이 연결되면 설정할 리모컨을 에뮬된 위 리모트로 설정하고 다른 컨트롤러처럼 컨트롤러 설정 페이지로 가세요.

컨트롤러 드롭다운에서 위 리모컨은 블루투스/(x)/위 리모컨 아래에 표시되는데 x는 연결된 순서대로 나옵니다.

 

왼쪽 사진처럼 기능을 켜고 위 리모컨을 연결하고 설정을 누른 뒤, 다른 컨트롤러처럼 오른쪽 화면에서 설정한다

그렇지만 새로운 기능에는 몇 가지 한계가 있습니다.

에뮬레이션 컨트롤러로 위 리모컨을 이용해 얻는 권능은 사용자가 위 리모컨을 각각 수동으로 설정하려는 의지에서 비롯됩니다.

더 쉽게 할 수 있게 모든 표준 위 리모컨 설정을 내장한 프로필을 제공할 생각이지만, 지금은 사용자가 직접 해야합니다.

하지만 프로필이 있더라도 실제 위 리모컨처럼 바로 연결하고 쓰는 것만큼 쉽지는 않을 겁니다.

위 리모컨의 스피커 소리가 위 리모컨으로 가지 않고 시스템 스피커로 나오는 것도 한계입니다.

좋을 수도 있지만 이 기능을 광범위하게 사용하는 게임에서는 좌절감을 느낄 수도 있죠.

가장 큰 문제는 우리가 여러분이 쓰려는 모든 확장기기를 에뮬레이션해야한다는 겁니다.

돌핀은 거의 모든 확장기기를 에뮬레이션하지만 버그를 발견하고 새로 희귀한 확장기기를 추가해야했던 경우도 있습니다.

또한 사용자는 모든 확장기기를 스스로 설정해야합니다.

 

이런 문제에도 불구하고, 위 리모컨을 에뮬레이션 컨트롤러로 쓰는 건 상전벽해할 수준입니다.

유능한 사용자는 무엇이든지 잘할 수 있을 거에요.

우리가 2년 동안 가장 좋아하는 기능을 그리워했는지 모르지만, 확실히 기다릴 가치가 있었습니다.

 

마지막으로 몇 마디.

실제 위 리모컨을 연결하는 기능은 유지합니다. 이런 훌륭한 기능은 없을 지라도 플러그 앤 플레이라는 성질은 돌핀에서 가장 쉽게 위 리모컨을 쓸 수 있는 방법이기에 없애고 싶지 않습니다.

블루투스 패스스루에는 적용되지 않습니다. 에뮬레이션 환경에 직접 블루투스 기기를 제어할 수 있는 별도의 설정이니까요.

돌핀은 연결된 위 리모컨이나 블루투스 어댑터 상태는 전혀 알 수 없습니다.

실제 행동을 위한 많은 에뮬레이션을 우회할 수 있지만, 그 과정에 많은 것들도 바이패스하기에 에뮬레이터가 할 수 있는 일이 제한되기 때문에 블루투스 패스스루는 그대로입니다.

 

 

5.0-11637 입력 설정: 입력 수식으로 컨트롤러 설정

수년 동안 사용자는 고급 컨트롤러 설정 창에서 입력 수식을 만들 수 있었습니다. 입력과 변수를 결합하여 입력 시스템 내에서 엄청난 유연성을 확보할 수 있죠.

지난 몇 년간 크게 확장되어 컨트롤러 입력을 넘어 단축키에도 적용되었고, 더 많은 고급 기능도 있습니다.

 

이번에 크게 바뀐 건 입력 수식 뿐만 아니라 적용 대상까지 확대한 겁니다.

위 리모컨을 에뮬레이션 컨트롤러로 쓰는 일을 작업하는 동안, Billiard는 위 리모컨에서 확장기기를 바꿔도 돌핀에서 구성한 확장기기는 바뀌지 않아서 사용자가 컨트롤러 설정을 열어 바꿔야한다는 걸 알아냈습니다.

그는 그 상황만을 위해 하드코딩하는 대신 입력 수식을 컨트롤러 설정으로 확장하려고 합니다.

이제 위 리모컨을 에뮬레이션 컨트롤러로 한 번 쓰기 시작하면, 확장 기기는 자동으로 바꿔집니다.

 

하지만 그는 이렇게 바꾸면 이뿐만 아니라 훨씬 더 많은 게 가능하리란 걸 알고 있었죠.

입력 수식으로 변경할 모든 컨트롤러 설정으로 열면 고급 컨트롤러 설정에서 모든 컨트롤러 설정과 기능에 적용할 수 있습니다!

예를 들어 버튼을 누른 상태에서 위 리모컨(에뮬된 위 리모트)이나 듀얼쇼크 4(DSUServer)의 실제 모션 컨트롤을 더 미세하거나 크게 바꿀 수 있습니다.

최상의 마리오 파티 사기를 위해 버튼을 누른 상태에서 흔들리거나 튕기는 동작의 빈도를 높일 수도 있지요!

심지어 콜 오브 듀티: 모던 워페어 같은 게임에서 조준경 버튼을 누르는 동안 포인터가 더 정확하게 설정할 수도 있습니다.

전에는 할 수 없었던 설정은 이런 입력 파서의 모든 개선점과 같이 가능하게 되었습니다!

 

이건 작은 예제일뿐

또한 이런 변경으로 실제 컨트롤러의 배터리 수준을 게임에 보낼 수 있습니다. 게임에서 보여주는 배터리 양은 실제 컨트롤러의 배터리입니다.

에뮬레이션 컨트롤러로 한 위 리모컨이 배터리 정보를 게임에 보낼 수 있는 거죠!

배터리 양을 알려주는 모든 컨트롤러가 가능하기에 위 게임에서 Xinput 컨트롤러나 DSUServer를 쓰는 듀얼쇼크 4, 엑스박스 360 컨트롤러의 배터리를 볼 수 있습니다!

하지만 AA 건전지이 작동 방식과 위 리모컨이 전압을 배터리 양으로 변환하는 방식 때문에 위 리모컨이 아니라면 수치가 이상합니다.

시험해보니 실제로는 엑스박스 원 컨트롤러 배터리가 66%인데 게임에서는 100%로 나오더군요.

그렇지만 놀라울 정도로 강력한 입력 수식 파서로 일부를 수정하면 잘 작동합니다. 예제를 보세요.

 

엑스박스 원 컨트롤러의 남은 배터리를 볼 수 있다

새로운 기능은 상대적 입력 보류 지정과 에뮬된 위 리모트의 단축키 그룹을 쓸모 없게 만듭니다.

그래서 이 기능을 없앨 것이지만, 그때는 그런 설정을 새로운 시스템으로 이전하는 시스템을 반드시 만들 겁니다.

 

 

5.0-11669 Gecko 코드 로딩 수정

특정 시스템은 Gecko 코드를 제대로 해석하지 못하는 로케일 문제가 있을 수 있습니다. 실수에요.

일부 로케일은 형식화된 단일 숫자에서 공백을 허용하는 게 문제입니다. '1 2 3'을 '123'으로 읽죠.

예를 들면, 프랑스 로케일은 '0245A3CD 01266363'을 두 개의 개별값이 아닌 하나의 값으로 읽을 겁니다.

코드의 전반부는 주소, 그 뒤는 주소를 설정하려는 값입니다. 돌핀이 이걸 하나로 읽어버리면 코드 주소가 넘쳐버리니 무효로 취급됩니다.

로케일에 관계없이 코드를 제대로 로드하기 위해 돌핀의 Gecko 로더는 C 로케일을 쓸 수 밖에 없게되었습니다.

 

 

5.0-11698 Qt 다크 모드 재활성화

5.0-9745에서 맥OS 돌핀에서 다크 모드를 끄자 애호가들은 불평했습니다.

하지만 당시 쓴 Qt 버전은 다크 모드로 있는 동안 돌핀 전체에 여러 문제를 일으키는 결함이 있었습니다.

버튼 글씨가...

사람들은 고쳐달라고 보고서를 보냈지만 돌핀 문제가 아니라 Qt 문제라 우리는 할 수 있는 게 없었습니다.

그래서 Qt가 고칠 때까지 다크 모드를 끄는 게 최선이라고 생각했죠.

그리고 이제 그 사람들이 고쳤습니다!

Qt 개발자들이 열일해서 Qt 5.14에서는 모든 문제가 해결되었습니다!

버전 업데이트 후 맥OS에서 다크 모드를 써보고 잘 작동되길래 다시 활성화했습니다.

돌핀은 평소엔 밝고 활기차보이지만, 밤만큼 어두워질 수 있다

다크 모드를 켜면 모든 게 자동으로 바뀌지만 아이콘 테마는 예외입니다.

그래서 아이콘이 다크 그레이 색인 기본 클린 테마에서 다크 모드를 켜면 일부 디스플레이에서는 버튼을 보기 어려울 수 있습니다.

따라서 다크 모드를 쓰려면 다크 모드를 위해 특별히 만든 클린 라이트 테마를 쓰거나 컬러 아이콘 테마를 쓰길 권장합니다.

아니면 그냥 매트 블랙으로 시커멓게 쓰세요.

아, 어둠. 나의 오랜 친구여...

 

5.0-11810 안드로이드: 시스템 설정에 따라 라이트/다크 모드 변경

진행 보고서의 신참인 TheRealPSV가 안드로이드 시스템 설정에 따라 라이트와 다크 모드가 바뀌게 했기 때문에 다크 모드 팬들은 이번 달을 더욱 축하해야합니다!

즉, 안드로이드 테마를 바꾸면 돌핀도 따라서 바뀝니다.

다크 모드 팬은 처음으로 서드 파티 앱을 쓰지 않고 안드로이드 돌핀 앱을 다크 모드로 쓸 수 있게 됐다는 말이죠!

안드로이드 11의 시간에 따라 다크 모드로 바뀌는 기능과 정말 잘 어울릴 거에요.

아무 문제도 터지지 않는다면 말이죠. 아직 아무도 안 해봤는데 아마 안 터지겠죠?

 

 

https://ko.dolphin-emu.org/blog/2020/04/05/dolphin-progress-report-february-2020

댓글