게임 콘솔 에뮬레이터를 개발하기가 어려운 이유는 무엇입니까?


14

나는 항상 에뮬레이터가 오히려 매혹적인 것을 발견했습니다. 구식 콘솔 또는 핸드 헬드 용 에뮬레이터를 만들고 싶습니다. 하드웨어와 해당 하드웨어 용으로 제작 된 게임에 대한 인식을 높이는 데 도움이됩니다. 그러나 사람들은 항상 그것이 얼마나 힘들고 시도조차해서는 안된다고 말합니다. 왜 그런지 알고 싶습니다.

또한 시작하기에 좋은 장소에 대한 제안이 필요하며 필요한 정보를 어디서 찾을 수 있습니까?

답변:


15

그래서 질문

이것은 그들이 작동하는 방법에 대한 인기있는 자료 인 것 같습니다.

TL; DR-아키텍처가 완전히 다르기 때문에 원래 아키텍처를 달성하려면 많은 병렬 리소스가 필요합니다.

게임 콘솔의 CPU 아키텍처는 보통 일반 데스크탑 컴퓨터와 비교하여 다소 이국적입니다. 에뮬레이션은 원래 하드웨어의 모든 기능을 소프트웨어에서 수행하는 것을 의미합니다. 즉, 원래 콘솔에는 전용 그래픽, 오디오 등의 칩과 명령 세트가 다른 CPU가있을 수 있지만 에뮬레이터는 이러한 병렬 리소스의 모든 기능을 빠른 속도로 수행해야합니다.

콘솔의 GPU가 오래되지 않는 한 최신 그래픽 카드, 심지어 저렴한 그래픽 카드는 심지어 가장 비싼 멀티 코어 CPU의 처리량 (그래픽 워크로드)의 수배를 갖기 때문에 거의 확실하게 호스트 머신의 GPU에서 에뮬레이션해야합니다. 이러한 어려움을 가중시키는 것은 하드웨어 구성의 특성을 이용하기 위해 CPU, GPU, 기타 온보드 DSP 및 메모리 간의 통신이 콘솔에서 고도로 최적화 된 것이므로 이러한 리소스도 속도가 일치해야합니다.

이 모든 어려움을 복잡하게 만들면 콘솔 하드웨어의 특성에 대해서는 알려진 바가 거의 없습니다. 리버스 엔지니어링은 애호가들이 할 수있는 일이 점점 줄어들고 있습니다.

상황을 파악하기 위해 아키텍처 시뮬레이터 (예 : x86 시스템에서 PowerPC 프로그램을 실행하고 이에 대한 모든 종류의 통계를 수집 할 수있는 프로그램)는 실시간보다 1000 배에서 100000 배 느리게 실행될 수 있습니다. 최신 CPU의 RTL 시뮬레이션 (칩을 구성하는 모든 게이트 및 플립 플롭의 시뮬레이션)은 일반적으로 10Hz에서 수백 Hz 사이에서만 실행할 수 있습니다. 매우 최적화 된 에뮬레이션조차 네이티브 코드보다 10 배에서 100 배 정도 느릴 수 있으므로 오늘날 특히 (게임 콘솔 에뮬레이터가 암시하는 실시간 상호 작용을 통해) 에뮬레이트 할 수있는 것을 제한합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.