Emulator programmieren
-
Hallo zusammen,
Ich weiß nicht ob ich hier richtig bin, ich hoffe es aber mal, hat ja schon was mit Spielen etc. zu tun...Also es geht um folgendes: Ich möchte einen Emulator programmieren, ich habe mir auch schon einiges zu dem Thema durch gelesen aber ich habe noch einige Fragen wo ich hoffe das ihr die beantworten könnt
Also kurz zu meinen Fähigkeiten bevor es heißt ich könnte nichts, falls aber wirklich was fehlt was für meinen Zweck wichtig ist bitte nennen!
1. Einige Erfahrung mit der Programmierung von Mikrocontrollern in C (AVR)
2. Einige Erfahrung mit C
3. Basics in C++
4. Basics in C++ mit QT (ist eher hier unwichtig)Und einige andere Sprachen die eher unwichtig sind (PHP etc.)
So zu Thema:
Ich habe vor zu beginn einen Z80 Emulator zu programmieren, der soll recht einfach sein und das kann man auch noch testen durch z.B. einen Gameboy Emulator.
Ich habe es jetzt so verstanden, dass ich ein Programm nehme das für die zu emulierende CPU geschrieben wurde und dann die Befehlscodes auslesen und dann diese zu deuten und die passende Aktion auszuführen.
Also z.B. ich habe Code XYZ der will dass ich 0x00 nach 0x1D schreibe, also lege ich mir im Emulator einen virtuellen Speicher an (je nach zu emulierender Hardware) und schreibe dort an 0x1D den Wert 0x00. Dann gehe ich die anderen Befehle durch.
Stimmt das soweit?
Das beutet dann das ich mir bewusst sein muss wie die Hardware aussieht, was passiert wenn ich in ein Register etwas schreibe und wie ich das darstelle oder?Also wenn ich z.B. einen Gameboy emuliere und ich etwas in den Video - RAM schreibe muss ich auch dem Video Chip emulieren der dann den RAM ausliest und darstellt oder?
Danke schon mal
-
Ja, du musst halt die komplette Hardware nachbilden. RAM, Register, IO usw. Da gehört schon noch ein bisschen mehr dazu, aber der Z80 wird eher einfach aufgebaut, schätz ich mal. Zumindest im Vergleich zu einem Core i7.