In JavaScript wurde eine unglaubliche Zahl an Anwendungen geschrieben. Von den einfachen Anwendungen der Frühzeit zu den mittlerweile komplexen Anwendungen der Neuzeit. So ist es zum Beispiel möglich das Nintendo Entertaiment System, zu dem in einem wissenschaftlichen Paper folgendes steht:
1 Introduction
The Nintendo Entertainment System is probably the best video game console, citation not needed.
zu emulieren. Im Browser läuft das Ganze dann mit einer Framerate von 60 frames per second und lässt sich flüssig spielen:
Der NES-Emulator CycloaJS
Neben diesem Emulator gibt es eine Unzahl an weiteren Emulatoren für die unterschiedlichsten Systemen angefangen bei Konsolen wie dem SNES, dem GameBoy über alte DDR-Computer wie den KC85 bis hin zu älteren Großrechnern wie der PDP-11. Eine Sammlung dieser in JavaScript geschriebenen Emulatoren ist auf in dem GitHub-Repository jsemu zu finden.
Im Oktober 2004 erblickte der Emulator bsnes das Licht der Welt. Im Gegensatz zu anderen Emulatoren für das Super Nintendo Entertainment System hatte bsnes einen Vorteil: er emulierte die Spiele akkurat. Erreicht wurde dies dadurch das der Emulator das SNES ohne irgendwelche Hacks und Abkürzungen emulierte. Stattdessen wurden die einzelnen Chips, wie der SPC 700 oder der Super FX Chip, taktgenau emuliert. Das wiederum wirkte sich auf die Systemvorraumsetzungen aus, so das bsnes entsprechend CPU lastig war. Dieser Aufwand bei der Emulation führte dazu das bsnes der einzige SNES-Emulator war, welcher alle kommerziell erhältlichen Spiele des SNES fehlerfrei emulieren konnte.
Die aktuelle Version des Emulators bsnes
Im Laufe der Jahre wurde aus bsnes der Emulator higan. Dieser emulierte nicht nur das SNES, sondern auch andere Systeme wie das Nintendo Entertainment System, die Game Boy-Familie und das Sega Master System. In der Community kamen Versionen wie bsnes-classic auf, welche versuchten die ursprüngliche Version weiterzuentwickeln. Mitte Mai verkündete byuu die Wiederaufnahme des bsnes-Projektes.
Neben der Auskopplung als Standalone SNES Emulator, welcher den Kern von higan nutzt, soll das ganze aufgrund eines auf mehrere Thread aufgeteilten Rendering entsprechend performant aber auch akkurat emuliert werden. Im Gegensatz zum ursprünglichen bsnes, soll ein verstärkter Fokus auf eine einfache Handhabung gelegt werden. Dies umfasst unter anderem das direkte Laden von ROMs, das automatische Mapping von Gamepads und die Unterstützung für Soft-Patching. Kurz zusammengefasst hat es byuu in der entsprechenden Ankündigung:
The goal is to provide all of the recent higan SNES emulation improvements and the SNES preservation project work to a wider audience.
Bezogen werden kann die aktuelle Version von bsnesüber die Projektseite. Aktuell stehen nur Binaries für Windows zur Verfügung; Linux und macOS sollten allerdings folgen. Der dazugehörige Quellcode (bzw. der von higan) befindet sich auf GitLab und ist unter der GPL in Version 3 lizenziert. Damit ist higan und das wieder aufgelegte bsnes freie Software.
Für den Raspberry Pi gibt es eine Reihe von Distribution, welche die unterschiedlichsten Themengebiete, vom Konsolen-Linux zur grafischen Oberfläche, bis hin zu Spezialanwendungen, wie Media Center-Anwendungen, abbilden. Eine Distribution, welche sich der einfachen Emulation verschrieben hat ist RecalBox. Ziel der Distribution ist die Bereitstellung eines Paketes mit welchem man sofort starten kann. Dabei wird eine große Anzahl von Systemen vom NES, SNES und weiteren Nintendo-Konsolen, bis zu SEGA-Konsolen und weiteren Systemen unterstützt. Insgesamt enthält Recalbox eine Unterstützung für über 40 Systeme. Für die Installation reicht es aus, die Installationsdateien auf eine entsprechende SD-Karte zu kopieren und diese in den Raspberry Pi einzulegen. Anschließend startet eine NOOBS-Installation und danach kann die Recalbox genutzt werden.
Das EmulationStation-Frontend
Bluetooth-Controller werden, ein externes Bluetooth-Dongle vorausgesetzt, beim Start erkannt und können anschließend einfach konfiguriert werden. Die aktuelle Version der Recalbox trägt die Versionsnummer 4.0.2 und hat in Verbindung mit dem Raspberry Pi 3 ein kleines Problem; das interne Bluetooth-Modul wird nicht unterstützt. Dies wird erst mit Version 4.1 geschehen, allerdings ist der Release-Termin dieser Version noch nicht festgelegt. Auf der GitHub-Seite des Projektes findet sich dazu die Anzeige der entsprechenden Punkte welche vor dem Release noch erledigt werden sollen. Für die Nutzung der aktuellen Version benötigt man damit zwangsläufig einen externen Bluetooth-Dongle.
Für das Frontend zur Auswahl der Spiele und der entsprechenden Konsole wird EmulationStation genutzt. Als eigentliches Emulator-Frontend wird RetroArch genutzt. Der jeweils konkrete Emulatorkern, kann über die EmulationStation-Einstellungen konfiguriert werden. Zur Verwaltung der ROMs und der Recalbox-Konfiguration wird eine Weboberfläche bereitgestellt. Standardmäßig ist diese unter der URL:
http://recalbox.local
erreichbar. Im Recalbox Web Manager können ROMs per Drag & Drop hochgeleaden werden, das System überwacht und die Konfiguration angepasst werden. Auf dem Host recalbox.local läuft daneben ein SSH-Dienst mit welchem sich über das Terminal verbunden werden kann:
ssh
Das Standardpasswort für den root-Account lautet recalboxroot. Der Quelltext der unterschiedlichen Subprojekte der Recalbox sind auf GitHub zu finden. Im Großen und Ganzen funktioniert Recalbox als Lösung Out of the Box sehr gut. Zu finden ist Recalbox unter recalbox.com.
Wenn man ein Spiel emuliert, so fehlt trotz genauer Emulation meist etwas. Die Rede ist vom passenden Controller. Allerdings muss man hier nicht ewig auf dem trockenen Sitzen bleiben. Dank den Controllern von 8Bitdo kann man das Retro-Gefühl in vollen Zügen genießen.
Die Produktpalette von 8Bitdo
Bei den Controllern, welche dem Original sehr stark nachempfunden sind, handelt es sich ausnahmslos um Bluetooth-Controller. Wer diese am Originalgerät nutzen möchte, findet die entsprechenden Bluetooth-Adapter für die Original-Konsolen ebenfalls bei 8Bitdo. Die Verarbeitung der Controller ist dabei ausgezeichnet, so das man ohne Bedenken zugreifen kann.
Der ein oder andere hat sicherlich noch ein paar Module einer Spielkonsole zu Hause herumzuliegen. Also was läge näher als sich die passende Konsole per eBay und Konsorten zu bestellen? Wenn man neben den NES-Modulen auch noch ein paar Sega Mega Drive Module sein eigenen nennt wird es komplizierter, denn dann benötigt man schon zwei Konsolen. Aber soweit muss es nicht kommen – RetroN ist angetreten diese Probleme zu lösen.
Dabei handelt es sich um eine angekündigte Konsole, welche Modulslots für NES, SNES, Genesis, Mega Drive und Game Boy Module besitzt und diese Module natürlich auch abspielen kann. Neben dem mitgelieferten Controller ist es auch möglich die Original-Controller anzuschließen. Die Ausgabe der Spiele erfolgt dabei per HDMI in 720p. In Europa soll RetroN für etwa 90 € erhältlich sein. Die offizielle Seite ist unter retron5.com zu finden.