13.01.2015 Aufrufe

Nintendo GameBoy - Weblearn.hs-bremen.de

Nintendo GameBoy - Weblearn.hs-bremen.de

Nintendo GameBoy - Weblearn.hs-bremen.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Lehrveranstaltung: RST-L<br />

Rechnerstrukturen Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong>


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Bemerkung <strong>de</strong>r Autoren<br />

Die Information in dieser Ausarbeitung wer<strong>de</strong>n ohne Rücksicht auf einen Patentschutz<br />

veröffentlicht.<br />

Warennamen wer<strong>de</strong>n ohne Gewährleistung <strong>de</strong>r freien Verwendbarkeit benutzt.<br />

Bei <strong>de</strong>r Zusammenstellung von Texten und Abbildungen wur<strong>de</strong> mit größter Sorgfalt<br />

vorgegangen.<br />

Trotz<strong>de</strong>m können Fehler nicht vollständig ausgeschlossen wer<strong>de</strong>n.<br />

Die Autoren können für fehlerhafte Angaben und <strong>de</strong>ren Folgen we<strong>de</strong>r eine juristische<br />

Verantwortung noch irgend eine Haftung übernehmen.<br />

Für Verbesserungsvorschläge und Hinweise auf Fehler sind die Autoren dankbar.<br />

Seite 2


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Inhaltsverzeichnis:<br />

1. Einleitung .....................................................................................................................4<br />

2. Der interne Aufbau <strong>de</strong>s <strong>GameBoy</strong>..............................................................................5<br />

2.1 Der CPU-Kern <strong>de</strong>s <strong>GameBoy</strong>....................................................................................6<br />

2.1.1 Der geän<strong>de</strong>rte OpCo<strong>de</strong> <strong>de</strong>s <strong>GameBoy</strong>.................................................................7<br />

2.2 Die Speicherbelegung <strong>de</strong>s <strong>GameBoy</strong>........................................................................9<br />

2.2.1 Die Speicherauswahllogik <strong>de</strong>s <strong>GameBoy</strong> .............................................................10<br />

2.2.2 Die Speicherauswahl <strong>de</strong>s <strong>GameBoy</strong> ....................................................................10<br />

2.3 Der Soundgenerator <strong>de</strong>s <strong>GameBoy</strong>...........................................................................11<br />

2.3.1 Die Soundgeneratorschaltkreise <strong>de</strong>s <strong>GameBoy</strong> ...................................................12<br />

2.3.2 Die Mono/Stereo Auswahleinheit <strong>de</strong>s <strong>GameBoy</strong> ..................................................13<br />

2.4 Das Vi<strong>de</strong>osystem <strong>de</strong>s <strong>GameBoy</strong> ...............................................................................14<br />

2.4.1 Der Aufbau von Hintergrundbildschirm und Fenster <strong>de</strong>s <strong>GameBoy</strong>......................15<br />

3. Die Cartridge <strong>de</strong>s <strong>GameBoy</strong>........................................................................................16<br />

4. Die serielle Schnittstelle <strong>de</strong>s <strong>GameBoy</strong> .....................................................................18<br />

5. Die PowerUp-Sequenz <strong>de</strong>s <strong>GameBoy</strong> ........................................................................19<br />

6. Die Entwicklungsoberflächen für <strong>de</strong>n <strong>GameBoy</strong>.......................................................20<br />

7. Quellen .........................................................................................................................22<br />

8. Anhang .........................................................................................................................23<br />

Anhang A ( Sound Register ) ....................................................................................23<br />

Anhang B ( Display Register) ....................................................................................26<br />

Anhang C ( SIO Register)..........................................................................................28<br />

Anhang D ( Schaltpläne) ...........................................................................................29<br />

Seite 3


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

1. Einleitung<br />

Der <strong>GameBoy</strong> ist, nach Game&Watch, das zweite Handheld von <strong>Nintendo</strong>. Er erschien am<br />

18. April 1989 zum ersten Mal auf <strong>de</strong>m japanischen Markt. Obwohl im Erscheinungsjahr<br />

schon zwei Handheld, das Atari Lynx und das Turbo Express GT von NEC auf <strong>de</strong>m Markt<br />

waren, ist <strong>de</strong>r <strong>GameBoy</strong> fast 10 Jahre später immer noch Marktführer, was Handheld betrifft.<br />

Wie konnte sich <strong>de</strong>r <strong>GameBoy</strong> mit einem vier Graustufen-Display durc<strong>hs</strong>etzten, obwohl die<br />

Konkurrenz damals schon mit Farbbildschirmen arbeitete.<br />

Atari war <strong>de</strong>r erste, <strong>de</strong>r sein Handheld auf <strong>de</strong>m Markt hatte. Dieses war schon mit einem<br />

Farbbildschirm ausgestattet, aber <strong>de</strong>r gravierendste Nachteil war die Größe <strong>de</strong>s Handheld.<br />

NEC hatte in diesem Punkt Vorteile und zu<strong>de</strong>m auch eine riesige Palette an Spielen, da man<br />

die Spiele <strong>de</strong>r großen NEC-Konsole auch auf <strong>de</strong>m Handheld spielen konnte. Trotz<strong>de</strong>m<br />

konnte sich NEC auf <strong>de</strong>m Markt nicht durc<strong>hs</strong>etzten, da <strong>Nintendo</strong> gera<strong>de</strong> in <strong>de</strong>n USA<br />

beson<strong>de</strong>rs populär war. Dies wird beson<strong>de</strong>rs <strong>de</strong>utlich, wenn man be<strong>de</strong>nkt, daß je<strong>de</strong> dritte<br />

Familie in <strong>de</strong>n Staaten ein NES besaß. Damit war <strong>de</strong>r Erfolg vom <strong>GameBoy</strong> eigentlich klar<br />

und dieser Erfolg hält bis heute an.<br />

Für <strong>de</strong>n <strong>GameBoy</strong> gibt es mittlerweile nicht nur Spiele, son<strong>de</strong>rn auch die verschie<strong>de</strong>nsten<br />

Zusatzgeräte, wie z.B. die vor kurzem erschienene Kamera, <strong>de</strong>r Drucker und die externe<br />

Tastatur mit Textverarbeitungssoftware.<br />

Fast 10 Jahre nach Markteinführung brachte <strong>Nintendo</strong> einen verbesserten <strong>GameBoy</strong> heraus,<br />

