Letzte Schritte und Fazit
Zum fertigen Emulator fehlen nur noch wenige Details. Einige davon sind eher kosmetischer Natur, beispielsweise, dass der Emulator pausiert wird, wenn sein Fenster nicht den Eingabefokus hat. Das ist einfach umzusetzen, da jede grafische Oberfläche Methoden anbietet, die einem Fenster Ereignisse zu seinem Zustand mitteilen. Verliert das Fenster den Fokus, wird die Emulation pausiert, bis es ihn zurückerhält.
Dann ist da noch die Auswahl der ROMs. Dafür hatte ich mal eine Datenbank geplant, das erscheint mir aber mittlerweile übertrieben. Stattdessen würde ich einfach ein festes Verzeichnis durchsuchen, da im ROM alle relevanten Informationen zu finden sind (mehr dazu im ersten Teil). Ist der ROM ausgewählt, können alle zu ihm gehörenden Modul-RAM-Dateien gesucht und die gewünschte ausgewählt werden.
Etwas ganz Wichtiges fehlt allerdings noch: Bislang lässt sich das emulierte Spiel gar nicht steuern. Die Tasten des Gameboys werden mittels eines Registers als 2-x-4-Matrix abgefragt. Dafür wird eines von zwei Bits gesetzt, wodurch vier der acht Tasten gelesen werden. Hier ist mal wieder spezieller Code notwendig. Wird eines der Auslese-Bits gesetzt, setzt er die vier Ergebnis-Bits auf null oder eins - abhängig davon, ob entsprechende Tasten auf der Tastatur gedrückt sind.
Was hat es mir gebracht?
Als Informatiker hatte der Emulator für mich einen besonderen Reiz: Ich konnte hier einen großen Teil des Wissens aus dem Studium nutzen. Seien es Datenstrukturen - auch wenn eine sortierte Liste keine große Herausforderung ist - oder Betriebssysteme. Ich habe mich mit Dingen auseinandergesetzt, zu denen ich vorher keinen großen Bezug hatte, wie dem Linux-Scheduler.
Natürlich kommt auch eine große Portion Rechnerarchitektur ins Spiel. Auch hier konnte ich Dinge praktisch nutzen, die ich aus Vorlesungen und Praktika kannte. Einige unerwartete Dinge kamen hinzu, beispielsweise hatte ich erstmals Kontakt mit einem digitalen Filter - was mich motiviert hat, mich in das Thema einzuarbeiten. Auch zu Dingen, die man normalerweise ganz alltäglich nutzt und nie bemerkt, bekam ich einen praktischen Bezug, wie zur Abtastratenkonvertierung.
Nicht zuletzt hat mich das Projekt zum Staunen gebracht, wie viel mit wenig Silizium und Software entstehen kann. Aus den wirklich einfachen Möglichkeiten der Hardware entstehen mit einigen Tricks interessante Effekte. Zwar sind sie kein Vergleich zu aktueller Technik, beleben jedoch die Spiele ungemein. Und das Beste: Alles, was im Prozessor vorgeht, ist innerhalb kurzer Zeit verständlich.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Bild und Ton müssen stimmen |
Ja, das ist richtig, aber auf der Ebene dessen, was ich an Code schreibe, findet er nicht...