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.
Das Projekt jsGB ist ein in Javascript geschriebener Emulator für Nintendos Gameboy, der direkt im Browser läuft. Der Game Boy erschien 1989. 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. Laut Nazar gibt es Unterschiede zwischen den CPUs. Wie er die CPU-Emulation umgesetzt hat, erklärt Nazar auf seiner Webseite im Detail.
Zur Darstellung der Inhalte setzt Nazar auf das HTML5-Element Canvas, 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. Außerdem wird der Quellcode des Projekts 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.







schön wie viel ahnung du hast. ist dir eigentlich bewusst was du da für einen...
Er macht es ganz einfach "weil er's kann". Das reicht als Begründung um als...
Link? :>
exakt.
[ ] Du kennst Unterschied zwischen Java und JavaScript.
Kommentieren