Titelbild Game Hero
Diese Seite verwendet eigene Cookies und Cookies von Dritten damit wir die bestmögliche Bedienbarkeit und Funktionalität bieten können. Wenn Sie auf diesen Seiten surfen, stimmen Sie der Verwendung von Cookies zu. Mehr erfahren OK

SNES-Controller am C64

Was wird benötigt?
  • C64
  • SNES-Controller
  • USBASP Programmer
  • Elektr. Komonenten (Siehe Text)
Close
LoadingBild wird geladen...
Picture

Ob Joystick oder Joypad, jeder hat seine Vorlieben und jeder hat sein Lieblings-Steuergerät. Der SNES-Controller ist sehr beliebt, auch wegen seiner ergonomischen Bauform. Dieser kann natürlich aber eben nur am Super Nintendo verwendet werden. Nicht so, wenn man einen PadSwitcher64-Adapter besitzt, mit den es nicht nur möglich ist den SNES-Controller am C64 zu verwenden, sondern auch die Tasten nach belieben neu zu belegen. In dieser Anleitung wird beschrieben wie dieser Adapter aufgebaut wird.

Quelle: Original-Anleitung - github.com/Hojo-Norem/PadSwitcher64 (GPL-3.0 License) von Hojo-Norem.

PadSwitcher64-Adapter
Klicke auf das Bild zum Vergrößern

Bevor es los geht, noch ein paar Hinweise (Wichtig!)
- Arbeite immer im Spannungsfreien Zustand. Stecke den Adapter nie in die Schnittstelle wenn der Rechner eingeschaltet ist.
- Überprüfe die Lötstellen auf Kurzschlüsse. Ein Kurzschluss kann den C64 sowie SNES-Adapter beschädigen.
- Vermeide statische Ladungen durch das Berühren eines geerdeten Objektes, wie beispielsweise einen Heizkörper. Oder verwende ein antistatisches Armband.
- Ich übernehme keine Verantwortung über Schäden die direkt oder indirekt durch diese Anleitung entstanden sind.

Die Komponenten

Als erstes wird die Platine benötigt. Die Gerber-Daten können von oshpark.com runtergeladen oder das PCB direkt bestellt werden. Wer einen anderen Dienstleister bevorzugt kann die Gerber-Daten runterladen und auf dessen Webseite wieder hochladen.

Gerber
Klicke auf das Bild zum Vergrößern

Folgende Komponenten sowie Zubehör wird außerdem benötigt:
Widerstand, 330 Ohm x1
IC-Sockel, 28-polig, schmal x1
ATMega 88A-PU x1
Elko, radial, 100µF, 16V x1
Keramik-Kondensator 100nF x1
LED 5mm, grün x1
Stiftleisten 2x3, 2,54mm x1
D-SUB-Stecker, 9-polig, Printausführung x2
SNES Controller Buchse x1

Hinweis: Bei den Controllerbuchsen die ich gekauft habe, waren die Pins auf die falsche Seite gebogen. Die Pins sollten wie im folgenden Bild gebogen sein. In meinem Fall konnte ich sie ohne Probleme zurechtbiegen.

Controller Connector
Klicke auf das Bild zum Vergrößern

USBASP Programmer + Adapter

Hinweis: Stelle sicher, dass der 10 zu 6 Pin Adapter vorhanden ist. Diesen werden wir benötigen.

USBASP Programmer
Klicke auf das Bild zum Vergrößern

SNES Controller

Hinweis: Stelle sicher, dass am Controller ein SNES Stecker (nicht USB) angebracht ist.

SNES Controller
Klicke auf das Bild zum Vergrößern
Der Aufbau

Der Aufbau ist relativ einfach, allerdings ist einiges zu beachten. Zuerst sollten die Komponenten auf der oberen Seite der Platine aufgelötet werden und erst danach die zwei DSUB9-Stecker auf der Rückseite. Denn sonst sind einige Lötpunkte nicht mehr zugänglich.

Components
Klicke auf das Bild zum Vergrößern

Hinweis: Beim Elektrolyt-Kondensator sowie bei der LED muss auf die Polarität geachtet werden. Das längere Beinchen der Komponenten ist der Plus-Pol.

