Frage

Ich habe den Aufbau eines Emulator für die Wii einige Lesung über die Menschen getan, und es scheint, dass da es nichts mehr als ein aufgepeppt GameCube ist, oder der Nintendo64, macht so was so hart für diese Systeme Emulatoren bauen?

Auf einer geringfügigen Spitze einer Seite für diese Systeme die Hardware zu beachten ist überraschend gering:
Wii:
729MHz PPC CPU
88 MB Speicher
243MHz GPU
N64:
93.75MHz CPU (64-Bit)
4MB Speicher

War es hilfreich?

Lösung

Die CPU-Architektur für Spielkonsolen ist oft etwas exotisch im Vergleich mit dem durchschnittlichen Desktop-Rechner. Emulation bedeutet in Software alles, was die ursprüngliche Hardware tat auszuführen. Das heißt, während die ursprüngliche Konsole dedizierte Grafik gehabt haben können, Audio usw. Chips sowie eine CPU mit einem anderen Befehlssatz, der Emulator alle Funktionen dieser parallelen Ressourcen bei der Geschwindigkeit durchführen müssen.

Es sei denn, der Konsole GPU alt ist, ist es fast sicher muss auf der GPU der Host-Maschine emuliert werden, wie moderne Grafikkarten, auch billig sind, haben oft den Durchsatz (für Grafik Workloads) selbst die teuersten Multi-Core-CPUs . Compounding diese Schwierigkeit ist die Tatsache, dass die Kommunikation zwischen CPU, GPU, alle anderen an Bord DSPs und Speicher war wahrscheinlich auf der Konsole hoch optimierte Ausnutzung der Besonderheiten der Hardware-Konfiguration zu übernehmen, und deshalb müssen diese Ressourcen Rate angepassten als gut.

all diese Schwierigkeiten Compounding, ist in der Regel wenig über die Besonderheiten der Konsole Hardware bekannt, da dies sehr viel unter Verschluss von Design gehalten wird. Reverse Engineering ist immer weniger möglich für Bastler zu tun.

Um die Dinge in Perspektive zu setzen, ein architektonisches Simulator (ein Programm, das ausgeführt werden kann, beispielsweise mit einem PowerPC-Programm auf einer x86-Maschine und sammelt all möglichen Statistiken über sie) könnte zwischen 1000x und 100000x langsamer als in Echtzeit ausgeführt werden. Eine RTL-Simulation (eine Simulation aller Gatter und Flip-Flops, die einen Chip bilden) in der Regel nur aus einem modernen CPU laufen zwischen 10 Hz und einigen hundert Hz. Selbst sehr optimierte Emulation ist wahrscheinlich zwischen 10 und 100 Mal langsamer als native Code, so zu begrenzen, was überzeugend heute emuliert werden kann (vor allem der Echtzeit-Interaktivität durch eine Spielkonsole Emulator implizit angegeben).

Andere Tipps

Es gibt eine Reihe von Gründen, warum Emulation schwierig ist.

  1. ein System emulieren erfordert viel mehr Leistung als das Zielsystem

Manchmal muss das Host-System eine Größenordnung mehr Leistung (Geschwindigkeit) als das Zielsystem. Das ist leicht zu verstehen, wenn Sie die Host-Maschine betrachten die ganze Arbeit des ursprünglichen Systems tun muss, und dann etwas mehr Arbeit der gesamte Kommunikation zwischen den Komponenten zu verwalten, während auch die Systemressourcen mit anderen Anwendungen teilen. Deshalb ist es ein 2-GHz-Prozessor braucht, um getreu ein SNES zu emulieren, die bei einer measly 21MHz läuft.

  1. Manchmal sind die Befehlssätze und / oder Subsystem Funktionsweise unbekannt sind Menschen

Die meisten Hardware ist im Wesentlichen eine Blackbox und zu verstehen, wie es funktioniert, ist durch Reverse Engineering herausgefunden, die viel Zeit und Geduld braucht. Ganz zu schweigen davon, versuchen Unternehmen, ihr Bestes zu machen Reverse Engineering schwierig und Unternehmen bekommen haben, viel besser zu diesem Beitrag Playstation 1-Ära.

  1. Mangel an Menschen Gebäude Emulatoren

Emulation ist eine ziemlich Nische, die eine Menge Kenntnisse in vielen Bereichen erfordert. Um ehrlich zu sein, es gibt nicht viele Leute in der Lage, viele der modernen Systeme zu emulieren. diese Systeme emulieren braucht viel Zeit und Mühe, und nur die engagiertesten wird es tatsächlich tun.

Schreiben Emulatoren ist hart, weil Sie genau muss / komplett / absolut Hardware Verhalten sagt replizieren, einschließlich es ist O Verhalten in der Software.

Schreiben Emulatoren für ältere Konsolen waren in einigen Fällen schwieriger als Emulatoren für moderne Konsolen zu schreiben. Denn verwenden eine Menge moderne Konsolen irgendeine Form von Linux oder * nichts so einmal die Hardware emuliert Software ist eine Frage der BIOS des Computers Dumping und Handhabung über die Kontrolle.

ältere Konsolen haben alles in der Hardware, was bedeutet, dass das Reverse Engineering eine viel größere Rolle gespielt. Sie benötigt sehr gut niedrigem Niveau Hacker Ihnen helfen, dokumentieren, wie die alte Konsole funktioniert hat und was jede magische Zahl bedeutet.

Heute gibt es weniger magische Zahlen, sondern Standard-GFX-Karten und CPUs. Obwohl moderne Hardware viel mehr Anweisungen und glänzend doodads hat zu emulieren. Vieles, was die moderneren Konsolen tun gut dokumentiert ist, im Gegensatz zu älteren Konsolen.

Es ist nur, weil das Spielprogramm für diese spezielle Hardware geschrieben, damit es seine alle Hardware-Vorteile nutzen können. Selbst wenn Sie einen Super-Computer haben, können sie nicht richtig ein bestimmten Programme ausführen, die nicht auf die Hardware des Supercomputers selbst kommuniziert kann. Die gleiche Situation, wenn Sie PC-Spiele auf Konsolen wie PS3 / 4 oder Xbox One laufen. Der einzige Emulator, der 99% arbeitet, ist Snes Emulator und PS1.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top