Moved to GitHub: https://github.com/pothos/arduino-n64-controller-library, except for N64Tetris
Die Arduino-Plattform (arduino.cc) bietet einen einfachen Einstieg in die Microcontroller-Programmierung und ist gerade im Nicht-Geek-Bereich eine Erfolgsgeschichte. Die vielen Bibliotheken ermöglichen es, hauptsächlich auf der “Organisationsebene” zu bleiben - in kurzer Zeit war aus der Kombination von TVout, dem verfügbaren Tetris-Clone und einigen Modifikationen zum Speichern der Highscore im EEPROM eine archaische Spielkonsole aufgebaut. Dank dieser Anleitung konnte ein N64-Controller benutzt werden. Während für NES relativ viel Quellcode verfügbar ist, gibt es keine komfortable N64-Controller-Library, da wegen exaktem Timing Inline-Assembler verwendet wird und der PIN fest eingeschrieben ist. Meine Bibliothek ist vielleicht nicht in schönster Manier geschrieben und alles andere als optimal in der Codegröße, aber für eine Erstveröffentlichung sollte es ausreichen - komfortabel ist sie zumindest (auch alle möglichen PINs von 0 bis 13 können unabhängig voneinander für Controller benutzt werden).
Die Lizenz ist unklar, es handelt sich hauptsächlich um Modifikationen und Zusammenstellungen. Der Tetris-Port “Simple Tetris Clone” ist z.B. unter der MIT-License veröffentlicht, die meisten Bibliotheken unter der (L)GPL.
Version 1 der Library (26.03.2012) 2 der Library (26.07.2012),
getestet auf Arduino Uno: N64Controller
Hier der Quelltext für das Spiel: N64Tetris
Beispielquellcode:
#include <N64Controller.h>
N64Controller player1 (12); // PIN 12
void setup() {
player1.begin(); // Initialisierung
}
void loop() {
delay(30);
player1.update(); // Tastenzustand auslesen
if (player1.button_A() && player1.button_D_down()
|| player1.button_Start()) { // gelesene Tasten abfragen
int xachse = player1.axis_x(); // kann negativ oder positiv sein,
// je nach Ausrichtung des Analog-Sticks
}
// …
}