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

돌핀 에뮬레이터 8~9월 진행 보고서

by 사과향잉크 2019. 10. 23.

Fullmetal5가 블루투스 취약점으로 위 미니(Wii mini)를 해킹하면서 위의 역설계가 발전했습니다.

"위는 10년 전에 해킹된 거 아냐?" 그렇긴 하지만 위 미니는 2019년 내내 단단했습니다.

위보다 작아지면서 기능이 많이 빠져 위에 썼던 공격 경로를 쓸 수 없었기 때문입니다.

게임큐브 지원이 빠져 게임큐브 컨트롤러 단자와 메모리 카드 슬롯이 없고, 인터넷과 웹 브라우저도 없으며, SD 카드 슬롯도 없어졌습니다.

 

공격할 곳이 너무 적어 해커들은 창의력을 발휘해야했는데요.

DeadlyFoez는 위 미니와 위 하드웨어를 섞은 프랑켄위(FrankenWiis)를 만들어 공격 경로를 창조해낸 뒤 위 미니의 펌웨어를 덤프했습니다.이

그리고 Fullmetal5는 블루투스 스택으로 위 미니를 완전히 열어서 USB 단자로 임의의 코드를 실행해 데이터를 덤프하거나 로드할 수 있습니다.

 

위 미니 메뉴가 덤프된 이 상황에서 우리에게 가장 중요한 질문은... 그래서 돌핀에서 실행돼?

네, 됩니다! 여기 비교할 수 있는 사진이 있습니다. 위 미니는 위 샵, 인터넷, SD 카드가 없습니다.

 

위 / 위 미니

Fullmetal5는 돌핀이 위 미니 메뉴를 제대로 감지하게 수정하기도 했습니다.

돌핀에서 원판보다 잘린 메뉴를 실행하는 건 실용과는 거리가 멀지만 마지막 위 기기가 함락되는 모습을 보는 건 정말 흥미진진했습니다.

위를 해킹하고 보존하는 그들의 노력에 진심으로 감사를 표합니다.

 

그럼 8월과 9월에 변화를 주목해봅시다.

 

5.0-10780 Vulkan: 아드레노 드라이버에서 EFB 액세스 수정

몇 년간 아드레노(Adreno) 드라이버에 관해 불만에 대해 얘기했고, 드라이버는 아직 완벽하지 않으며 우리가 원하는 바를 전부 지지하지는 않지만, 꾸준히 개선되고 있습니다.

PC 돌핀에는 문제가 없는데 모바일에는 있는 경우도 있죠.

Stenzek은 GLES를 더 정확히 깊게 에뮬레이션할 방법을 조사하는 중이었습니다.

모바일 드라이버의 한계로 제대로 할 수는 없었지만, GLES 경로에서 D24S8 텍스처를 다루는 버그를 발견했습니다.

24비트 깊이 요소와 8비트 스텐실 요소가 있었고, 돌핀은 이전까지 둘 다 복사했습니다. 깊이만 필요한데 말이죠.

그가 이 문제를 수정하니 이 텍스처 형식을 쓴 특정 EFB 액세스 효과가 Vulkan에서 작동하기 시작했습니다!

 

문제 해결 전 /  후

젤다의 전설: 바람의 지휘봉에서 이 문제를 쉽게 알 수 있는데요.

깊이를 제대로 처리하지 못해서, 게임은 물체가 태양을 막는지 아닌지 알 수 없었습니다.

그래서 계속 태양을 바라보는 것처럼 렌즈 플레어 효과가 나오죠.

이 문제를 해결했으니 비슷한 문제가 있는 다른 게임도 해결될 겁니다. 아마 PC 돌핀의 EFB 액세스 효과와 같을 거에요.

아쉽게도 OpenGL에서는 아무 효과가 없고, 이 문제의 원인은 아직 알 수 없습니다.

 

 

5.0-10852 JIT64: MCRFS 수정

4년 전, Flacs는 JIT64에서 MCRFS 명령어를 구현했습니다.

모든 게임이 어느 정도는 사용했지만, 일반적이지는 않아서 돌핀은 Flacs가 해내기 전까지는 다른 식으로 우회했습니다.

그런데 최근에 슈퍼 몽키 볼 시리즈에서 MCRFS 명령어를 쓰면 문제가 생긴다는 걸 알았습니다.

가장 흔한 문제는 원숭이 비행 미니 게임에서 일어나며 슈퍼 몽키 볼: 바나나 블리츠에서는 최종 보스에서 완전히 맛이 갑니다.

8월 중순, Flacs는 무엇이 잘못됐는지 학인하고 이전에 작은 실수를 했다는 사실을 알아차렸습니다.

마법 상수를 제대로 설정하지 않아서 게임이 찾는 데이터는 전송되지 않고 삭제되던 것이죠.

고친 이후에는 제대로 작동했고, 다른 게임에서 찾지 못한 문제도 해결되었을지 모릅니다.

 

 

5.0-10872 서명되지 않은 WAD 파일을 열 때 뜨는 경고창 끄기

WAD 파일을 닌텐도가 위 게임의 업데이트 파티션에 업데이트를 저장하는데 쓴 형식입니다.

별 것 아닌 것 같아도 홈브류와 덤프를 하는 사람들은 위웨어(Wiiware) 게임, 버추얼 콘솔 게임, 위의 다른 채널을 표준화된 형식으으로 저장하는 방법으로 썼습니다.