<strong>de</strong>n <strong>GameBoy</strong> Pocket, kurz darauf wur<strong>de</strong> auch eine Variante mit Farbdisplay auf <strong>de</strong>n Markt<br />

gebracht, <strong>de</strong>r <strong>GameBoy</strong> Color.<br />

Folgend ein Vergleich zwischen <strong>de</strong>n <strong>GameBoy</strong> (Die Unterschie<strong>de</strong> zum Gameboy Classic sind<br />

farblich markiert):<br />

<strong>GameBoy</strong> Classic <strong>GameBoy</strong> Pocket <strong>GameBoy</strong> Color<br />

CPU 8bit (Vergleichbar mit Z80) 8bit (Vergleichbar mit Z80) 8bit (Vergleichbar mit Z80)<br />

mit 4.194304 MHz mit 4.194304 MHz mit 4.194304 / 8.388 MHz<br />

RAM 8 KByte 8 KByte 32 KByte<br />

Vi<strong>de</strong>o RAM 8 KByte 8 KByte 16 KByte<br />

Auflösung 160x144 Pixel<br />

20x18 Zeilen<br />

160x144 Pixel<br />

20x18 Zeilen<br />

160x144 Pixel<br />

20x18 Zeilen<br />

Farbe 4 Graustufen 4 Graustufen 256 Farben<br />

Sound 4 Kanäle Pseudo Stereo 4 Kanäle Pseudo Stereo 4 Kanäle Pseudo Stereo<br />

Power DC 6.0V 0.7W DC 3.0V 0.7W DC 3.0V 0.6W<br />

In dieser Ausarbeitung halten wir uns vorrangig an <strong>de</strong>n <strong>GameBoy</strong> Classic, da das<br />

Grundprinzip dieses <strong>GameBoy</strong> für alle weiteren <strong>GameBoy</strong> dasselbe geblieben ist.<br />

Seite 4


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

2. Der interne Aufbau <strong>de</strong>s <strong>GameBoy</strong><br />

Der <strong>GameBoy</strong> besteht aus <strong>de</strong>n verschie<strong>de</strong>nsten Komponenten, wie <strong>de</strong>r schematische<br />

Aufbau im folgen<strong>de</strong>n Bild zeigt.<br />

Quelle: U.S. Patent 5.184.830 Fig. 4<br />

Seite 5


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

In <strong>de</strong>r Mitte <strong>de</strong>s Bil<strong>de</strong>s ist <strong>de</strong>r CPU-Baustein LR 35902 zu erkennen. Dieser beinhaltet neben<br />

<strong>de</strong>m CPU-Kern <strong>de</strong>n 4-Kanal-Soundgenerator, <strong>de</strong>n LCD-Controller, einen Hardwaretimer,<br />

sowie die DMA-, Interrupt- und I/O Controller. Außerhalb dieses CPU-Bausteins verfügt <strong>de</strong>r<br />

<strong>GameBoy</strong> über zwei verschie<strong>de</strong>ne Systembusse. Der erste Systembus dient zur<br />

Kommunikation mit <strong>de</strong>m Arbeitsspeicher sowie <strong>de</strong>r externen Programm-Cartridge. Der<br />

zweite Systembus dient ausschließlich zur Kommunikation zwischen LCD-Controller und<br />

Vi<strong>de</strong>o-RAM. Des weiteren sind am CPU-Baustein das Display, die Tastatur, <strong>de</strong>r<br />

Lautsprecher, sowie die 6polige serielle Schnittstelle angeschlossen. Diese Schnittstelle<br />

dient z.B. für <strong>de</strong>n Anschluß an einen zweiten <strong>GameBoy</strong>.<br />

2.1 Der CPU-Kern <strong>de</strong>s <strong>GameBoy</strong><br />

Der CPU-Kern <strong>de</strong>s <strong>GameBoy</strong> ist mit <strong>de</strong>m <strong>de</strong>s Z80 vergleichbar. Die Unterschie<strong>de</strong> liegen in<br />

<strong>de</strong>n Registern, sowie bei <strong>de</strong>m OpCo<strong>de</strong>. Da <strong>Nintendo</strong> nähere Auskünfte über <strong>de</strong>n CPU-Kern<br />

und seine Architektur verweigerte, gehen wir an dieser Stelle kurz auf die Architektur <strong>de</strong>s<br />

Z80 ein und versuchen die Unterschie<strong>de</strong> zum <strong>GameBoy</strong> zu ver<strong>de</strong>utlichen.<br />

Der Z80 ist mit einer einfachen Pipelinearchitektur versehen, die das „fetch/execute<br />

overlapping“ ermöglicht. Das be<strong>de</strong>utet, daß es möglich ist, die näc<strong>hs</strong>te Anweisung aus <strong>de</strong>m<br />

Speicher zu holen, während die aktuelle Anweisung gera<strong>de</strong> ausgeführt wird.<br />

Quelle: http://www.geocities.com/SiliconValley/Peaks/3938/Z80ARKI.HTM Fig. 1<br />

Eine typische Eigenschaft <strong>de</strong>r CISC-Prozessoren ist die variable Länge <strong>de</strong>r Anweisungen.<br />

Beim Z80, wie beim <strong>GameBoy</strong>, kann die Länge <strong>de</strong>r Anweisungen zwischen 1-4 Byte<br />

betragen. Um die Geschwindigkeit <strong>de</strong>r Z80 CPU zu erhöhen, beträgt die Länge <strong>de</strong>r meisten<br />

Anweisungen jedoch nur 1Byte.<br />

Eine vollständige Auflistung aller Anweisungen wür<strong>de</strong> an dieser Stelle <strong>de</strong>n Rahmen dieser<br />

Ausarbeitung sprengen. Wir verweisen daher auf das Buch:<br />

„Programming the Z80“ von Rodney Zaks<br />

SYBEX (ISBN: 0-89588-094-6)<br />

Seite 6


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Im folgen<strong>de</strong>n Bild sollen die Unterschie<strong>de</strong> zwischen <strong>de</strong>m internen Aufbau <strong>de</strong>s <strong>GameBoy</strong><br />

CPU-Kern und <strong>de</strong>m <strong>de</strong>s Z80 ver<strong>de</strong>utlicht wer<strong>de</strong>n.<br />

Quelle: http://www.geocities.com/SiliconValley/Peaks/3938/Z80ARKI.HTM Fig. 2<br />

Der <strong>GameBoy</strong> verfügt, im Gegensatz zum Z80, nur über 10 8Bit-Register und über 2 16Bit-<br />

