Dolphin 에뮬레이터, 아케이드 게임 지원 및 성능 대폭 향상!

by DD
2개월 전
조회수 12

Dolphin 에뮬레이터가 Triforce 아케이드 시스템(Triforce Arcade System) 에 대한 지원을 추가하여 18년 만에 새로운 시스템 에뮬레이션을 시작함

Rogue Squadron II & III 게임의 성능을 대폭 향상시키는 MMU(Memory Management Unit) 에뮬레이션 최적화를 구현함

Mario Strikers Charged의 온라인 동기화 문제를 해결하기 위해 5년간의 노력을 통해 CPU 명령어(CPU Instruction) 에뮬레이션을 개선함

커뮤니티의 적극적인 참여와 기여를 통해 에뮬레이터 개발의 난제들을 극복하고, 오픈소스 프로젝트의 중요성을 강조함

Triforce 아케이드 시스템(Triforce Arcade System) 에뮬레이션 지원

Dolphin은 2016년 이후 중단되었던 Triforce 아케이드 시스템(Triforce Arcade System) 지원을 부활시켜, F-Zero AX, Mario Kart Arcade GP 등 아케이드 게임을 에뮬레이션할 수 있게 되었다. 특히, IC 카드(IC Card) 지원을 통해 게임 내 추가 기능(예: 캐릭터 생성, RPG 요소)을 활성화할 수 있게 되었다. 이는 단순한 게임 실행을 넘어, 아케이드 게임의 완전한 경험을 제공하는 것을 목표로 한다. 현재는 The Key of Avalon의 터치스크린 프로토콜을 분석하고 있으며, OWABI 카드에 대한 정보 부족으로 어려움을 겪고 있다.

Rogue Squadron 게임 성능 최적화

Dolphin은 Rogue Squadron II & III의 성능 향상을 위해 페이지 테이블(Page Table) 기반의 Fastmem 매핑을 구현했다. 특히, 게임 내 ARAM(Audio RAM) 접근 방식을 분석하여, 커스텀 메모리 핸들러(Custom Memory Handler)를 사용하는 게임의 성능을 대폭 개선했다. 또한, Branch Following 기능 비활성화JIT(Just-In-Time) 코드 최적화를 통해 뷰 전환 시 발생하는 스터터링 현상을 완화했다. 이러한 최적화는 고사양 하드웨어에서 Rogue Squadron III를 풀 스피드로 실행할 수 있게 하는 결과를 가져왔다.

Mario Strikers Charged 온라인 동기화 문제 해결

Dolphin 개발팀은 Mario Strikers Charged의 온라인 플레이 시 발생하는 desync 문제를 해결하기 위해 5년간의 노력을 기울였다. 문제의 원인은 Fused Multiply-Add (FMA) 명령어의 부정확한 에뮬레이션으로, 32비트 입력에 대한 64비트 FMA 연산의 double rounding 오류가 desync를 유발했다. 이를 해결하기 위해, 입력의 정밀도 손실 여부에 따라 32비트 또는 64비트 FMA 명령어를 선택적으로 사용하도록 수정했다. 이로써, Dolphin과 실제 Wii 간의 온라인 플레이가 안정적으로 가능해졌다.

게임 로딩 속도 개선 및 SDL 힌트 설정

Dolphin은 네트워크 드라이브에서 게임을 실행할 때 발생하는 로딩 문제를 해결하기 위해, 게임을 RAM에 로드하는 기능을 추가했다. 이를 통해 NAS(Network Attached Storage) 장치에서 게임을 실행할 때 발생하는 스터터링 현상을 완화할 수 있다. 또한, SDL 힌트 설정(SDL Hints Settings)을 GUI에 통합하여, 컨트롤러 관련 문제를 해결하고 Joy-Con 설정을 유연하게 조정할 수 있도록 했다. 이러한 기능들은 사용자 경험을 개선하고, 다양한 하드웨어 환경에서의 호환성을 높이는 데 기여한다.

Dolphin Progress Release 2603