Autofire-Funktion für den C64 (ATtiny)
- Grundwissen für Arduino oder Programmer
- Arduino oder einen Programmer
- Verschiedene Komponenten (Siehe Komponeten-Liste)



Einige Joysticks haben bereits ab Werk eine Autofire-Funktion. Diese ist besonders bei Shooter sehr nützlich. Spätestens wenn der Finger schmerzt, sollte an eine Autofire-Funktion gedacht werden. Und wer sowieso einen Arduino besitzt, oder plant einen zu erwerben, kann mit wenig Aufwand und Kosten eine kleine Platine bauen, die am Joystickport angeschlossen wird und die Verwendung von jeden beliebigen Joystick erlaubt. Es muss also weder der Joystick noch der C64 modifiziert werden.
WICHTIG! UNBEDINGT LESEN!
Bevor es losgeht, noch der Disclaimer:
• Dieses Projekt sollte als Experiment und weniger als Anleitung gesehen werden.
• Ich übernehme keine Verantwortung für Schäden die direkt oder indirekt durch dieses Projekt entstanden sind. Alles geschieht auf eigene Gefahr.
• Baue diese Hardware nicht wenn du dir dies nicht zumutest. Besser kein Projekt als ein zerstörter C64.
• Bei meinen Tests konnte ich keine Probleme mit der hergestellten Hardware feststellen, was nicht bedeutet, dass bei dir auch alles reibungslos verläuft.
• Immer spannungsfrei arbeiten. Stecke immer die Stromversorgung aus wenn du an elektrischen Teilen arbeitest.
Die Teile-Liste
In der folgenden Liste sind die Komponenten aufgelistet die benötigt werden wenn das Projekt auf eine Platine gelötet werden soll. Neben den Arduino wird aber eine Experimentierplatine mit ein paar Steck-Litzen empfohlen.
Die LED-Farbe, sowie die Bauart des Poti's und des Tasters können natürlich frei gewählt werden, solange die elektrischen Eigenschaften die selben bleiben.
• Attiny85
• IC-Sockel, 8-polig
• 10KΩ Potentiometer
• 220Ω Widerstand
• Leuchtdiode
• 1N 4007 Gleichrichterdiode
• Lochrasterplatine
• Drucktaster
• D-SUB-Stecker, 9-polig
• D-SUB-Buchse, 9-polig
• Kupferlitze 1x0,14mm²
Der Schaltplan
Die Komponenten sollten, wie im folgenden Bild zu sehen ist, verbaut werden. Am besten, man probiert das ganze zuerst auf einer Experimentierplatine aus bevor das Ganze am C64 angeschlossen wird. Am Joystick-Port wird der Negative Pol geschaltet, nicht die 5V Leitung. Achte besonders auf die richtige Polung der Gleichrichterdiode.

Klicke auf das Bild zum Vergrößern

Klicke auf das Bild zum Vergrößern
Am Joystickport benötigen wir, wie im Schema zu sehen ist, die Pins 6, 7 und 8. Damit nachher ein Joystick noch am Port eingesteckt werden kann, löten wir den 9poligen D-SUB Stecker und die Buchse mit den Kontakten zusammen.

Klicke auf das Bild zum Vergrößern
An den Kontakten zwischen Stecker und Buchse löten wir die Litzen an den oben genannten Pins.
Der Attiny85
Natürlich könnte der Arduino selbst die Autofire-Funktion übernehmen, aber die Arbeit übernimmt der Attiny85. Da es sich um eine einfache Funktion handelt, reicht der Attiny85 vollkommen aus. Dieser muss mit den nötigen Daten bespielt werden. Dazu wird ein Programmer benötigt, was in unserem Fall der Arduino übernimmt. Hier wird allerdings nicht gezeigt wie ein Attiny gebrannt wird, denn der Vorgang kann je nach Arduino-Board variieren. Ich verweise stattdessen auf folgende Seiten:
Für Arduino UNO: www.heise.de
Für Arduino Mega 2560: blog.the-jedi.co.uk
Der Bootloader sollte auf 1Mhz eingestellt werden.
Selbstverständlich kann auch ein beliebiger Programmer, wie beispielsweise der USB MiniPro TL866CS verwendet werden.
Für Arduino Mega2560 Besitzer: Zum jetzigen Zeitpunkt (Stand 25.12.17) gibt es offensichtlich Probleme mit der Attiny-Board-Unterstützung. Genauer gesagt: Der Brennvorgang des Bootloaders wird mit einer Fehlermeldung abgebrochen, allerdings nur bei neuere Arduino IDE-Versionen. Bei der Version 1.6.x soll dieses Problem nicht auftreten. Ich habe dieses Problem gelöst, indem ich die Version 1.x der Arduino IDE verwendet habe und damit den Bootloader gebrannt habe. Danach kann der Attiny85 auch mit den neueren Arduino IDE's verwendet werden. Auch der Bootloader lässt sich nun wieder mit neueren Arduino IDE-Versionen brennen. Es bleibt zu hoffen, dass dieses Problem mit einen Patch behoben wird.
Haben wir das geschafft spielen wir das Sketch mit der Arduino IDE auf den Attiny. Dieser kann hier runtergeladen werden.

Klicke auf das Bild zum Vergrößern
Selbstverständlich können wir alles viel kompakter bauen

Klicke auf das Bild zum Vergrößern
Oder noch besser: Wir verbauen alles in ein kleines Gehäuse. Das überlassen wir aber den eigenen Geschmack.
Der Funktionstest
Achtung: Spätestens jetzt sollte nochmal alles gründlich auf Fehler durchsucht werden. Denn eine falsche Verdrahtung kann den C64 zerstören!
Um die Funktion zu überprüfen, stecken wir unsere Hardware an einen beliebigen Joystickport und schalten den C64 ein.

Klicke auf das Bild zum Vergrößern
Als Test-Software reicht ein Spiel vollkommen aus, oder alternativ das Tool "Joystick Tester". Damit sehen wir ganz genau wenn der Firebutton betätigt wird.
Jetzt betätigen wir den Taster auf der Platine. Die LED sollte nun Blinken. Der Feuerbutton wird im selben Takt wie die LED betätigt. Die Geschwindigkeit der Autofire-Funktion wird mit den Poti eingestellt. Ein weiterer Druck auf den Taster schaltet die Autofire-Funktion wieder aus.