Register. Die bei<strong>de</strong>n 16Bit-Register sind zum einen <strong>de</strong>r StackPointer(SP) und <strong>de</strong>r<br />

ProgramCounter(PC). Die bei<strong>de</strong>n In<strong>de</strong>xregister IX und IY <strong>de</strong>s Z80 wur<strong>de</strong>n genauso entfernt,<br />

wie die „Shadow-Register“ BC‘, DE‘, HL‘, AF‘.<br />

Das interne Abarbeiten <strong>de</strong>r Befehle erfolgt ansonsten wie beim Z80.<br />

2.1.1 Der geän<strong>de</strong>rte OpCo<strong>de</strong> <strong>de</strong>s <strong>GameBoy</strong><br />

Da einige Register <strong>de</strong>s Z80 nicht mehr zur Verfügung stehen, wur<strong>de</strong>n einige OpCo<strong>de</strong>s<br />

entfernt, bzw. mit neuen Funktionen belegt.<br />

Bei <strong>de</strong>m OpCo<strong>de</strong> wur<strong>de</strong>n folgen<strong>de</strong> Anweisungen entfernt:<br />

Alle Befehle, welche die IX und IY Register betreffen.<br />

Alle IN/OUT Anweisungen.<br />

Alle „exchange“ Anweisungen.<br />

Alle Befehle mit <strong>de</strong>r Vorsilbe ED<br />

(Welcher OpCo<strong>de</strong> genau damit gemeint ist, konnten wir aus <strong>de</strong>n uns zur Verfügung<br />

stehen<strong>de</strong>n Unterlagen nicht ermitteln)<br />

Alle Sprungbefehle, Unterprogrammaufrufe und Rücksprünge in Abhängigkeit von<br />

Parität bzw. Überlauf und <strong>de</strong>s Vorzeichenflags.<br />

Seite 7


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Folgen<strong>de</strong>r OpCo<strong>de</strong> wur<strong>de</strong>n gelöscht:<br />

OpCo<strong>de</strong><br />

D3<br />

DB<br />

DD<br />

E3<br />

E4<br />

EB<br />

EC<br />

F2<br />

F4<br />

FC<br />

FD<br />

Z80 Anweisungen<br />

OUTA (byte)<br />

INA (byte)<br />

Prefix DD<br />

EX HL, (SP)<br />

CALL PO,word<br />

EX DE,HL<br />

CALL PE,word<br />

JP P,word<br />

CALL P,word<br />

CALL M,word<br />

Prefix FD<br />

Folgen<strong>de</strong>r OpCo<strong>de</strong> hat eine neue Funktion erhalten:<br />

OpCo<strong>de</strong><br />

Z80 Anweisungen <strong>GameBoy</strong> Anweisungen<br />

08 xx xx EX AF,AF ' LD (word),SP Save SP at given address<br />

10 xx DJNZ offset STOP Meaning unknown<br />

22 LD (word),HL LD (HLI),A Save A at (HL) and increment HL<br />

2A LD HL,(word) LD A,(HLI) Load A from (HL) and increment HL<br />

32 LD (word),A LD (HLD),A Save A at (HL) and <strong>de</strong>crement HL<br />

3A LD A,(word) LD A,(HLD) Load A from (HL) and <strong>de</strong>crement HL<br />

D9 EXX RETI Enable interrupts and return<br />

EO xx RET PO LD (byte),A Save A at (FF00+byte)<br />

E2 JP PO,word LD (C),A Save A at (FF00+C)<br />

E8 xx RET PE ADD SP,offset Add signed offset to SP<br />

EA xx xx JP PE,word LD (word),A Save A at given address<br />

F0 xx RET P LD A, (byte) Load A from (FF00+byte)<br />

F8 xx RET M LDHL SP,offset Load HL with SP + signed offset<br />

FA xx xx JP M,word LD A, (word) Load A from given address<br />

Anzumerken ist, daß für die Soundgenerierung sowie für die Vi<strong>de</strong>odarstellung kein eigener<br />

OpCo<strong>de</strong> implementiert wur<strong>de</strong>.<br />

Die Erzeugung wird nur mit Hilfe <strong>de</strong>r Spezialregister gesteuert. Diese Spezialregister wer<strong>de</strong>n<br />

in <strong>de</strong>n folgen<strong>de</strong>n Abschnitten näher betrachtet.<br />

Je<strong>de</strong>s dieser Spezialregister verfügt über eine feste Adresse, über die dieses direkt<br />

angesprochen wird.<br />

Seite 8


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

2.2 Die Speicherbelegung <strong>de</strong>s <strong>GameBoy</strong><br />

In diesem Abschnitt gehen wir näher auf <strong>de</strong>n Speicher, seine Aufteilung und auf die<br />

Speicherauswahllogik <strong>de</strong>s <strong>GameBoy</strong> ein.<br />

Im folgen<strong>de</strong>n Bild ist <strong>de</strong>r Speicheraufbau <strong>de</strong>s <strong>GameBoy</strong> dargestellt. Wie man leicht erkennen<br />

kann, beinhaltet <strong>de</strong>r Aufbau einen Adreß<strong>de</strong>ko<strong>de</strong>r, eine Speicherauswahllogik, ein internes<br />

RAM und ein internes sowie externes ROM. Diese sind über <strong>de</strong>n Adreßbus und <strong>de</strong>n<br />

Datenbus mit <strong>de</strong>m CPU-Kern verbun<strong>de</strong>n.<br />

Das externe ROM befin<strong>de</strong>t sich in <strong>de</strong>r austauschbaren Programm-Cartridge. Auf diese<br />

Cartridge gehen wir später näher ein.<br />

Quelle: U.S. Patent 5.095.798 Fig. 2A<br />

Seite 9


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

2.2.1 Die Speicherauswahllogik <strong>de</strong>s <strong>GameBoy</strong><br />

Das folgen<strong>de</strong> Bild zeigt die Speicherauswahllogik, die für die Generierung <strong>de</strong>r ChipSelect für<br />

das interne bzw. das externe ROM zuständig ist.<br />

Quelle: U.S. Patent 5.184.830 Fig. 6<br />

2.2.2 Die Speicheraufteilung <strong>de</strong>s <strong>GameBoy</strong><br />

Im folgen<strong>de</strong>n wird die Aufteilung <strong>de</strong>s im <strong>GameBoy</strong> zur Verfügung stehen<strong>de</strong>n Speichers<br />

