Forum: Mikrocontroller und Digitale Elektronik Emulatoren. Wie werden sie gemacht?


von Lothar-Alois Engelbarth (Gast)


Lesenswert?

Ja, wie läuft da eigentlich?

Was müsste ich wissen und tun um einen Emulator zu bauen? Wie bauen 
Leute zB GBA-Emulatoren? Wie sieht so ein Programm aus, wie ist es 
aufgebaut... und woher wissen diese Leute wie sie es machen müssen, wie 
es aussehen muss damit es funktioniert? Woher haben sie Kenntnisse über 
die Plattform, die doch meistens geschlossen ist?

von TriHexagon (Gast)


Lesenswert?

Sie haben diejenige Architektur/Plattform gründlich studiert.

von TriHexagon (Gast)


Lesenswert?

Zusatz: falls sie nicht an Dokumentation/Datenblätter rankommen, müssen 
sie "reverse engineering" betreiben.

von Uwe B. (derexponent)


Lesenswert?

Lothar-Alois Engelbarth schrieb:

> Was müsste ich wissen und tun um einen Emulator zu bauen?

falls es ein System ist, für das es schon Quellen gibt,
würde ich mich an diesen orientieren

für den GBA z.B. gibt es ALLES an Informationen die man braucht
schon fertig im Netz. Von der Emulation der CPU über Schaltpläne
bis hin zum Aufbau der Cartrige Hardware und Software.

Wenn es ein "neues" System ist, für das es bis jetzt noch keinen
Emulator gibt, dürfe für dich das ganze nicht machbar sein

Gruss

von Stefan (Gast)


Lesenswert?

Falls du dich wirklich für Emulation interessierst dann wäre Chip-8 eine 
gute erste Anlaufstelle:
http://de.wikipedia.org/wiki/CHIP-8
http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/

von Cyblord -. (cyblord)


Lesenswert?

> und woher wissen diese Leute wie sie es machen müssen, wie
> es aussehen muss damit es funktioniert? Woher haben sie Kenntnisse über
> die Plattform, die doch meistens geschlossen ist?

Irgendwie könnte man diese Frage auf wirklich ALLES anwenden

von Reinhard Kern (Gast)


Lesenswert?

Lothar-Alois Engelbarth schrieb:
> Woher haben sie Kenntnisse über
> die Plattform, die doch meistens geschlossen ist?

Das gibt es normalerweise nicht, ausser bei Apple. Ein Prozessor oder 
ein System muss vollständig dokumentiert sein, wenn Dritte was damit 
anfangen sollen, z.B. Software schreiben. Ein Prozessor, dessen Befehle 
nicht bekannt sind, ist völlig unnütz, und für einen Emulator braucht 
man die gleichen Kenntnisse wie für eine Anwendung oder ein Spiel.

Gruss Reinhard

von Peter II (Gast)


Lesenswert?

Reinhard Kern schrieb:
> Das gibt es normalerweise nicht, ausser bei Apple. Ein Prozessor oder
> ein System muss vollständig dokumentiert sein, wenn Dritte was damit
> anfangen sollen, z.B. Software schreiben.

Merkwürdig das Leute für Apple Software schreiben können ohne eine Doku 
für die Prozessor jemals gelesen zu haben.

Wenn man ich Compiler oder ASM schreibt, spielt die genau Funktion des 
Prozessor kaum eine rolle.

von User (Gast)


Lesenswert?

Reinhard Kern schrieb:
> Das gibt es normalerweise nicht, ausser bei Apple. Ein Prozessor oder
> ein System muss vollständig dokumentiert sein, wenn Dritte was damit
> anfangen sollen, z.B. Software schreiben. Ein Prozessor, dessen Befehle
> nicht bekannt sind, ist völlig unnütz, und für einen Emulator braucht
> man die gleichen Kenntnisse wie für eine Anwendung oder ein Spiel.
>
> Gruss Reinhard

Nur sind diese Informationen oft kostenpflichtig, nicht mehr vorhanden 
oder auch unvollständig.

Beispiel IBM VGA: Die Register sind von IBM grob dokumentiert, die 
feinen Zusammenhänge, oft Timing, darf man sich selber 'reversen'.

von Fpgakuechle K. (Gast)


Lesenswert?

Peter II schrieb:

> Wenn man ich Compiler oder ASM schreibt, spielt die genau Funktion des
> Prozessor kaum eine rolle.

???

von Achim_42 (Gast)


Lesenswert?

1
replace(&text[0], "n ich C", "n nicht (gerade) C");

von Achim_42 (Gast)


Lesenswert?

Zur eigentlichen Frage.
Habe selbst mal für GB entwickelt und mich mit dem Innereien 
beschäftigt. Im Netz findest sich praktisch alle Informationen, die man 
braucht, Zusammentragen aus Reverse-Engineering und wahrscheinlich auch 
nicht ganz offiziellen Wegen.
Zum Beispiel hat der GB (nicht GBA) einen Prozessor, der Z80 kompatibel 
ist. Und über Z80 gibts ja genügend Infos. Also musste man sich nur noch 
um die speziellen Teile kümmern. LCD Controller usw.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.