Game Boy / Color-Architektur
(copetti.org)- Die Game-Boy-Familie bündelt innerhalb eines geringen Energiebudgets DMG-CPU-SoC, PPU, APU, Boot-ROM und Game Pak zu einem System, das CPU, Grafik, Audio, Kompatibilität und Kopierschutz einer Handheld-Konsole zusammenfasst
- Die CPU basiert auf Sharps SM83-Kern und läuft mit etwa 4,19 MHz; die CPU CGB des Game Boy Color behält dieselbe Familie bei und erhöht im Dual-Speed-Modus auf etwa 8,38 MHz
- Die Grafik basiert auf einem 160×144-LCD und einer VRAM-basierten PPU, die Tiles, Hintergrund, Sprites und Fenster kombiniert; das Color-Modell erweitert die Ausdrucksmöglichkeiten mit 16 KB VRAM, einer 32.768-Farben-Palette und zusätzlichem DMA
- Für Audio ist eine 4-Kanal-APU zuständig, und das Game Pak verwendet einen Memory Bank Controller, um über den grundlegenden 32-KB-Adressraum hinauszugehen; externe Kommunikation wird über das Link-Kabel und beim Color über Infrarot unterstützt
- Das Boot-ROM prüft das Nintendo-Logo und die ROM-Header-Prüfsumme, bevor das Spiel gestartet wird; diese Logo-Anforderung fungierte als Mechanismus zur Vertriebskontrolle unter Nutzung von Urheberrecht und Markenrecht
Umfang und Designausrichtung der Game-Boy-Familie
- Die Game-Boy-Serie kann als portable Version des NES gesehen werden, ist aber keine bloße Verkleinerung, sondern eine Struktur mit eigenen Funktionen und Erweiterungsrichtungen
- Die Marke Game Boy erstreckt sich über zwei Generationen
- Zur 4. Generation gehören der monochrome Game Boy und Überarbeitungen wie Game Boy Pocket und Light
- Zur nächsten Generation gehört der nach dem Virtual Boy veröffentlichte Game Boy Color
- Der Schwerpunkt der Analyse liegt auf der Grundstruktur des monochromen Game Boy und darauf, wie diese Struktur im Color-Modell erweitert wurde
CPU- und Speicherstruktur
- Nintendo entschied sich statt mehrerer Universalchips auf dem Mainboard für ein Single-Chip-Design, das CPU und zentrale Komponenten enthält
- Dieses SoC wird DMG-CPU oder Sharp LR35902 genannt
- Es wurde von der Sharp Corporation hergestellt und war vorteilhaft für Energieeffizienz, Kopierschutz und zusätzliche I/O entsprechend den Anforderungen von Nintendo
- Da der Chip nicht über Retail-Kataloge erhältlich war, konnten Wettbewerber ihn nicht ohne Weiteres kopieren
-
SM83-CPU-Kern
- Der Hauptprozessor innerhalb der DMG-CPU ist der Sharp SM83
- Er ist eine Mischform aus Zilog Z80 und Intel 8080 und arbeitet mit etwa 4,19 MHz
- Der SM83 behält nur einen Teil der Funktionen von Z80 und 8080 bei
- Die Z80-Register
IXundIYsowie die 8080-BefehleINundOUTfehlen - I/O-Ports können nicht verwendet werden, daher müssen Komponenten speicherabgebildet sein
- Da nur der Registersatz des Intel 8080 vorhanden ist, gibt es 7 allgemeine Register
- Von den erweiterten Z80-Befehlen ist nur ein Teil der Bitmanipulationsbefehle implementiert
- Die Z80-Register
- Sharp ergänzte außerdem neue Befehle, die weder im Z80 noch im 8080 vorhanden sind
LDHwurde für den Zugriff auf die letzten 256 Byte des Speichermappings ab Adresse$FF00entworfen- Dadurch ist der Befehl 1 Byte kürzer und kann etwas schneller arbeiten
-
Änderungen an der CPU des Game Boy Color
- Der Game Boy Color enthält mit CPU CGB ein neues SoC, behält den SM83-CPU-Kern jedoch weitgehend bei
- Die größte Ausnahme ist die Taktfrequenz, die sich auf etwa 8,38 MHz verdoppelt
- Durch die Beibehaltung desselben CPU-Kerns konnten Entwickler ihr vorhandenes Programmierwissen weiterverwenden, während Kosten für eine neue Architektur und der Aufwand für Abwärtskompatibilität sanken
- Die CPU CGB bietet zwei Betriebsmodi
- Normal mode: Der SM83 läuft mit etwa 4,19 MHz
- Dual-speed mode: Der SM83 läuft mit etwa 8,38 MHz
- Diese Entscheidung bedeutete Ende der 1990er-Jahre zugleich, ältere Technik weiter mitzuschleppen
-
Adressraum und RAM
- Der SM83 behält einen 8-Bit-Datenbus und einen 16-Bit-Adressbus, womit sich maximal 64 KB Speicher adressieren lassen
- Das Memory Map besteht aus Game-Pak-Bereich, WRAM, HRAM, VRAM, I/O für Joypad, Audio, Grafik und LCD sowie Bereichen zur Interrupt-Steuerung
- Auf dem ursprünglichen Game-Boy-Mainboard befanden sich 8 KB WRAM als allgemeiner Speicher, also die vierfache Kapazität des NES
- Im SoC befinden sich außerdem 127 B HRAM
- Es handelt sich um einen kleinen Bereich, auf den mit dem
LDH-Befehl schneller zugegriffen werden kann - Der HRAM-Bus selbst ist technisch nicht schneller als WRAM, aber die CPU hat dort Vorrang
- Das ist wichtig, wenn die CPU während DMA-Vorgängen nicht auf externen Speicher zugreifen kann
- Es handelt sich um einen kleinen Bereich, auf den mit dem
- Der Game Boy Color erhöht den WRAM auf 32 KB
- Die Adressierungsfähigkeit der CPU bleibt unverändert, daher kann nicht der gesamte Speicher gleichzeitig verbunden werden
- Für den Zugriff auf die zusätzlichen 24 KB WRAM wird Bank Switching verwendet
- Die letzten 4 KB des bestehenden 8-KB-Bereichs werden zwischen 7 Banken umgeschaltet
- Das Register
SVBKdient zur Auswahl der WRAM-Bank
Grafik: PPU, LCD und Layer-Aufbau
- Die Game-Boy-Grafik ist so aufgebaut, dass die CPU Berechnungen ausführt, während eine separate PPU im DMG-CPU-SoC das Bild rendert
- Das integrierte LCD bietet eine Auflösung von 160×144 Pixeln
- Das monochrome LCD des Game Boy stellt nur vier Graustufen dar: Weiß, Hellgrau, Dunkelgrau und Schwarz
- Durch das grünstichige LCD wirkt das Bild leicht grün
- Alle Game-Boy-Modelle laufen mit vier AA-Batterien, anders als Heimkonsolen, die von regionalen Netzfrequenzen abhängen
- CPU-Takt und Bildwiederholrate unterscheiden sich daher nicht nach Region
- Die Bildwiederholrate beträgt 59,7 Hz
-
VRAM und Tile-basiertes Rendering
- Die PPU ist exklusiv mit 8 KB VRAM verbunden und liest den Großteil der für das Rendering nötigen Daten von dort
- Einige Daten mit höherem Geschwindigkeitsbedarf werden innerhalb der PPU gespeichert
- Der CPU-Zugriff auf VRAM wird von der PPU vermittelt; Spiele müssen den VRAM-Bereich mit den korrekten Daten füllen
- Die grundlegende Rendering-Einheit ist das Tile
- Ein Tile ist ein 8×8-Pixel-Bitmap
- Jedes Tile belegt 16 Byte
- Es wird im Bereich Tile set oder Tile pattern table des VRAM gespeichert
- Farben werden über Paletten aus den vier Graustufen ausgewählt
- Der monochrome Game Boy kann bis zu 3 Paletten definieren, deren Nutzung jedoch je nach gerendertem Layer eingeschränkt ist
-
Hintergrund, Sprites und Fenster
- Das endgültige Bild besteht aus drei überlappenden Layern
- Der Hintergrund-Layer ist 256×256 Pixel groß, also eine 32×32-Tile-Map
- Auf dem tatsächlichen Bildschirm sind nur 160×144 Pixel sichtbar
- Das Spiel wählt den darzustellenden Hintergrundbereich und verschiebt ihn, um Scroll-Effekte umzusetzen
- Für den Hintergrund-Layer wird nur 1 Palette verwendet
- Sprites sind Tiles, die sich unabhängig bewegen können
- Sie können sich gegenseitig überlappen oder hinter dem Hintergrund liegen
- Die Anzeigepriorität wird durch das Attribut priority bestimmt
- Mit der zusätzlichen Transparenzfarbe bleiben effektiv 3 darstellbare Graustufen übrig
- Es kann eine von 2 dedizierten Paletten gewählt werden
- Sprite-Definitionen werden im OAM (Object Attribute Memory) innerhalb der PPU gespeichert
- Spiele rufen üblicherweise OAM-DMA auf, um Daten aus RAM oder ROM nach OAM zu kopieren
- Während DMA aktiv ist, kann die CPU nicht auf externen Speicher zugreifen
- Jeder OAM-Eintrag enthält Tile-Index, X/Y-Position, Palette, Priorität sowie Flags für vertikale und horizontale Spiegelung
- Das Sprite-Rendering der PPU hat Grenzen
- maximal 10 pro Scanline
- maximal 40 pro Frame
- Wird das Limit überschritten, werden manche Sprites nicht gezeichnet
- Der Fenster-Layer ist eine 160×144-Pixel-Map und kann den gesamten Bildschirm bedecken
- Er wird über Hintergrund und Sprites gerendert
- Er scrollt nicht
- Für den Fenster-Layer kann nur die eine verbleibende Tile-Map zugewiesen werden
- Er teilt sich dieselbe Palette mit dem Hintergrund
- Er ist nicht transparent und verdeckt die darunterliegenden Layer vollständig, kann aber zusammen mit timingbasierten Rastereffekten teilweise genutzt werden
- Spiele verwenden den Fenster-Layer vor allem für Lebensanzeigen, Punkte und dauerhaft eingeblendete Informationen
-
Frame-Aktualisierung und Rastereffekte
- Die CPU kann Tabellen nicht verändern, während die PPU VRAM liest
- Das System stellt Interrupts bereit, die ausgelöst werden, wenn die PPU im Leerlauf ist
- Horizontal Blank beginnt nach dem Ende einer Scanline und erlaubt Anpassungen an noch nicht gezeichneten Teilen des Frames
- Vertical Blank beginnt nach Abschluss aller Scanlines und ermöglicht die Aktualisierung der Grafik für den nächsten Frame
- OAM search tritt zu Beginn einer Scanline auf; während die PPU die Sprites für diese Zeile bestimmt, können Bereiche außer OAM aktualisiert werden
- Dank Fenster-Layer und zusätzlicher Interrupts können Teile eines Frames geändert werden, bevor der gesamte Bildschirm gezeichnet ist
- Wenn pro Scanline unterschiedliche Scroll-Werte angewendet werden, entsteht ein Wobble-Effekt, bei dem sich jede Zeile mit anderer Geschwindigkeit bewegt
Grafikerweiterungen des Game Boy Color
- Die PPU des Game Boy Color arbeitet wie eine Obermenge der ursprünglichen PPU und bietet aus Kompatibilitätsgründen zwei Betriebsmodi
- CGB mode: liefert visuelle Verbesserungen für Game-Boy-Color-Titel
- DMG mode: traditioneller Modus mit deaktivierten Erweiterungen
- Auf dem Mainboard des Game Boy Color befinden sich 16 KB VRAM
- Das ist doppelt so viel wie zuvor
- Wegen der CPU-Adressgrenze besteht der Speicher aus 2 Banken zu je 8 KB
- Das Register
VBKdient zum Umschalten der VRAM-Bank
- Die PPU kann auf beide VRAM-Banken gleichzeitig zugreifen
- Entwickler füllen die VRAM-Bank mit
VBK - Gibt die Tile-Map an, in welcher Bank sich ein Tile befindet, verarbeitet die PPU dies entsprechend
- Entwickler füllen die VRAM-Bank mit
- Der zusätzliche VRAM wird für doppelt so viele Tiles, mehr Paletten, erweiterte Tile-Metadaten sowie zusätzliche Paletten- und Effektverweise genutzt
-
Farben und zusätzliches DMA
- Die neue PPU des Game Boy Color kann Paletten aus 32.768 Farben definieren
- Entwickler speichern bis zu 16 Farbpaletten im Palette Memory
- 8 für Hintergrund/Fenster, 8 für Sprites
- Jede Palette kodiert 4 Farben
- Jeder Eintrag ist ein 16-Bit-Wert, tatsächlich werden jedoch nur 15 Bit verwendet
- Palette Memory kann von der CPU nicht direkt adressiert werden; neue Register fungieren als Schreibpuffer
- Hintergrund- und Fenster-Tiles können auf eine von 8 Paletten verweisen
- Auch Sprite-Tiles können auf 8 Paletten verweisen, jedoch bleibt ein Eintrag weiterhin für die Transparenzfarbe reserviert, sodass die Beschränkung auf 3 Farben bestehen bleibt
- Das Tile-Set wird doppelt so groß und kann daher doppelt so viele Tiles im VRAM speichern
- Auch die Tile-Maps für Hintergrund und Fenster werden erweitert und können mehr Metadaten enthalten
- Hintergrund- und Fenster-Tiles können vertikal und horizontal gespiegelt werden, wodurch weniger doppelte Grafik im VRAM gespeichert werden muss
- Die CPU CGB enthält eine zusätzliche DMA-Einheit zum Kopieren von Daten in den VRAM
- Es kann vom Game Pak oder WRAM in den VRAM kopiert werden
- General-purpose DMA kann jederzeit übertragen, beansprucht währenddessen aber die Priorität beim Speicherzugriff und kann Tearing verursachen
- H-Blank DMA überträgt nur während des H-Blank und vermeidet dadurch Bildartefakte, ist aber auf 16-Byte-Einheiten beschränkt und pausiert während des LCD-Scans
Audio: 4-Kanal-APU
- Für Audio ist die APU (Audio Processing Unit) zuständig; sie arbeitet nach dem Prinzip eines Programmable Sound Generator und bietet insgesamt 4 Kanäle
- Die APU gehört zu den Komponenten, die sich über die Game-Boy-Revisionen hinweg nicht verändert haben
- Sie lässt sich anders als die CPU nicht beschleunigen
- Eine Änderung der Oszillatorgeschwindigkeit verbessert nicht die Klangqualität, sondern verändert die Tonhöhe
- Für mehr Funktionen müssten zusätzliche Schaltungen ergänzt werden, was die Kosten erhöht
-
Kanalaufbau
- Es gibt 2 Pulswellen-Kanäle, die hauptsächlich für Melodien und Soundeffekte verwendet werden
- Durch Veränderung der Pulsbreite liefern sie 4 Klangfarben
- Der erste Kanal besitzt eine eigene sweep control
- Wegen der begrenzten Kanalzahl kann die Melodie im Spiel unterbrochen werden, wenn Soundeffekte abgespielt werden
- Der dritte Kanal unterstützt benutzerdefinierte Wellenformen
- Eine Wellenform aus 32 Samples zu je 4 Bit wird in einer Wavetable gespeichert
- Lautstärke und Frequenz lassen sich steuern
- Es gibt 1 Rauschkanal
- Er besteht aus einer Sammlung zufälliger Wellenformen, die wie weißes Rauschen klingen
- In Spielen wird er vor allem für Schlagzeug oder Umgebungsgeräusche verwendet
- Er bietet die zwei Klangcharaktere clean static und robotic static, außerdem lässt sich die Frequenz anpassen
- Es gibt 2 Pulswellen-Kanäle, die hauptsächlich für Melodien und Soundeffekte verwendet werden
-
Mixer und erweiterte Audio-Pins
- Der Mixer bietet Stereo-Ausgabe, sodass Kanäle links und rechts platziert werden können
- Der eingebaute Lautsprecher ist mono, daher ist Panning nur über den Kopfhörerausgang hörbar
- Die Mixer-Hardware ist auch mit dedizierten Pins des Moduls verbunden
- Wenn ein Modul über zusätzliche Hardware analogen Klang ausgibt, können zusätzliche Kanäle gestreamt werden
- Veröffentliche Spiele nutzten diese Funktion nicht
- In der Game-Boy-Advance-Ära wurde diese Funktion entfernt
Boot-ROM und Betriebsweise
- Der Game Boy bootet nicht wie NES/Famicom direkt ins Spiel, sondern startet zunächst aus einem internen 256-Byte-ROM
- Der grundlegende Boot-Ablauf ist wie folgt
- Beim Einschalten beginnt die CPU bei Adresse
0x0000zu lesen - RAM und APU werden initialisiert
- Die Nintendo-Logo-Grafik aus dem Cartridge-ROM wird in den Display-RAM kopiert und im oberen Bildschirmbereich angezeigt
- Wenn kein Cartridge vorhanden ist oder es nicht korrekt eingesetzt wurde, kann das Logo als beschädigte Tiles erscheinen
- Das Logo scrollt nach unten und der ikonische Sound wird abgespielt
- Das Nintendo-Logo des Spiels wird mit dem Logo im Konsolen-ROM verglichen
- Am Header des Cartridge-ROM wird eine schnelle Prüfsumme ausgeführt
- Schlägt die Prüfung fehl, bleibt die Konsole stehen
- Das Konsolen-ROM wird aus dem Memory Map entfernt
- Die CPU beginnt mit der Ausführung des Spiels
- Beim Einschalten beginnt die CPU bei Adresse
- Das auf dem Bildschirm angezeigte Nintendo-Logo wird nicht aus dem VRAM gelöscht, sodass ein Spiel darauf Animationen oder Übergangseffekte anwenden kann
-
Änderungen beim Boot des Game Boy Color
- Die ROM-Größe des Game Boy Color steigt auf 2 KB
- Die Boot-Sequenz prüft, ob das eingesetzte Spiel ein reines Game-Boy-Spiel oder ein Game-Boy-Color-Spiel ist
- Bestimmte Metadaten im Cartridge-ROM werden geprüft und abhängig vom Ergebnis Register gesetzt, die den DMG- oder CGB-Modus aktivieren
- Wenn ein DMG-Spiel eingesetzt ist, füllt das Boot-Programm den Palette RAM mit berechneten Paletten
- Es verwendet dafür einen einfachen Algorithmus, der von den Spielmetadaten abhängt
- So erscheinen monochrome Spiele auf dem Game Boy Color eingefärbt
- Während des Bootens kann der Benutzer die ausgewählte Palette mit Tastenkombinationen ändern
- Das Nintendo-Logo wird zusätzlich in den HRAM kopiert
- In der Prüfsummenphase wird nur die vordere Hälfte des Logos im HRAM geprüft
Game Pak, Spieleentwicklung und externe Kommunikation
- Leistungsrelevante Spiele dieser Zeit wurden meist in Assemblersprache geschrieben, da Compiler für höhere Programmiersprachen noch nicht ausgereift genug waren
- Kommerzielle Spiele wurden auf Nintendos Game Pak-Modulen für den Game Boy vertrieben
- Der grundlegende Speicherplatz ist wegen der Adressraumgrenzen auf maximal 32 KB beschränkt
- Mit einem Memory Bank Controller, also Mapper, sind größere Spiele möglich
- Das größte veröffentlichte Game Pak enthielt beim ursprünglichen Game Boy 1 MB ROM und beim Game Boy Color 8 MB ROM
- Einige Game Paks enthielten eine Echtzeituhr, zusätzlichen SRAM und eine externe Batterie zur Datenerhaltung
-
Modultypen in der Color-Ära
- Mit dem zusätzlichen Betriebsmodus des Game Boy Color lassen sich Spiele in drei Typen einteilen
- Game Boy: vollständig kompatibel mit allen Game-Boy-Modellen und läuft immer im DMG-Modus
- Game Boy Color enhanced: kompatibel mit monochromen Modellen und auf dem Game Boy Color im CGB-Modus visuell verbessert
- Game Boy Color exclusive: nur mit dem Game Boy Color kompatibel und für die Nutzung dieser Hardware optimiert
- Die drei Typen hatten offizielle Farben zur einfacheren Unterscheidung
- Einige Spiele wie Pokémon und Donkey Kong verwendeten davon abweichende Designs
- Mit dem zusätzlichen Betriebsmodus des Game Boy Color lassen sich Spiele in drei Typen einteilen
-
Link-Kabel und Infrarot
- Game-Boy-Spiele konnten erstmals über das Game Boy Link-Kabel mit externer Hardware kommunizieren, was Multiplayer und Zubehör ermöglichte
- Das Link-Kabel wird an den 6-poligen Sub-Connector der Konsole angeschlossen, und die Schnittstelle verwendet das Protokoll SPI (Serial Peripheral Interface)
- Ein Game Boy treibt als Master das Taktsignal, das andere Gerät arbeitet als Slave
- Bei jeder Übertragung tauschen Master und Slave jeweils ein 8-Bit-Paket aus
- Die Übertragungsrate des ursprünglichen Game Boy beträgt 8 Kbit/s, also 1 KB/s
- Der Game Boy Color erreicht im High-Speed-Modus bis zu 512 Kbit/s, also 64 KB/s
- Nintendo veröffentlichte außerdem einen 4-Player Adapter, damit bis zu 4 Game Boys gleichzeitig Daten austauschen können
- Das grundlegende SPI bleibt erhalten
- Der Adapter arbeitet als Master und implementiert eine zusätzliche Kommunikationsschicht, der das Spiel folgen muss
- Der Game Boy Color enthält einen Infrarot-Transceiver
- Er besteht aus LED und Fototransistor
- In Titeln wie Pokémon Gold wurde er für drahtlosen Datenaustausch genutzt
- Das System selbst implementiert kein Kommunikationsprotokoll
- Ein einzelnes Register
RPkodiert das Verhalten des IR-Sensors, das Sende-Bit und das zuletzt empfangene Bit - Nintendo stellte im offiziellen Game Boy Developer Manual eine Referenzimplementierung bereit
Struktur des Kopierschutzes
- Die Konsole startet Spiele nicht sofort, sondern führt zunächst mehrere Prüfungen aus, um die Ausführung nicht autorisierter Module zu verhindern und zu kontrollieren, ob das Modul korrekt eingesetzt ist
- Damit die Prüfung bestanden wird, musste ein Spiel im ROM-Header eine Kopie des Nintendo-Logos in Tile-Form enthalten
- Nintendo konnte dadurch Urheberrecht und Markenrecht zur Kontrolle des Vertriebs einsetzen
- Im späteren Fall Sega v. Accolade wurde entschieden, dass die Nutzung eines urheberrechtlich geschützten Logos zur Erfüllung solcher Anforderungen unter Fair Use fällt, was Unternehmen entsprechende Rechte einräumte
- Zusätzlich konnten Spiele selbst weitere Kopierschutzmaßnahmen implementieren
- Bei Bootlegs wurde häufig eine größere SRAM-Größe geprüft
- An beliebigen Stellen während des Spiels konnte eine ROM-Prüfsumme ausgeführt werden, um Änderungen am Code zu erkennen
1 Kommentare
Meinungen auf Hacker News
Das wirklich Herausragende an der ursprünglichen Entwicklung des Game Boy war, dass das Team von Gunpei Yokoi damals auf großes Misstrauen stieß.
Nach dem Motto: „Warum sollte man im Bus oder auf der Toilette spielen wollen, das ist doch unbequem. Zu Hause kann man mit Familie und Freunden vor dem Fernseher auf dem Sofa spielen, und das neueste Erlebnis bekommt man in der Spielhalle. Wer will schon Batterien wechseln und nur ein paar Graustufen sehen?“
Ihre Vision war es, verwelkte Technik zu nehmen und sie in ein leicht bedienbares Gerät mit einfachen, kurzen Spielen zu verpacken; ich würde sagen, dieses Team hat im Grunde Mobile Gaming gestartet.
Kinder in den 1970ern spielten bereits mit tragbaren LED-Spielen von Mattel im Bus und auf der Toilette, und ich hatte mindestens sechs, vielleicht sogar acht davon. Eines der frühesten Beispiele ist https://en.m.wikipedia.org/wiki/Mattel_Auto_Race von 1976.
Beliebter waren Sportspiele wie American Football, Baseball und Basketball, und ihre Regeln waren deutlich komplexer als bei Auto Race: https://www.ebay.com/p/2255363696
Anfang der 1980er gab es auch viele tragbare LCD-Spiele wie Dungeons and Dragons: https://en.m.wikipedia.org/wiki/Dungeons_%26_Dragons_Compute... (1981)
„Mattel stated that the game immediately sold out.“ Sie nutzten zwar keine Cartridges, aber besonders LCD-Spiele waren billig und klein, sodass es kein Problem war, mehrere davon zu besitzen.
Heute nennt man solche Geräte „handhelds“, um sie von den tragbaren Geräten der Game-Boy-Generation zu unterscheiden, aber soweit ich mich erinnere, nannte man sie damals nicht so. Der Punkt ist: In den 1970ern und frühen 1980ern gab es bereits einen erfolgreichen Markt, und Nintendo hat ihn nicht geschaffen, sondern den bereits erfolgreichen Markt für cartridgebasierte Konsolen mit dem Markt für tragbare Spiele kombiniert und weiterentwickelt.
Ich sehe, dass der Game Boy Color ergänzt wurde, aber der Teil mit der Cartridge-Größe von nur 1 MB scheint nicht korrigiert worden zu sein. Einige GBC-Spiele gingen bis 4 MB.
Außerdem gibt es ein Zugspiel mit kurzen Videos und High-Color-Bildern, das sogar 8 MB groß ist.
https://www.youtube.com/watch?v=S62dSVmLPU0
Die Fenstergröße des Moduls ist in beiden Fällen im Grunde gleich, 32 KB, und ob 4 MB oder 1 MB: Das Bank Switching übernimmt die Cartridge-Seite.
Der Game Boy ist mit Abstand meine Lieblingskonsole aller Zeiten. Ich entwickle gerade ein Game-Boy-Spiel in Assembler, einen Pinball-Dungeon-Crawler.
Die Hardware ist leicht zu verstehen, und die Einschränkungen zwingen einen dazu, kreativ zu sein.
Florent Gorges hat ein Buch veröffentlicht, das sich ausschließlich mit dem Game Boy befasst; leider scheint es keine englische Übersetzung zu geben. Ich habe es auf Spanisch gekauft, und es enthält exklusive Interviews mit den Entwicklern.
https://www.amazon.es/Historia-Nintendo-Vol-4-1989-1999-INCR...
Könnte man beim heutigen Stand der demokratisierten Hardware mit passenden Bauteilen und einer verdrahteten PCB einen Game Boy nachbauen?
FunnyPlaying hat kürzlich eine preislich vernünftige FPGA-basierte Version herausgebracht: https://funnyplaying.com/products/fpgbc-kit?variant=40858870...
Für den Game Boy Advance gibt es auch neue Mainboards mit bestückten Komponenten, auf die man CPU und RAM transplantieren muss.
Wenn man Hardware-Treue will, dürfte es schwierig werden, die Kosten für ein handliches Einzelgerät in einen „demokratisierten“ Preisbereich zu bringen.
Wozu willst du die Architektur des Game Boy lernen, willst du die Erde hacken?