näher beschrieben.<br />

Die grau unterlegte Fläche zeigt <strong>de</strong>n Speicherbereich, <strong>de</strong>r vom internen sowie vom externen<br />

ROM gemeinsam (in Abhängigkeit <strong>de</strong>r Speicherauswahllogik) genutzt wird. In <strong>de</strong>r<br />

tabellarischen Auflistung sind die umschaltbaren Speicherbereiche zu erkennen sowie<br />

weitere Angaben zur Speicherverteilung.<br />

Int/ExtROM<br />

Externes ROM<br />

Zeichen RAM<br />

VRAM<br />

Verschie<strong>de</strong>ne<br />

Register<br />

Internes RAM<br />

0000h<br />

00FFh<br />

0100h<br />

7FFFh<br />

8000h<br />

9800h<br />

A000h<br />

FF00h<br />

FF80h<br />

FFFFh<br />

-------------------------- 0000h<br />

16kB ROM Bank #0<br />

-------------------------- 4000h<br />

16kB ROM Bank (umschaltbar)<br />

-------------------------- 8000h<br />

8kB Vi<strong>de</strong>o RAM<br />

-------------------------- A000h<br />

8kB RAM Bank (umschaltbar)<br />

-------------------------- C000h<br />

8kB internes RAM<br />

-------------------------- E000h<br />

8kB internes RAM (Abbild)<br />

-------------------------- FE00h<br />

„Sprite“ Attribut Speicher (OAM)<br />

-------------------------- FEA0h<br />

Ungenutzt<br />

-------------------------- FF00h<br />

I/O Ports<br />

-------------------------- FF4Ch<br />

Ungenutzt<br />

-------------------------- FF80h<br />

Internes RAM<br />

-------------------------- FFFFh<br />

Interrupt Freigabe Register<br />

Seite 10


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

2.3 Der Soundgenerator <strong>de</strong>s <strong>GameBoy</strong><br />

Der <strong>GameBoy</strong> hat einen 4 Kanal Pseudo-Stereo-Soundgenerator, wie er in <strong>de</strong>r folgen<strong>de</strong>n<br />

Abbildung zu sehen ist. Pseudo be<strong>de</strong>utet in diesem Fall, das kein echter Stereo-Sound,<br />

son<strong>de</strong>rn nur ein einfaches Misc<strong>hs</strong>ignal erzeugt wird.<br />

Quelle: U.S. Patent 5.095.798 Fig. 4<br />

In <strong>de</strong>r Abbildung ist zu erkennen, daß <strong>de</strong>r Soundgenerator vier Schaltkreise zur<br />

Soun<strong>de</strong>rzeugung hat. Zusätzlich besitzt <strong>de</strong>r Soundgenerator einen Multiplexer mit 10<br />

analogen Schaltern (laut Patent) zum weiterleiten <strong>de</strong>r Soundsignale. Weiterhin sind die<br />

Lautstärkeregelungen <strong>de</strong>r bei<strong>de</strong>n Audiokanäle sowie die Mono/Stereo Auswahlschaltung zu<br />

erkennen.<br />

Seite 11


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Die vier Schaltkreise zur Soundgenerierung sind voneinan<strong>de</strong>r völlig unabhängig und wer<strong>de</strong>n<br />

durch die Register (NR10-NR44) gesteuert. Der Multiplexer wird durch die Register (NR50-<br />

NR52) gesteuert und dient dazu, die Ausgänge <strong>de</strong>r einzelnen Schaltkreise entwe<strong>de</strong>r gar<br />

nicht, nur an einen o<strong>de</strong>r an bei<strong>de</strong> Lautstärkeregelungen (linker/rechter Kanal) weiterzuleiten.<br />

Folgend sind die einzelnen Register NR50-NR52 explizit aufgezeigt<br />

Quelle: U.S. Patent 5.095.798 Fig. 4A<br />

Das Ausgangssignal <strong>de</strong>r Lautstärkeregelung wird durch <strong>de</strong>n Linken bzw. Rechten<br />

Audioverstärker verstärkt. Die Ausgangssignale <strong>de</strong>r bei<strong>de</strong>n Verstärker wer<strong>de</strong>n nun an die<br />

Mono/Stereo Auswahleinheit weitergeleitet, wo sie entwe<strong>de</strong>r an <strong>de</strong>m internen Lautsprecher<br />

(Mono) o<strong>de</strong>r an <strong>de</strong>m externen Kopfhörer (Stereo) ausgegeben wer<strong>de</strong>n.<br />

2.3.1 Die Soundgeneratorschaltkreise <strong>de</strong>s <strong>GameBoy</strong><br />

Da die vier Schaltkreise zur Soundgenerierung in ihrem Aufbau und Funktionsweise fast<br />

i<strong>de</strong>ntisch sind, betrachten wir folgend nur einen <strong>de</strong>r vier Schaltkreise näher. Sie sind nicht<br />

vollständig i<strong>de</strong>ntisch, da je<strong>de</strong>r <strong>de</strong>r Schaltkreise für eine spezielle Soundart konzipiert wur<strong>de</strong>.<br />

Betrachten wir hier nun <strong>de</strong>n zweiten Soundgeneratorschaltkreis:<br />

Quelle: U.S. Patent 5.095.798 Fig. 5<br />

Seite 12


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Wie im vorangegangenen Bild zu erkennen ist, beinhaltet dieser Schaltkreis verschie<strong>de</strong>ne<br />

Zähler, Teiler sowie einige an<strong>de</strong>re Komponenten, die durch die Register NR21-NR24<br />

gesteuert wer<strong>de</strong>n.<br />

In <strong>de</strong>r folgen<strong>de</strong>n Abbildung wer<strong>de</strong>n die Register NR21-NR24 weiter aufgeschlüsselt:<br />

Quelle: U.S. Patent 5.095.798 Fig. 5B<br />

Zu <strong>de</strong>n drei weiteren Soundgeneratorschaltkreisen gehören ebenfalls die entsprechen<strong>de</strong>n<br />

Register. Diese sind für <strong>de</strong>n Schaltkreis 1 die Register NR11-NR14, für <strong>de</strong>n Schaltkreis 3 die<br />

Register NR31-NR34 und für <strong>de</strong>n Schaltkreis 4 die Register NR41-NR44.<br />

Wir wollen hier nicht im einzelnen auf diese Register eingehen, da sie sich nur in geringen<br />