Die Pins der SNES-Buchse sollte man nicht komplett in den dafür vorgesehenen Löt-Punkte schieben, damit ein kleiner Abstand zwischen C64-Gehäuse und Adapter bleibt.

Components
Klicke auf das Bild zum Vergrößern

Im nächsten Schritt können die DSUB9-Stecker angelötet werden. Hier ist es wichtig, dass das Metall-Gehäuse der Stecker keinen Kurzschluss verursachen. Stelle sicher, dass zwischen DSUB9-Stecker und Platine mindestens 2mm Abstand bleiben.

DSUB9
Klicke auf das Bild zum Vergrößern

Zum Abschluss stecken wir den ATmega in den Sockel. Achte auf die Ausrichtung! Die Kerbe des ATmega muss mit der Kerbe auf der Platine übereinstimmen.

ATmega
Klicke auf das Bild zum Vergrößern
Den ATmega programmieren

Da wir an unserem Adapter die Pins für die Programmierung angelötet haben, kann der ATmega programmiert werden ohne diesen aus den Sockel zu ziehen. Zuerst muss der USBASP Programmer samt 10 zu 6 Pin Adapter angeschlossen werden. Im Normalfall kann der 10 zu 6 Pin Adapter nicht falsch rum an den USBASP angeschlossen werden da eine Kerbe am Stecker dies verhindert.

USBASP
Klicke auf das Bild zum Vergrößern

Der USBASP Programmer muss anschließend wie folgt an den SNES-Adapter angeschlossen werden. Siehe Bild:

USBASP
Klicke auf das Bild zum Vergrößern

Als nächstes stecken wir den USBASP Programmer an einen Windows-Rechner. Dieser kann aber ohne geeigneten Treiber nichts damit anfangen. Deshalb laden wir das Programm Zadig runter welches den benötigten Treiber beinhaltet: Download hier zadig.akeo.ie.

Anschließend starten wir Zadig und wählen aus den DropDown-Menü das zu installierende Gerät (USBASP) und dann den Treiber "libusb-win32". Der Treiber wird mit "Install Driver" installiert.

Zadig
Klicke auf das Bild zum Vergrößern

Jetzt kontrollieren wir ob der Treiber korrekt installiert wurde. Drücke dazu die Windows-Taste, gib "Geräte-Manager" ein und bestätige mit Enter.

Geräte-Manager

In der Liste der installierten Geräte sollte nun der USBASP-Programmer auftauchen.

Driver

Weiter geht es mit der Installation der Software. Für die Programmierung eignet sich das Programm AVRDUDE. Allerdings ist dieses recht umständlich zu bedienen da es sich um ein Kommandozeilen-Tool handelt. Mit einer grafischen Oberfläche hingen lässt es sich viel komfortabler arbeiten. "AVRDUDESS" ist das was wir brauchen (Download hier: blog.zakkemble.net). Lade die Windows-Version runter und installiere diese. Eventuell müssen einige weitere Komponenten aus dem Internet geladen werden.

Ist das Programm bereit, müssen einige Einstellungen vorgenommen werden, und zwar folgende:

• Programmer: USBASP, http.fischl.de/usbasp/
• MCU: ATmega88P
• Fuses: L 0xE2, H 0xDF, E 0xF9
• Häkchen bei "Set fuses"

Und natürlich muss die aktuelle Firmware (PadSwitcher64.hex) runtergeladen werden. Diese öffnen laden wir nun in AVRDUDESS bei "Flash".

Firmware
Klicke auf das Bild zum Vergrößern

Und zu guter Letzt programmieren wir den ATmega mit einen Klick auf "Program!".

Program
Klicke auf das Bild zum Vergrößern
Der Funktionstest

Ist die Programmierung gelungen, dann geht es weiter zum Funktionstest. Dazu schalten wir den C64 aus und schließen den SNES-Controller sowie den SNES-Adapter an den Joystick-Ports an.

Test
Klicke auf das Bild zum Vergrößern

