Famicom Controller

Die Nintendo Famicom besitzt zwei Controller in Form von Gamepads, die fest mit der Konsole verbunden sind. Die Controller sind dabei etwas unterschiedlich aufgebaut.

Controller 1

Der erste Controller besitzt ein Steuerkreuz und die Tasten A, B, Start und Select. Die acht Tasten des Gamepads sind mit den Eingangsleitungen eines 8-bit Shift-Registers vom Typ 4021 verbunden. Die Eingangsleitungen sind über Pull-Up-Widerstände mit der Versorgungsspannung verbunden, wodurch sie auf HIGH gehalten werden. Wird eine Taste gedrückt, so wird eine Verbindung der Eingangsleitung zur Masse hergestellt, wodurch die Eingangsleitung auf LOW gezogen wird.

Die Konsole fragt den Controller in regelmäßigen Abständen ab, indem zunächst die Out0-Leitung kurzzeitig auf HIGH gezogen wird. Dadurch wird der Latch des Shift-Registers (Pin 9) aktiviert und der aktuelle Zustand aller Eingangsleitungen im Register zwischengespeichert. Der Zustand der Eingangsleitung D7 steht dabei sofort am Ausgang Q7 (Pin 3) zur Verfügung und wird über die 4016.D0-Leitung an die Konsole übermittelt.

Um den Zustand der weiteren Eingangsleitungen zu übertragen, wird die Clock-Leitung, die mit dem Clock-Eingang des Shift-Registers (Pin 10) verbunden ist, fortwährend zwischen HIGH und LOW umgeschaltet. Immer wenn von LOW nach HIGH umgeschaltet wird, werden die Daten im Register um eine Stelle weitergeshiftet. Somit werden in Folge die Zustände der Eingangsleitungen D6, D5, D4, D3, D2, D1 und D0 über die 4016.D0-Leitung übertragen. Die freien Stellen im Register werden mit Daten aufgefüllt, die über die serielle Eingangsleitung DS übertragen werden. Diese liegt beim Famicom-Gamepad jedoch dauerhaft auf Masse, weshalb nach der Übertragung von D0 nur noch LOW-Zustände übertragen werden.

Die Ausgangsleitungen Q5 (Pin 2) und Q6 (Pin 12) sind beim Famicom-Gamepad nicht verbunden. In der linken oberen Ecke befinden sich noch zwei unbestückte Lötpads zwischen +5V und Masse. Vom Abstand her könnte hier ein Kondensator installiert werden. Verbaut worden ist dort aber offenbar nie etwas.

Controller 2

Der zweite Controller unterscheidet sich vom ersten Controller in zweierlei Hinsicht. Zunächst besitzt der zweite Controller keine Start- und Select-Tasten. Dementsprechend sind die beiden Eingangsleitungen D4 und D5 von U1 dauerhaft auf +5V gelegt.

Weiterhin ist im zweiten Contoller ein Mikrofon verbaut, welches zwei Funktionen erfüllt. Zum einen wird das Audio-Signal des Mikrofons mit dem Audio-Signal der Konsole kombiniert und gemeinsam auf dem Fernseher ausgegeben. Zum anderen wird das Audio-Signal des Mikrofons direkt auf einem digitalen Eingang in der Konsole bereitgestellt. Da das Mikrofon ein analoges Signal liefert, der digitale Eingang aber nur zwischen HIGH und LOW unterschiedet, findet somit eine Analog-Digital-Wandlung statt, allerdings nur mit einer Auflösung von einem Bit. Wenn das Mikrofon irgendwelche Geräuche wahrnimmt, wechselt der digitale Eingang in schneller Folge zwischen HIGH und LOW. Per Software kann man auswerten, ob das Mikrofon irgendwelche Geräusche wahrnimmt, mehr aber nicht.

Die ursprüngliche Entwicklungsidee hinter dem Mikrofon war es, vom Karaoke-Boom in Japan zu profitieren. Nach Fertigstellung der Konsole verfolgte man die Idee aber nicht mehr weiter. Wenn die Konsole nur erkennen kann, dass Geräusche vom Mikrofon aufgenommen werden, aber nicht ob der Spieler „richtig“ singt oder nur ins Mikrofon pustet, dann bietet die Konsole letztlich keinerlei Mehrwert. Im Laufe der Zeit erschienen dann vielleicht ein Dutzend Videospiele, die das Mikrofon tatsächlich nutzen. Meist handelt es sich dabei um eine undokumentierte oder nur angedeutete Funktion. In einem Spiel konnte man beispielsweise durch laute Geräusche einen lärmempfindlichen Gegner schwächen, in einem anderen sprachgesteuert Feuerunterstützung rufen. Es gab ein Spiel, bei dem man bei einem Händler die Preise durch geschicktes, mündliches Verhandeln drücken konnte, oder ein Spiel, bei dem man für eine Quest ein Lied singen musste. Naja, oder man pustete einfach in allen Fällen ins Mikrofon, was denselben Effekt hatte.

Übertragungsprotokoll

Die Tastenzustände werden vom Controller seriell an die Konsole übertragen. Eine gedrückte Taste wird durch ein LOW-Signal repräsentiert. Die Übetragung beginnt bei D7 und endet mit D0. Anschließend werden nur noch LOW-Signale übertragen.

Controller 1

D7 D6 D5 D4 D3 D2 D1 D0 DS
Ⓛ A Ⓛ B Ⓛ Select Ⓛ Start Ⓛ ↑ Ⓛ ↓ Ⓛ ← Ⓛ → LOW LOW

Controller 2

D7 D6 D5 D4 D3 D2 D1 D0 DS
Ⓛ A Ⓛ B HIGH HIGH Ⓛ ↑ Ⓛ ↓ Ⓛ ← Ⓛ → LOW LOW