Teilen unterschei<strong>de</strong>n. Die Register sind im Anhang A aufgeführt.<br />

Die Komponenten mit <strong>de</strong>n laufen<strong>de</strong>n Nummern 74 bis 94 erzeugen das Taktsignal zur<br />

Steuerung <strong>de</strong>r Umwandlung <strong>de</strong>r Daten <strong>de</strong>s Envelope Counters. Durch <strong>de</strong>n D/A Wandler<br />

wer<strong>de</strong>n diese Daten in das analoge Soundsignal umgewan<strong>de</strong>lt. Zusätzlich kontrollieren diese<br />

Komponenten die notwendige Zeitparametersteuerung für die Erzeugung <strong>de</strong>s Soundsignals.<br />

Der Envelope Counter und die zugehörigen Komponenten mit <strong>de</strong>n laufen<strong>de</strong>n Nummern 98<br />

bis 106 sind für die Regelung <strong>de</strong>r Amplitu<strong>de</strong> <strong>de</strong>s Soundsignals zuständig. Der Deko<strong>de</strong>r dient<br />

zum Rücksetzen <strong>de</strong>r gesamten Schaltung, nach Beendigung <strong>de</strong>r Soundgenerierung.<br />

2.3.2 Die Mono/Stereo Auswahleinheit <strong>de</strong>s <strong>GameBoy</strong><br />

Die Mono/Stereo Auswahleinheit dient, wie bereits vorher erwähnt, zur Ansteuerung <strong>de</strong>s<br />

internen Lautsprechers o<strong>de</strong>r eines externen Kopfhörers.<br />

Quelle: U.S. Patent 5.095.798 Fig. 8<br />

Seite 13


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Registriert diese Auswahleinheit das Vorhan<strong>de</strong>nsein eines Kopfhörers, so leitet sie das<br />

Soundsignal, getrennt nach <strong>de</strong>m linken und rechten Audiokanal, an diesen Kopfhörer weiter.<br />

Sollte kein Kopfhörer angeschlossen sein, so wird das Soundsignal <strong>de</strong>r bei<strong>de</strong>n Audiokanäle<br />

gemischt, und als Monosignal an <strong>de</strong>n internen Lautsprecher weitergeleitet, <strong>de</strong>r dieses Signal<br />

ausgibt.<br />

2.4 Das Vi<strong>de</strong>osystem <strong>de</strong>s <strong>GameBoy</strong><br />

In diesem Abschnitt gehen wir auf das Vi<strong>de</strong>osystem <strong>de</strong>s <strong>GameBoy</strong> ein. Betrachten wir das<br />

folgen<strong>de</strong> Bild etwas näher.<br />

Quelle: U.S. Patent 5.184.830 Fig. 4<br />

Wie in diesem Ausschnitt zu erkennen ist, wer<strong>de</strong>n die Daten für das Display, die von <strong>de</strong>r<br />

CPU kommen, mittels <strong>de</strong>s DMA-Controllers an <strong>de</strong>n LCD-Controller weitergegeben. Dieser<br />

LCD-Controller ist über das LCD-RAM-Interface mit <strong>de</strong>m Display-RAM verbun<strong>de</strong>n. Für diese<br />

Verbindungen zwischen <strong>de</strong>n LCD-RAM-Interface und <strong>de</strong>m Display-RAM hat <strong>de</strong>r <strong>GameBoy</strong><br />

einen zweiten vollständigen Systembus, wie bereits am Anfang dieser Ausarbeitung erwähnt<br />

wur<strong>de</strong>.<br />

Seite 14


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

2.4.1 Der Aufbau von Hintergrundbildschirm und Fenster <strong>de</strong>s <strong>GameBoy</strong><br />

Der Bildschirmspeicher für <strong>de</strong>n Hintergrund hat eine Größe von 256x256 Pixel o<strong>de</strong>r 32x32<br />

Blöcke, von <strong>de</strong>nen je<strong>de</strong>r aus 8x8 Pixel besteht. Von dieses 256x256 Pixel können jedoch nur<br />

160x144 Pixel gleichzeitig dargestellt wer<strong>de</strong>n.<br />

In <strong>de</strong>m folgen<strong>de</strong>n Bild <strong>de</strong>r Hintergrundmatrix ist <strong>de</strong>r sichtbare Bereich gestrichelt dargestellt.<br />

Quelle: U.S. Patent 5.184.830 Fig. 14<br />

Dieser sichtbare Bereich kann durch die Än<strong>de</strong>rung <strong>de</strong>r Scrollregister SCX und SCY<br />

verschoben wer<strong>de</strong>n, wobei in <strong>de</strong>n Scrollregistern die Koordinaten <strong>de</strong>r linken oberen Ecke<br />

dieses Bereic<strong>hs</strong> eingetragen sind.<br />

Der Bereich <strong>de</strong>s VRAM, in<strong>de</strong>m die Hintergrundmatrix abgelegt ist, wird als Hintergrund-<br />

Block-Verzeichnis bezeichnet. Sie ist, wie bereits im oberen Bild dargestellt, in 32x32<br />

Blöcken organisiert. In diesem Hintergrund-Block-Verzeichnis wer<strong>de</strong>n nur die Nummern <strong>de</strong>r<br />

unterschiedlichen Blöcke abgelegt, die angezeigt wer<strong>de</strong>n sollen. Der Aufbau eines Blocks<br />

mit 8x8 Pixel wird einer Block-Daten-Tabelle entnommen. Diese Tabelle befin<strong>de</strong>t sich an <strong>de</strong>r<br />

Speicherstelle 8000h-8FFFh bzw. 8800h-97FFh im RAM. Welche dieser bei<strong>de</strong>n<br />

Adreßbereiche benutzt wer<strong>de</strong>n soll, wird im LCDC-Register eingestellt.<br />

Es gibt zwei verschie<strong>de</strong>ne Hintergrund-Block-Verzeichnisse im VRAM. Diese Verzeichnisse<br />

liegen in <strong>de</strong>n Adreßbereichen 9800h-9BFFh sowie 9C00h-9FFFh. Es ist nur möglich, eine<br />

<strong>de</strong>r bei<strong>de</strong>n Tabellen zum jeweiligen Zeitpunkt anzuzeigen. Welche <strong>de</strong>r bei<strong>de</strong>n Tabellen<br />

angezeigt wer<strong>de</strong>n soll, wird ebenfalls mit <strong>de</strong>m LCDC-Register eingestellt.<br />