Zum Testen benötigen wir das Programm "PadSwitcher64.prg" das von der Githubseite github.com/Hojo-Norem/PadSwitcher64/releases runtergeladen werden kann. Das PRG-File muss natürlich irgendwie auf den C64 übertragen werden, beispielsweise mit einem SD2IEC. Ist dies erledigt, starten wir das Programm und drücken am SNES-Controller den Feuerbutton (Y).

PadSwitcher64.prg
Klicke auf das Bild zum Vergrößern

Hier können wir testen ob die Tasten des Controllers reagieren. Mit START wird zwischen Port 1 und Port 2 geschaltet. Anschließend verlassen wir das Test-Programm mit RUN/STOP.

Die Tastenbelegung ändern

Ab Werk ist im ATmega eine Standard-Tastenbelegung hinterlegt. Diese sieht wie folgt aus:
DPAD UP = UP
DPAD DOWN = DOWN
DPAD LEFT = LEFT
DPAD RIGHT = RIGHT
Y = FIRE
X = TURBO FIRE
B = UP
A = Special (DOWN + FIRE)
R = KEYBOARD MATRIX LINE (PORT 2 MODE ONLY)

Hinweis: Bei meinen Tests hat sich herausgestellt, dass die aktuelle Version des Programmes PadSwitcher64.prg ein Timing-Problem enthaltet. Zum Zeitpunkt der Tests war dies die Version 1.1111. Sollte eine Fehlermeldung angezeigt werden die besagt, dass der Adapter nicht antwortet, dann lade die ältere Version 1.11 runter. Mit dieser hatte ich (so gut wie) keine Probleme.

Timing-Problem
Klicke auf das Bild zum Vergrößern

Die vorgegebene Belegung kann nach Wünschen abgeändert werden. Dazu starten wir wieder das Programm PadSwitcher64.prg und drücken zeitlich die Controller-Tasten SELECT und START. Anschließend öffnet wir den Mapping Editor mit Y.

Hier haben wir die Möglichkeit vier verschiedene Tasten-Belegungen abzuspeichern. A, B, X und Y. In diesem Beispiel ändere ich die Belegung für A.

Button select
Klicke auf das Bild zum Vergrößern

Im Editor kann nun gewählt werden welche Taste für welche Funktion zuständig ist und das für beide Joystick-Ports. Im folgenden Beispiel habe ich UP auf die Taste X und FIRE auf die Taste B gelegt, mit Turbo Fire.

Button select
Klicke auf das Bild zum Vergrößern

Haben wir alle Einstellungen vorgenommen, laden wir die neue Belegung auf den ATmega, mit einem Tasten-Druck auf Y. Anschließend beenden wir den Editor mit X und speichern das Ganze auf das EPROM des ATmegas ab, mit zeitgleichen Drücken der Tasten SELECT und START. Würden wird die neue Belegung nicht auf das EPROM abspeichern, dann gingen die vorgenommenen Einstellungen nach einen Neustart verloren.

Haben wir alles wie gewünscht konfiguriert, starten wir den C64 neu, laden das Programm PadSwitcher64.prg und drücken den Feuerbutton (Y). Jetzt wählen wir die Tastenbelegung die wir vorhin abgeändert haben. Das geschieht mit der Tastenkombination SELECT + A (oder B, X, Y). In meinem Fall wähle ich die Belegung SELECT + A da ich diese geändert habe und teste ob die Einstellungen übernommen wurden.

Autofire und invertiertes Autofire

Die Autofire Funktion kann nicht nur für Fire-Tasten, sondern auch auf die DPad-Belegung verwendet werden. Autofire auf LINKS oder RECHTS, also wiederholtes Drücken einer einzigen Richtungs-Taste, hätte wenig Sinn, aber: Wenn wir beispielsweise Autofire auf LINKS und invertiertes Autofire auf RECHTS legen, ergibt sich ein schneller LINKS/RECHTS Richtungswechsel bei Betätigung der entsprechenden Tasten. Dies ist besonders bei Spielen nützlich wo wiederholte LINKS/RECHTS-Bewegungen gefordert werden. Im folgenden Beispiel wird RECHTS auf X (Autofire) und LINKS auf A (invertiertes Autofire) gelegt.

Autofire
Klicke auf das Bild zum Vergrößern
Zurück
- Datenschutz Besucher total: 2291114 Heute: 15