Der Speicher

Neben den Prozessorbefehlen ist es wichtig, den Aufbau des Adressraums zu kennen. Der Prozessor arbeitet mit 8-Bit-Werten, nutzt aber einen 16 Bit breiten Adressbus und kann so auf 64 KByte Speicher zugreifen. Im Adressraum finden sich neben Arbeits- und Grafikspeicher auch der ROM des Spielemoduls sowie eventuell auf diesem vorhandener RAM. Auch auf die Register der anderen Hardwarekomponenten kann hierüber zugegriffen werden.

Daneben gibt es noch zwei kleinere Speicher, die im Chip integriert sind. Dabei handelt es sich zum einen um einen ROM, in dem sich eine Firmware befindet. Sie überprüft nach dem Start des Gameboys, ob ein autorisiertes Spielemodul eingesetzt ist und initialisiert die Register. Damit kann ein Spiel beispielsweise prüfen, ob es auf einem klassischen Gameboy oder dem Gameboy Color läuft. Zum anderen sind 127 Byte RAM integriert, die für den Programmstack und spezielle Warteroutinen genutzt werden.

Den größten Teil des Adressraums nimmt der ROM des Spielemoduls ein. Er belegt die untere Hälfte (0x0000 bis 0x7fff) und ist in zwei Segmente mit je 16 KByte aufgeteilt. Am unteren Ende wird nach dem Start des Gameboys der Firmware-ROM eingeblendet. Erkennt er ein legitimes Spiel, startet er es und blendet sich aus.

Speicher mit besonderer Bedeutung

Einige Speicherbereiche haben eine spezielle Funktion und werden von bestimmten Hardwarekomponenten genutzt. Der Grafikhardware stehen gleich zwei spezielle Speicher zur Verfügung: der Grafikspeicher, der als SRAM-Modul auf der Platine sitzt, und der Object Attribute Memory (OAM). Auf beide geht der nächste Abschnitt genauer ein.

Darüber hinaus existiert eine Menge von Hardware-Registern. Über sie kontrolliert das Programm, was beispielsweise Grafik- und Sound-Hardware tun. Auch für die entgegengesetzte Richtung gibt es Register, über die die Hardware mitteilt, was sie gerade macht. Manche der Hardware-Register lösen direkt eine Aktion aus. Das sollte ein Emulator beachten, um das Verhalten des Systems korrekt nachzubilden.

Eine besondere Bedeutung hat auch der Beginn des Adressbereichs. Nach dem Einschalten befindet sich an Adresse 0x0000 der Firmware-ROM. Er erwartet im ROM von Adresse 0x0100 bis 0x014f Informationen über das Spielemodul, unter anderem das Nintendo-Logo, das er nutzt, um zu prüfen, ob das Modul authorisiert ist. Einige der weiteren Informationen werden später noch nützlich sein. Nachdem sich die Firmware ausgeblendet hat, wird der Bereich von 0x0000 bis 0x0067 als Einsprungpunkte zur Interrupt-Behandlung genutzt. Für jeden der dreizehn existierenden Interrupts stehen acht Byte zur Verfügung.

Wie emuliert man Speicher?

Speicher zu emulieren, klingt zunächst einmal nicht schwer. Einfach ein ausreichend großes Array anlegen, eventuell Daten hineinschreiben, fertig. Praktisch klappt das allerdings aus zwei Gründen nicht. Der erste ist, dass Schreiben in ein Register einer Hardwarekomponente in dieser eine Aktion auslösen kann. Auch liest man bei Hardware-Registern oft nicht das zurück, was hineingeschrieben wurde. Der zweite Grund, weshalb die Emulation der Speicher etwas komplexer ist, liegt im ROM-Bereich. Er wird nämlich nicht nur gelesen, oft wird hier auch geschrieben, den Grund dafür sehen wir später noch.

Um das komplexe Verhalten der verschiedenen Speicher nachzubilden, habe ich eine Klasse geschrieben, die den Zugriff regelt. Sie verfügt über Methoden, um Werte zu lesen und zu schreiben. Besonders elegant ginge das mit C++, indem der Operator für Arrayzugriffe (eckige Klammern) überladen wird; in meiner Java-Implementierung erledigen das zwei Funktionen. Die Klasse an sich delegiert Zugriffe nur an andere Klassen, die den verschiedenen Adressbereichen zugeordnet sind. Sie tun dann, was auch immer die jeweilige Hardware täte - im Fall der RAM-Bereiche bilden sie tatsächlich nur auf ein Array ab.

Nach dem Prozessor ist die Grafikeinheit die zweitwichtigste Komponente. Denn ohne Bild macht kein Spiel Spaß. Also schauen wir uns an, wie die Bilder auf das Display kommen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Einen Prozessor mit Software nachbauenDie Grafikeinheit 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9.  


mipi 06. Jun 2022

+1 Bin schon auf den Folgeartikel zur Umsetzung der parallel stattfindenden HW-Abläufe...

TarikVaineTree 05. Jun 2022

Sheep It Up ist für mich ein Musterbeispiel eines Homebrewspiels für den GB. Simpel...

Kakiss 29. Mai 2022

Ich finde es daher umso erstaunlicher, wie die Leute Cores für den Mister erstellen. Ich...

Olstyle 29. Mai 2022

Zuerst noch einmal vielen Dank für den Artikel. Bei aller Abkürzung hätte ich mir aber...



Aktuell auf der Startseite von Golem.de
Apple
Vision Pro zwischen Finger-Tracking-Lob und Gewicht-Kritik

Sehr gutes Bild, nahezu perfekte Bedienung aber ein bisschen zu schwer: Die ersten Hands-ons von Apple Vision Pro sind insgesamt positiv.
Ein Bericht von Peter Steinlechner

Apple: Vision Pro zwischen Finger-Tracking-Lob und Gewicht-Kritik
Artikel
  1. Zen 4c Bergamo: So schrumpft AMD die Epyc-Kerne um fast die Hälfte
    Zen 4c Bergamo
    So schrumpft AMD die Epyc-Kerne um fast die Hälfte

    Bis zu 128 Kerne stellt AMD gegen ARM-Server-Prozessoren und Intels E-Cores. Kompromisse und neue Technik machen die kleineren Kerne möglich.

  2. WD Black C50: Western Digital bietet Speicherkarten für Xbox Series X/S an
    WD Black C50
    Western Digital bietet Speicherkarten für Xbox Series X/S an

    Mehr als zwei Jahre nach dem Start der Xbox Series X/S/S bietet Western Digital eigene Speicherkarten an. Noch ist kein Preisdruck zu sehen.

  3. Diablo 4 im Test: Blizzards Meisterwerk definiert das Genre neu
    Diablo 4 im Test
    Blizzards Meisterwerk definiert das Genre neu

    Unsere Hoffnungen bewahrheiten sich: Diablo 4 ist der beste Teil der exzellenten Spieleserie, an der sich auch Konkurrenten messen müssen.
    Ein Test von Oliver Nickel

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • PS5-Spiele & Zubehör bis -75% • Samsung 990 Pro 1TB (PS5) 94€ • AirPods 2 125€ • Crucial SSD 1TB 41,99€ • Thrustmaster T300 RS 299,99€ • Bis 50 % auf Gaming-Produkte bei NBB • PS5 inkl. Spiel 549€ • MSI RTX 4070 Ti 999€ • MindStar: AMD Ryzen 7 5800X3D 285€, RX 7900 XTX 989€ [Werbung]
    •  /