Zusätzlich zum Hintergrund <strong>de</strong>s <strong>GameBoy</strong> kam man ein Fenster erzeugen, welches über<br />

<strong>de</strong>m Hintergrundbild liegt. Dieses Fenster kann allerdings nicht verschoben wer<strong>de</strong>n. Die<br />

Position dieses Fensters wird in <strong>de</strong>n Registern WNDPOSX und WNDPOSX eingestellt. Die<br />

Blöcke, aus <strong>de</strong>nen dieses Fenster zusammengesetzt wird, wer<strong>de</strong>n ebenfalls <strong>de</strong>r Block-<br />

Daten-Tabelle entnommen.<br />

Der Hintergrund sowie das Fenster können durch das LCDC-Register unabhängig<br />

voneinan<strong>de</strong>r ein- bzw. ausgeschaltet wer<strong>de</strong>n.<br />

Seite 15


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

3. Die Cartridge <strong>de</strong>s <strong>GameBoy</strong><br />

Für <strong>de</strong>n <strong>GameBoy</strong> gibt es verschie<strong>de</strong>ne Cartridges. Damit die CPU <strong>de</strong>s <strong>GameBoy</strong> weiß, um<br />

welche Art Cartridge es sich han<strong>de</strong>lt, ist im ROM <strong>de</strong>r Cartridge an <strong>de</strong>r Adresse 0147h ein<br />

I<strong>de</strong>ntifikationsco<strong>de</strong> gespeichert.<br />

Die folgen<strong>de</strong> Tabelle zeigt, welche Cartridge-Typen <strong>de</strong>r <strong>GameBoy</strong> unterschei<strong>de</strong>t.<br />

Co<strong>de</strong> Beschreibung<br />

00 ROM<br />

01 ROM + MBC1<br />

02 ROM + MBC1 + RAM<br />

03 ROM + MBC1 + RAM + Batterie<br />

05 ROM + MBC2<br />

06 ROM + MBC2 + Batterie<br />

08 ROM + RAM<br />

09 ROM + RAM + Batterie<br />

0B ROM + MMM01<br />

0C ROM + MMM01 + SRAM<br />

0D ROM + MMM01 + SRAM + Batterie<br />

0F ROM + MBC3 + Timer + Batterie<br />

10 ROM + MBC3 + Timer + RAM + Batterie<br />

11 ROM + MBC3<br />

12 ROM + MBC3 + RAM<br />

13 ROM + MBC3 + RAM + Batterie<br />

19 ROM + MBC5<br />

1A ROM + MBC5 + RAM<br />

1B ROM + MBC5 + RAM + Batterie<br />

1C ROM + MBC5 + RUMBLE<br />

1D ROM + MBC5 + RUMBLE + SRAM<br />

1E ROM + MBC5 + RUMBLE + SRAM + Batterie<br />

1F Pocket Kamera<br />

FD Bundai TAMA5<br />

FE Hudson HuC-3<br />

FF Hudson HuC-1<br />

MBC<br />

MMM01<br />

RUMBLE<br />

TAMA5<br />

HuC<br />

= Memory Bank Controller<br />

= nicht bekannt<br />

= Eine Cartridge mit Vibrationsfunktion (eingebauter Motor)<br />

= nicht bekannt<br />

= Memory Bank und Infrarot Controller<br />

In <strong>de</strong>n Cartridges ist meistens neben <strong>de</strong>m ROM auch ein Memory Bank Controller (MBC)<br />

vorhan<strong>de</strong>n, wie aus <strong>de</strong>r Tabelle zu entnehmen ist.<br />

Der Memory Bank Controller dient zum Umschalten zwischen <strong>de</strong>n einzelnen<br />

Speicherbänken.<br />

Für <strong>de</strong>n Fall, daß sich ein RAM auf <strong>de</strong>r Cartridge befin<strong>de</strong>t, wird auch dieses vom MBC<br />

gesteuert. Der RAM-Baustein kann an einer Batterie angeschlossen sein, um eine Sicherung<br />

<strong>de</strong>r Daten auch über einen längeren Zeitraum zu gewährleisten. Die verschie<strong>de</strong>n MBC<br />

unterschei<strong>de</strong>n sich hauptsächlich darin, daß sie verschie<strong>de</strong>ne Größen von ROM und RAM<br />

steuern können.<br />

Es gibt auch spezielle Cartridges, die z.B. mit einer Kamera, einer Infrarot Schnittstelle (zur<br />

Kommunikation) o<strong>de</strong>r einem Motor (sog. Rumble Pack) ausgestattet sind.<br />

Seite 16


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Die Cartridge ist über eine 32polige Steckverbindung (siehe Abbildung) mit <strong>de</strong>m <strong>GameBoy</strong><br />

verbun<strong>de</strong>n.<br />

Quelle: Frohwein<br />

In <strong>de</strong>n folgen<strong>de</strong>n Abbildungen wer<strong>de</strong>n zwei Schaltpläne unterschiedlicher Cartridges<br />

dargestellt.<br />

Der hier dargestellte Schaltplan einer Cartridge beinhaltet einen MBC1, <strong>de</strong>r ein 4Mbit<br />

(512kB) ROM und ein 64Kbit (8kB) RAM steuert.<br />

Quelle: Frohwein<br />

Folgend ein Beispiel mit einem MBC2. Der MBC2 enthält ein internes RAM von 512x4 Bit im<br />

Controller, so daß kein RAM zusätzlich angeschlossen wer<strong>de</strong>n muß. Das externe ROM hat<br />

eine Größe von 2Mbit (265KB). An <strong>de</strong>m MBC2 ist hier noch an eine Batterie zur Sicherung<br />

<strong>de</strong>r Daten über ein längeren Zeitraum angeschlossen.<br />

Quelle: Frohwein<br />

Seite 17


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

4. Die serielle Schnittstelle <strong>de</strong>s <strong>GameBoy</strong><br />

Die serielle Schnittstelle <strong>de</strong>s <strong>GameBoy</strong> ist kompatibel mit <strong>de</strong>r RS-232 (IBM PC) und <strong>de</strong>r RS-<br />

485 (Mac). Sie ist über Register leicht einstellbar. Sie arbeitet aber ohne Start- und Stopbit,<br />

daher muß man sich bei Bedarf geeignete Übertragungsprotokolle einfallen lassen.<br />

Die serielle Schnittstelle kann intern bzw. extern getaktet wer<strong>de</strong>n. Bei interner Taktung wird<br />

