[blog] ESP GameBoy Cartridge

  • Der gute alte GameBoy ist noch immer nicht aus der Welt der Bastler verschwunden.
    War ja auch ein tolles Spielzeug.
    Ewigkeiten damit gezockt und hat mir auch nur wenig geschadet.
    Naja, es fehlt halt ein Vergleichs-Ich für eine ordentliche Bewertung.

    Damals gab es noch kein Internet, und warum sollte also ein GameBoy WLAN haben?
    Tja, das sieht heute schon anders aus.

    Eine GameBoy-ESP8266 Cartridge. Ich steh total auf son' Zeug :)


    Sebastian Staacks hatte die Idee, den ESP an den Bus anzuschließen und dann den ganzen Schnittstellen-Unfug in die Software zu verlagern.
    Das funktioniert unter bestimmten Umständen gut, aber für die GB-Schnittstelle ist das nicht so einfach.
    Der GB wird von einem Sharp LR35902 angetrieben, der mit etwas mehr als 4 MHz läuft, aber sein Maschinentakt dauert vier Takte, was eine Befehlsrate von nur 1 MHz ergibt.
    Das Cartridge-Interface stellt den rohen CPU-Bus direkt zur Verfügung.
    Das ist voll gut,
    weil es alle Arten von Erweiterungsmodulen wie Kameras, Drucker und andere benutzerdefinierte Peripheriegeräte ermöglicht,
    aber es ist auch echt übel,
    weil die Last der Verbindung mit der CPU bei voller Geschwindigkeit direkt ans Cartridge geleitet wird.

    Anstatt zu versuchen, den Bus direkt an den ESP anzuschließen, hat er einen anderen Ansatz gewählt:
    durch die Dekodierung des Adressbusses mit diskreter Logik war es anscheinend einfach, Chip-Selects für einen eingebetteten ESP8266 sowie für ein gesockeltes EEPROM abzuleiten.
    Der Takt für das EEPROM wird ebenfalls in den ESP8266 geschickt und erzeugt einen Interrupt, um ihn aufzuwecken.
    Das EEPROM speichert eine einfache Anwendung, deren Aufgabe es ist, eine OSD-Tastatur darzustellen und über den ESP8266 Anfragen an Wikipedia zu senden.
    Der resultierende Text wird dann auf dem 160×144 Punktmatrix-Display angezeigt.
    Die Interrupt-Latenz des ESP8266 wurde dadurch gemildert, dass die Anwendung einfach das erste an sie gesendete Datenbyte verwarf und den Zugriff erneut versuchte.
    Auf diese Weise konnte der ESP8266 die meiste Zeit mit Surfen verbringen und musste nur ab und zu ein Byte mit der Anwendung austauschen.

    Quelle:
    https://github.com/Staacks/wifi-game-boy-cartridge

    All das hat er auch sehr schön im Video erklärt:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!