몇 년 전에 IOS-HLE와 WAD 파일 지원을 개선하면서 서명되지 않은 WAD 파일을 시작하거나 설치할 때 알리는 경고창을 추가했습니다.

서명된 걸 덤프하지 않을 이유가 없으니까 부적절하게 덤프한 소프트웨어를 실행하지 않게 막아줄 거라고 생각했죠.

그렇지만 결과는 좋지 않았습니다.

 

이 창이 너무 자주 떴다

WAD 덤프를 오래 전부터 해온 사람 중 대부분은 콘솔 ID를 없애고 게임을 덤프하고, 이 과정에서 WAD 파일은 제대로 서명되지 않습니다.

이런 WAD 파일이 훨씬 흔하고, 이걸 다시 적절한 ID로 다시 덤프하는 일에는 어떠한 실질적인 이득도 없죠.

그래서 많은 이들은 그냥 이 경고창을 없애거나 꺼주길 바랐습니다.

불만이 가라앉을 때까지 기다리는 동안 상황은 나아지지 않았죠.

따라서 이제는 이 경고창이 뜨지 않습니다.

제대로 서명되었는지 확인하려면 게임 속성의 검증 챕에서 확인하세요.

 

 

5.0-10925 스크린샷 이름에 날짜 넣기

에뮬레이터로서 원래 하드웨어에서 떨어져서 게임큐브와 위 게임을 하는 게 돌핀의 주요 목적입니다.

하지만 귀중한 게임을 하드웨어의 속박에서 떨어뜨리는 것은 많은 가능성을 열어줍니다.

모드, 스크린샷, 코드 탐색, 기타 등등! 이런 다른 기능은 주목받지 못하는 경우가 많긴 하지만 말이죠.

이번 달에는 CookiePLMonster가 많은 스크린샷을 쓰는 사람에게 작지만 멋진 변화를 가져왔습니다.

 

지금까지 돌핀은 스크린샷 이름에 게임 ID와 숫자를 붙였습니다.

예를 들어 GM8E01 폴더의 5번째 메트로이드 프라임(GC) 스크린샷의 이름은 GM8E1-5입니다. 간단하죠.

하지만 부팅 드라이브로 작은 SSD를 쓰고 있는데 GB 스크린샷이 계속 차면 불안하죠.

그래서 수많은 스크린샷을 HDD로 저장하는데 덤프마다 GM8E1-5가 있으니 알아보기 힘듭니다.

 

변경 전 / 후

CookiePLMonster는 이러면 안 되겠다고 알아챘고, 스크린샷의 끝에 날짜와 시간을 붙이도록 바꿨습니다.

이제 서로 다른 스크린샷은 적절하게 묶여서 언제 찍었는지 알아내기 쉽고, 서로 이름이 겹치지도 않습니다.

이제 새로운 스크린샷은 훨씬 쉽게 정리될 겁니다. 이미 찍은 스크린샷은 어쩔 수 없어요.

네? 뭐라고요? 이전에 찍은 스크린샷을 삭제하면 된다고요?

아니 아니, 그건 안 되죠. 아직 좋은 게 있단 말이에요. 언젠가 유용할 겁니다.

 

 

5.0-10941과 5.0-10943 3D 비전과 스테레오스코피 수정, 5.0-10945 3D 비전 삭제

엔비디아 3D 비전 지원과 일반적인 3D 출력은 흥미로운 기능이었습니다.

우리는 초기 지원으로 재미를 느꼈고, 돌핀은 다양한 3D 디스플레이를 지원합니다.

그렇지만 3D 출력은 돌핀에서 많이 테스트되지 않았고, 기능은 좀 문제가 있습니다.

몇 가지 보고가 올라오고 큰 문제를 해결하기 위한 패치도 봤지만, 3D 출력은 꽤 오랜 시간 손대지 않았습니다.

모니터 제조사들이 오래 전에 스테레오스코피 지원을 관둔 것은 물론, 엔비디아도 스테레오스코피의 대표 설정이었던 엔비디아 3D 비전을 지포스 드라이버 419 버전에서 없애서 더욱 어려웠죠.

 

엔비디아 3D 비전 사용자에게 5.0-10945에서 3D 비전을 중단한다고 발표하게 되어 슬픕니다.

3D 비전의 지원을 중단하기 전에, Billiard는 지원을 완전히 복구하고 제대로 작동하지 않게 막는 큰 문제들을 해결하며 희망을 주었습니다. 5.0-10943에서는 3D 비전이 이전의 영광을 되찾았지요!

3D 비전이 중요한 사람이라면 돌핀에서 가능한 최고의 3D 비전 경험을 위해 5.0-10943을 써야합니다.

 

돌핀이 3D 출력을 포기한다는 의미는 아닙니다. 나머지 3D 모드는 더 많은 수정 사항으로 업데이트했습니다.

게임이 실행되는 동안 3D 지원을 켜고 끄는 것도 고쳤죠

엔비디아 3D 비전이 없어졌지만 그럼에도 돌핀의 3D 지원은 새로운 VideoCommon과 함께 하게 되었고, 우리의 백엔드 사이에서 어느 때보다 더 잘 작동할 겁니다.

이런 업데이트는 앞으로 할 일의 기초를 닦는데 도움이 되죠.

 

 

https://ko.dolphin-emu.org/blog/2019/10/05/dolphin-progress-report-august-and-september-2019

댓글