Paddles
Der Name "Paddle" (engl: Schläger bzw. Tischtennisschläger, auch Paddel) entstand in der Frühzeit der Computerspielerei. Im Klassiker Pong, eines der ersten Videospiele überhaupt, wurden die beiden balkenförmigen Schläger der Spieler auf dem Bildschirm mit analogen Drehreglern gesteuert. So übertrug sich der Name vom Bildschirm auf die Hardware in der Hand und stand bald synonym für sämtliche analogen Drehregler-Eingabegeräte. Bei den Commodore Heimcomputern wie dem C64/128 oder VC-20 wird er am Controlport (Joystickport) angeschlossen.
Inhaltsverzeichnis
Allgemein[Bearbeiten]
Ein Paddle ist ein analoges (stufenloses) Eingabegerät, dass vorwiegend wie der Joystick für Computerspiele genutzt wird. Mit einem verstellbaren Drehknopf wird innerhalb des Paddles ein Potentiometer (veränderlicher Widerstand) betätigt und damit der Widerstandswert verändert. Dieser Wert wird im C64 mit Hilfe eines Analog/Digital-Wandlers in einen digitalen 8-Bit-Wert umgewandelt (0-255). Entsprechend der Bewegung des Drehknopfes wird dann am Computer eine Reaktion ausgelöst. Der Feuerknopf wird wie beim Joystick digital ausgewertet.
Modellgalerie:
Programmierung[Bearbeiten]
Paddle-Register im C64[Bearbeiten]
Dezimal-Wert | Hex-Wert | Beschreibung | Zustand |
---|---|---|---|
56320 | $DC00 | Controlport 1 auswählen | Bit6=0 und Bit7=1 |
56320 | $DC00 | Controlport 2 auswählen | Bit6=1 und Bit7=0 |
54297 | $D419 | Paddle X-Wert | 0..255 |
54298 | $D41A | Paddle Y-Wert | 0..255 |
56321 | $DC01 | Paddle A, X-Feuerknopf | Bit2 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt) |
56321 | $DC01 | Paddle A, Y-Feuerknopf | Bit3 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt) |
56320 | $DC00 | Paddle B, X-Feuerknopf | Bit2 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt) |
56320 | $DC00 | Paddle B, Y-Feuerknopf | Bit3 (0=Feuerknopf gedrückt ; 1=Feuerknopf nicht gedrückt) |
Paddle A = Paddle in Port 1, Paddle B = Paddle in Port 2
Beispiel-Programm in BASIC[Bearbeiten]
Dieses Programm liest den X/Y-Wert der Paddles aus (Controlport 1):
10 POKE 56322, 224 : REM Tastaturabfrage ausschalten 20 PRINT "Paddle Port1 X-Wert =" ; PEEK(54297) : REM Wert X auslesen 30 PRINT "Paddle Port1 Y-Wert =" ; PEEK(54298) : REM Wert Y auslesen 40 POKE 56322, 255 : REM Tastaturabfrage einschalten
cc65 stellt einen o65-Treiber zur Verfügung.
Hardware[Bearbeiten]
Installation[Bearbeiten]
- Die 9-polige Buchse des Paddles wird in den Controlport 1 oder 2 eingesteckt.
Schaltplan VIC20 Paddles[Bearbeiten]
Innenschaltung im C64[Bearbeiten]
- Der Kondensator im C64 wird über den Paddle-Widerstand aufgeladen.
- Je größer der Widerstand, desto länger die Ladezeit des Kondensators. (t=R*C)
- Diese Zeit wird im Soundchip (SID) des C64 in einen Wertebereich von 0 bis 255 abgebildet.
- Nach der Entladung des Kondensators wiederholt sich dieser Vorgang.
- Um zwei Paddle-Paare im C64 benutzen zu können, ist im C64 ein analoger Schalter (CMOS-IC 4066) eingebaut.
- Dieser wird durch die beiden Portleitungen PA6 und PA7 des CIA #1 geschaltet.
- PA6=1 und PA7=0 Paddle A (Controlport 1) aktiv
- PA6=0 und PA7=1 Paddle B (Controlport 2) aktiv
- ACHTUNG: Bei jedem Interrupt wird wieder auf Paddle A umgeschaltet, deshalb muss für den Betrieb eines Paddles an Port 2 ein geeignetes Maschinenprogramm eingesetzt werden.
Widerstands-Kennlinie[Bearbeiten]
In diesem Messdiagramm ist zu erkennen, dass die Widerstandswerte leider nicht linear verlaufen.
Außerdem gibt es bei den Sound-Chips (SID) verschiedene Versionen, bei denen die Werte untereinander abweichen. Es ergeben sich 2 Gruppen aus dem Diagramm:
- Gruppe1: 6581 (R2) und 6581R3
- Gruppe2: 6581R4, 6581R4AR und 8580R5
SID-Erkennung[Bearbeiten]
Die folgende einfache Testschaltung für den Controlport 1 kann zwischen den beiden Gruppen unterscheiden. Der 220 kΩ Widerstand sollte im Bereich 219...221 kΩ liegen. Es empfiehlt sich den Widerstandswert nachzumessen, um am Computer ein korrektes Ergebnis zu bekommen.
10 PRINT PEEK(54297) : GOTO 10
Zieht man in der oben abgebildeten Grafik an der y-Achse (Widerstand) bei 220 kΩ eine waagrechte Linie, so erkennt man an den Schnittpunkten, dass es sich bei Werten von etwa 210 bis 235 um einen SID 6581 oder 6581R3 handelt. Bei Werten von 170 bis 190 handelt es sich um einen SID 6581R4, 6581R4AR oder 8580R5.
Vereinfacht lässt sich sagen:
- Bei Werten über 200 handelt es sich um einen SID 6581 oder 6581R3.
- Bei Werten unter 200 handelt es sich um einen SID 6581R4, 6581R4AR oder 8580R5.
Allgemeines[Bearbeiten]
Anwendungsgebiete[Bearbeiten]
- Hardware-Steuerungen
- Eingabegerät für Spiele
Vorteile gegenüber einem Joystick[Bearbeiten]
- Exaktere Eingaben mittels Potentiometers möglich.
- Da pro Controlport zwei Paddles unterstützt werden, könnten vier Spieler gleichzeitig spielen, wenn es entsprechende Spiele geben würde.
Nachteile gegenüber einem Joystick[Bearbeiten]
- nur wenige Spiele werden unterstützt
- Bewegungen nur in einer Achse nutzbar (z.B. links und rechts)
Unterschied zwischen Commodore und Atari Paddles[Bearbeiten]
Dieser besteht im Wesentlichen aus dem Widerstand der Potentiometer (Commodore = 470 kΩ, Atari = 1 MΩ). Man kann zwar CX30 Atari-Paddles am C64 benutzen, aber durch den größeren Bereich der Potentiometer sind diese am C64 extrem empfindlich, und es gibt einen großen "toten Bereich". C64-Paddles am Atari VCS hingegen sind nicht benutzbar, da man z.B. bei Pong seinen "Schläger" nicht bis an den oberen Bildschirmrand steuern kann, sondern nur bis etwa zur Mitte des Bildschirms.
Spiele mit Paddle-Unterstützung[Bearbeiten]
- Arkanoid
- Clowns
- Le Mans
- Monster Buster
- Night Driver
- Omega Race
- Panic Analogue
- Phong!
- Pinball Spectacular
- Rack'em Up
- Revs
- Sea Wolf
- Space Lords "Centaurus"
- Spy's Demise
- Super Smash
Siehe auch Liste im Thema: Welche Spiele ausser Arkanoid unterstützen Paddles? auf Forum64.de.
Weblinks[Bearbeiten]
Wikipedia: Paddle (Eingabegerät) |
Dieser Artikel wurde Artikel des Monats. |