문제

나는 Wii를위한 에뮬레이터를 구축하는 사람들에 대해 약간의 독서를 해왔으며, 그것이 강화 된 Gamecube 또는 Nintendo64보다 더 이상 아무것도 없다는 것을 감안할 때,이 시스템을위한 에뮬레이터를 빌드하는 이유는 무엇입니까?

약간의 부수적 으로이 시스템의 하드웨어는 놀랍게도 낮습니다.
Wii :
729MHz PPC CPU
88MB 메모리
243MHz GPU
N64 :
93.75MHz CPU (64 비트)
4MB 메모리

도움이 되었습니까?

해결책

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

콘솔의 GPU가 오래되지 않는 한, 최신 그래픽 카드, 심지어 저렴한 카드조차도 가장 비싼 멀티 코어 CPU의 처리량 (그래픽 워크로드)을 여러 번 가지고 있기 때문에 호스트 머신의 GPU에 거의 확실하게 모방되어야합니다. 이러한 어려움을 복합화하는 것은 CPU, GPU, 기타 온보드 DSP 및 메모리 간의 통신이 콘솔에서 하드웨어 구성의 세부 사항을 활용하기 위해 크게 최적화되었을 것이므로 이러한 리소스도 비율 일치해야한다는 사실입니다.

이러한 모든 어려움을 복잡하게 만드는 것은 일반적으로 콘솔 하드웨어의 세부 사항에 대해서는 알려진 바가 거의 없습니다. 이는 설계별로 랩을 많이 유지하기 때문입니다. 리버스 엔지니어링은 애호가들이 할 수있는 가능성이 점점 줄어들고 있습니다.

사물을 원근법에 넣기 위해 건축 시뮬레이터 (예 : X86 기계의 PowerPC 프로그램을 실행하고 이에 대한 모든 종류의 통계를 수집 할 수있는 프로그램)는 실시간보다 1000x에서 10000x가 느리게 실행될 수 있습니다. 최신 CPU의 RTL 시뮬레이션 (칩을 구성하는 모든 게이트 및 플립 플롭의 시뮬레이션)은 일반적으로 10Hz에서 수백Hz 사이에서만 실행될 수 있습니다. 매우 최적화 된 에뮬레이션조차도 기본 코드보다 10 ~ 100 배나 느려질 수 있으므로 오늘날 설득력있게 모방 할 수있는 내용을 제한합니다 (특히 게임 콘솔 에뮬레이터가 암시하는 실시간 상호 작용이 포함 된 경우).

다른 팁

에뮬레이션이 어려운 이유는 여러 가지가 있습니다.

  1. 시스템을 모방하려면 대상 시스템보다 훨씬 더 많은 전력이 필요합니다.

때때로 호스트 시스템은 대상 시스템보다 훨씬 더 많은 전력 (속도)이 필요합니다. 호스트 머신이 원래 시스템의 모든 작업을 수행해야한다고 생각하면 이해하기 쉽습니다. 그리고 좀 더 구성 요소 간의 모든 통신을 관리하는 동시에 시스템 리소스를 다른 응용 프로그램과 공유하십시오. 그렇기 때문에 2GHz 프로세서가 21MHz에서 실행되는 SNES를 충실하게 모방하는 이유입니다.

  1. 때로는 지침 세트 및/또는 하위 시스템 작업이 사람들에게 알려지지 않았습니다.

대부분의 하드웨어는 본질적으로 블랙 박스이며, 작동 방식을 이해하는 것은 리버스 엔지니어링을 통해 많은 시간과 인내심이 필요합니다. 말할 것도없이, 회사는 리버스 엔지니어링을 어렵게 만들기 위해 최선을 다하고 회사는이 게시물 PlayStation 1 Era에서 훨씬 나아졌습니다.

  1. 에뮬레이터를 만드는 사람들이 부족합니다

에뮬레이션은 많은 영역에서 많은 실무 지식이 필요한 틈새 영역입니다. 솔직히 말해서, 많은 현대 시스템을 모방 할 수있는 사람들은 많지 않습니다. 이러한 시스템을 모방하려면 많은 시간과 노력이 필요하며 가장 헌신적 인 일만 실제로는 그렇게 할 것입니다.

에뮬레이터를 작성하는 것은 소프트웨어의 OS 동작을 포함하여 하드웨어 동작을 정확하게/완전/절대적으로 복제해야하기 때문에 어렵습니다.

오래된 콘솔에 대한 에뮬레이터를 작성하는 것은 경우에 따라 현대 콘솔에 에뮬레이터를 작성하는 것보다 어려웠습니다. 많은 최신 콘솔이 일부 형태의 Linux 또는 *Nix를 사용하므로 하드웨어가 모방되면 소프트웨어가 기계의 BIO를 버리고 제어를 처리하는 문제입니다.

구형 콘솔은 하드웨어에서 모든 것을 수행했는데, 이는 리버스 엔지니어링이 훨씬 더 큰 역할을했음을 의미합니다. 구식 콘솔의 작동 방식과 각 마법 번호가 의미하는 바를 문서화하는 데 도움이되는 매우 낮은 수준의 해커가 필요했습니다.

오늘날에는 마법의 숫자가 적지 만 표준 GFX 카드와 CPU가 있습니다. 최신 하드웨어에는 더 많은 지침과 반짝이는 두르 드가 모방 할 수 있습니다. 더 현대적인 콘솔이하는 많은 일은 오래된 콘솔과 달리 잘 문서화되어 있습니다.

게임 프로그램이 특정 하드웨어에 대해 작성되어 모든 하드웨어 이점을 활용할 수 있기 때문입니다. 슈퍼 컴퓨터가 있더라도 슈퍼 컴퓨터 자체의 하드웨어에 전달할 수없는 특정 프로그램을 제대로 실행할 수 없습니다. PS3/4 또는 Xbox One과 같은 콘솔에서 PC 게임을 실행하는 경우 동일한 상황입니다. 99% 작동하는 유일한 에뮬레이터는 SNES 에뮬레이터 및 PS1입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top