mit einer Geschwindigkeit von 8192 Hz übertragen.<br />

In diesem Bild ist <strong>de</strong>r 6polige Anschluß mit <strong>de</strong>r entsprechen<strong>de</strong>n Pinbelegung dargestellt.<br />

Quelle: Frohwein<br />

Pin Funktion<br />

1 VCC<br />

2 Seriell OUT<br />

3 Seriell IN<br />

4 Port 14 (CPU-Port)<br />

5 CLK<br />

6 GND<br />

Folgend das Blockdiagramm <strong>de</strong>r seriellen Schnittstelle:<br />

Quelle: Color <strong>GameBoy</strong> User Gui<strong>de</strong> Ver. 1-3<br />

Wie man in diesem Bild erkennen kann, wer<strong>de</strong>n die Daten, die seriell übertragen wer<strong>de</strong>n<br />

sollen, in das Shift-Register gela<strong>de</strong>n. Mittels <strong>de</strong>s Serial-Control-Register kann die serielle<br />

Übertragung gestartet bzw. kontrolliert wer<strong>de</strong>n.<br />

Die serielle Schnittstelle wur<strong>de</strong> von <strong>Nintendo</strong> im <strong>GameBoy</strong> eingebaut, um eine<br />

Kommunikation zwischen zwei <strong>GameBoy</strong> zu ermöglichen.<br />

Die Grundi<strong>de</strong>e war es dabei, mehrere <strong>GameBoy</strong> in einer Art Netzwerk zu verbin<strong>de</strong>n und so<br />

mit mehreren Spielern gemeinsam ein Spiel spielen zu können. Die Voraussetzung dabei ist,<br />

daß je<strong>de</strong>r <strong>GameBoy</strong> mit <strong>de</strong>r gleichen Spiel-Cartridge ausgestattet ist.<br />

Seite 18


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

5. Die PowerUP-Sequenz <strong>de</strong>s <strong>GameBoy</strong><br />

Beim Einschalten <strong>de</strong>s <strong>GameBoy</strong> beginnt die CPU, eine Startsequenz zu durchlaufen. Diese<br />

Startsequenz dient <strong>de</strong>r Prüfung, ob die eingesteckte Cartridge gültig ist.<br />

Diese Startsequenz ist im folgen<strong>de</strong>n Ablaufplan dargestellt.<br />

Start<br />

Initialisierung<br />

Stack<br />

Löschen <strong>de</strong>s<br />

Display-RAM<br />

(8000h - 9FFFh)<br />

Vergleiche<br />

Zeichen<br />

Sind Zeichen<br />

gleich <br />

Nein<br />

Initialisierung<br />

Sound<br />

JA<br />

Vergleiche<br />

Complement<br />

Setze<br />

Hintergrundfarben<br />

Übertragung<br />

Zeichen aus<br />

ext. ROM ins<br />

Zeichen RAM<br />

Zeichen ins<br />

VRAM übertragen<br />

Sind<br />

Complement<br />

gleich <br />

JA<br />

Freigabe Speicher<br />

für<br />

ext. ROM<br />

Nein<br />

Starte Programm<br />

an ADR 0100h<br />

im ext. ROM<br />

Abbruch<br />

Scroll<br />

Hintergrund<br />

En<strong>de</strong><br />

Nach Einschalten <strong>de</strong>s <strong>GameBoy</strong> startet ein 256 Byte großes Programm an <strong>de</strong>r Adresse<br />

0000h <strong>de</strong>s internen ROM. Dieses Programm initialisiert <strong>de</strong>n StackPointer und löscht<br />

anschließend das Display-RAM. Im näc<strong>hs</strong>ten Schritt wird <strong>de</strong>r Soundgenerator initialisiert und<br />

die Hintergrundfarben wer<strong>de</strong>n gela<strong>de</strong>n. Nun ließt das Programm die Speicherstellen 0104h<br />

bis 0133h aus <strong>de</strong>m externen ROM, und überträgt <strong>de</strong>ren Inhalt in das Display-RAM. Diese<br />

Daten ergeben ein <strong>Nintendo</strong>-Logo, welches am oberen Rand <strong>de</strong>s Display angezeigt wird.<br />

Dieses Logo wird nun in die Mitte <strong>de</strong>s Display gescrollt. Wenn dieses erfolgt ist, wer<strong>de</strong>n zwei<br />

Musiknoten ausgegeben. Die Speicherstellen 0104h bis 0133h wer<strong>de</strong>n erneut aus <strong>de</strong>m<br />

externen ROM gelesen und mit einer Tabelle im internen ROM verglichen. Sollte nur ein<br />

Byte falsch sein, bricht <strong>de</strong>r <strong>GameBoy</strong> die Startsequenz ab.<br />

Ist <strong>de</strong>r Vergleich erfolgreich gewesen, addiert das Programm die Werte <strong>de</strong>r Speicherstellen<br />

0134h bis 014Dh aufeinan<strong>de</strong>r. Zu diesem Wert wird dann <strong>de</strong>r Wert 25 hinzuaddiert. Ergibt<br />

das nie<strong>de</strong>rwertigste Byte keine Null, wird wie<strong>de</strong>rum die Startsequenz abgebrochen. Sind die<br />

oben genannten Vergleiche erfolgreich, wird das internen ROM abgeschaltet, und das<br />

Programm an <strong>de</strong>r Speicherstelle 0100h in <strong>de</strong>m externen ROM wird gestartet.<br />

Seite 19


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

6. Die Entwicklungsoberflächen für <strong>de</strong>n <strong>GameBoy</strong><br />

Für <strong>de</strong>n <strong>GameBoy</strong> gibt es eine Vielzahl von Entwicklungsoberflächen. Es fängt beim<br />

(einfachen) Assembler an und geht bis zum relativ komfortablen Entwicklungsstudio unter C.<br />

Hier ein Beispiel für eine Entwicklungsoberfäche unter Windows:<br />

Dieses <strong>GameBoy</strong> Development Studio ist eine reine grafische Entwicklungsoberfläche, in die<br />

noch ein geeigneter Compiler, z.B. <strong>de</strong>r <strong>de</strong>s <strong>GameBoy</strong> Developer‘s Kit, eingebun<strong>de</strong>n wer<strong>de</strong>n<br />

muß. Nach <strong>de</strong>m Einbin<strong>de</strong>n eines Compiler hat man nun die Möglichkeit, in ANSI C seine<br />

