Zum Hauptinhalt Zur Navigation

Nintendo-Handheld: Game-Boy-Emulation mit Javascript

Imran Nazar versucht sich daran, einen Emulator in Javascript zu schreiben. Am Ende sollen Game-Boy-Spiele starten und spielbar sein. Noch ist es nicht soweit, aber die Emulation der CPU des alten Handhelds ist schon fertig.
/ Andreas Sebayang
44 Kommentare News folgen (öffnet im neuen Fenster)

Das Projekt jsGB ist ein in Javascript geschriebener Emulator für Nintendos Gameboy, der direkt im Browser läuft. Der Game Boy erschien 1989(öffnet im neuen Fenster) . Nach zwei Jahrzehnten klingt so ein Gerät mit ein paar Megahertzen und gerade einmal 8 KByte RAM nicht gerade schnell. Und die 160 x 144 Pixel, die der Game Boy hat, bekommt selbst ein Mobilbrowser heutzutage leicht hin.

Emuliert wird der Z80 des Game Boy, nicht ein regulärer Z80(öffnet im neuen Fenster) . Laut Nazar gibt es Unterschiede zwischen den CPUs. Wie er die CPU-Emulation umgesetzt hat, erklärt Nazar auf seiner Webseite im Detail(öffnet im neuen Fenster) .

Zur Darstellung der Inhalte setzt Nazar auf das HTML5-Element Canvas(öffnet im neuen Fenster) , mit dem sich dynamische Bitmapgrafiken im Browser anzeigen lassen. Nachdem auch Microsoft angekündigt hat, das Canvas-Element mit dem Internet Explorer 9 zu unterstützen, wird es demnächst in allen gängigen Browsern zur Verfügung stehen.

Noch fehlt dem Emulator aber einiges, um einen Game Boy in Javascript in einem Browser vollständig zu emulieren. So ist die GPU noch nicht ganz fertig und beherrscht beispielsweise keine Sprites. Eine Tonausgabe fehlt komplett. Auch das Keypad, Interrupts und Timer gibt es derzeit nicht. Der Wechsel eines Moduls ist nicht vorgesehen. Das entsprechende virtuelle Game-Boy-Modul wird fest über den Code eingebunden.

Nazar will sich diesen Themen in weiteren Teilen widmen. Als nächstes will der Entwickler unter anderem aufzeigen, wie ein Spiel-Image über das Internet geladen werden kann, und sich die Memory Map des Game Boy genauer anschauen.

Weitere Informationen gibt es in der Readme(öffnet im neuen Fenster) . Außerdem wird der Quellcode des Projekts(öffnet im neuen Fenster) auf Github bereitgestellt.

Die Emulation des Z80 ist nicht die einzige CPU-Emulation in Javascript. Der niederländische Entwickler Tim de Koning hat beispielsweise einen C64-Emulator als Quellcode veröffentlicht . Auch er bedient sich des Canvas-Elements von HTML5 für die grafische Darstellung.


Relevante Themen