<strong>GameBoy</strong>-Programme zu entwickeln. Genauso könnte man unter dieser Oberfläche einen<br />

Assembler Compiler einbin<strong>de</strong>n, und in Assembler Programme entwickeln.<br />

Bei <strong>de</strong>m <strong>GameBoy</strong> Developer’s Kit sind auch einige Hea<strong>de</strong>r-Dateien, die speziell für <strong>de</strong>n<br />

<strong>GameBoy</strong> entwickelt wur<strong>de</strong>n, dabei. Im Internet gibt es noch ein großes Angebot an Hea<strong>de</strong>r-<br />

Dateien, welche die Programmentwicklung vereinfachen.<br />

Seite 20


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Ein nützliches Tool ist <strong>de</strong>r MapEditor, <strong>de</strong>r beim Development Studio dabei ist.<br />

Mit diesem MapEditor kann man schnell ein Hintergrundbild bzw. Grafikblöcke erstellen. So<br />

bleibt <strong>de</strong>m Entwickler viel Handarbeit beim Erstellen dieser sogenannten Map’s erspart.<br />

Weitere nützliche Tools sind die <strong>GameBoy</strong> Emulatoren, die als Freeware, in einigen Fällen<br />

allerdings auch als Shareware, im Internet erhältlich sind. Mit diesen Emulatoren kann man<br />

seine erstellten Programme schnell testen, ohne <strong>de</strong>n Umweg über <strong>de</strong>n <strong>GameBoy</strong> gehen zu<br />

müssen.<br />

Hier z.B. ein ScreenShot <strong>de</strong>s Emulators GB97:<br />

Seite 21


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

7. Quellen<br />

United States Patent<br />

Patent Nummer 5.095.798<br />

(Electronic gaming <strong>de</strong>vice with pseudo-stereophonic sound generating capabilities<br />

http://patent.womplex.ibm.com/<strong>de</strong>tailspatent_number=5095798<br />

Patent Nummer 5.184.830<br />

(Compact hand-held vi<strong>de</strong>o game system)<br />

http://patent.womplex.ibm.com/<strong>de</strong>tailspatent_number=5184830<br />

Z80 CPU architecture<br />

http://www.geocties.com/SiliconValley/Peaks/3938/Z80arki.htm<br />

Allgemeine Infos zur Z80 Architektur<br />

<strong>Nintendo</strong> frequently asked questions<br />

http://www.cs.umd.edu/users/fms/<br />

Antworten auf die meisten Fragen in Sachen <strong>GameBoy</strong><br />

Jeff Frohwein<br />

http://home.hiwaay.net/~jfrowei/gameboy/home.html<br />

<strong>GameBoy</strong> Seite <strong>de</strong>s „<strong>GameBoy</strong> Guru“ im Internet.<br />

Schaltpläne, technische Daten, Dokumente, viele Links<br />

Black Thun<strong>de</strong>r<br />

http://www.blackthun<strong>de</strong>r.<strong>de</strong>mon.nl/<br />

Dokumente & Beispiele zur Programmierung<br />

<strong>GameBoy</strong> Emulation Heaven<br />

http://gbemuheaven.cjb.net/<br />

Emulatoren für fast je<strong>de</strong>s Betriebssystem<br />

<strong>GameBoy</strong> Development Studio<br />

http://www.geocities.com/eureka/9827/<br />

Win95 Interface zur Entwicklung von Programmen in C für <strong>de</strong>n <strong>GameBoy</strong><br />

Andrew March’s GB Page<br />

http://www.icenet.com.au/~amarch/<br />

ROM-Emulator für <strong>de</strong>n <strong>GameBoy</strong><br />

Jason’s GBDK Page<br />

http://www.gb<strong>de</strong>v.org/news/<br />

Dokumente & Beispiele zum GBDK<br />

Kashi’s <strong>GameBoy</strong> Page<br />

http://www.keisei.tsukuba.ac.jp/~kashima/games/gbread2e.html<br />

Informationen über verschie<strong>de</strong>ne Cartridges<br />

CGB – Color Game Boy - User’s Gui<strong>de</strong> Vers. 1-3<br />

Handbuch zum <strong>GameBoy</strong> Color<br />

Azrail’s <strong>GameBoy</strong> Section<br />

Allgemeine Infos zum <strong>GameBoy</strong> (lei<strong>de</strong>r ist uns die URL abhan<strong>de</strong>n gekommen)<br />

Seite 22


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

8. Anhang<br />

In <strong>de</strong>n folgen<strong>de</strong>n Anhängen wer<strong>de</strong>n nur die Register <strong>de</strong>s <strong>GameBoy</strong> näher aufgeführt, die<br />

auch in dieser Ausarbeitung angesprochen wor<strong>de</strong>n sind. Zusätzlich haben wir in Anhang D<br />

noch die Schaltpläne für <strong>de</strong>n <strong>GameBoy</strong> und <strong>de</strong>r Cartridge beigefügt.<br />

Anhang A<br />

In diesem Anhang sind die Soundregister aus <strong>de</strong>m U.S. Patent 5.095.798<br />

-Electronic gaming <strong>de</strong>vice with pseudo-stereophonic sound generating capabilities- <strong>de</strong>r<br />

Vollständigkeit halber aufgeführt.<br />

Soundgeneratorschaltkreis 1:<br />

Soundgeneratorschaltkreis 2:<br />

Seite 23


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Soundgeneratorschaltkreis 3:<br />

Soundgeneratorschaltkreis 4:<br />

Seite 24


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Soundkontroll-Register:<br />

Seite 25


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Anhang B<br />

In diesem Anhang sind die LCD-Display-Register aus <strong>de</strong>m U.S. Patent 5.184.830<br />

- Compact hand-held vi<strong>de</strong>o game system - <strong>de</strong>r Vollständigkeit halber aufgeführt.<br />

Seite 26


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Seite 27


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Anhang C<br />

In diesem Anhang sind die Serial-Input/Output-Register (SIO) aus <strong>de</strong>m - Color Game Boy<br />

User’s Gui<strong>de</strong> ver.1-3 - <strong>de</strong>r Vollständigkeit halber aufgeführt.<br />

Seite 28


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Anhang D<br />

In diesem Anhang sind die <strong>de</strong>taillierten Schaltpläne <strong>de</strong>s <strong>GameBoy</strong> aufgeführt.<br />

Seite 29


RST-Labor<br />

<strong>Nintendo</strong> <strong>GameBoy</strong><br />

Seite 30

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!