1
0
mirror of https://github.com/pothos/arduino-n64-controller-library synced 2024-12-21 22:58:50 -05:00
Go to file
Daniel Schaal ec03abcbab Convert to modern arduino library
Add library.properties, move source to src
2017-05-14 13:12:01 +02:00
N64Controller Convert to modern arduino library 2017-05-14 13:12:01 +02:00
README moved here from http://pothos.blogsport.eu/2012/03/26/arduino-n64-controller-library-und-tetris-port/ 2014-10-08 02:13:04 +02:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Arduino N64 Controller Library

Based on the work in http://www.instructables.com/id/Use-an-Arduino-with-an-N64-controller/ here comes a comfortable library for usage with e.g. Arduino Uno. For NES there is already http://code.google.com/p/nespad/ . This library uses inline assembly and controllers can be attached to PIN 0 up to 13. But be aware that it's not written in best way possible. Place the folder N64Controller into your folder 'libraries'.

I used it in combination with TVout ( http://code.google.com/p/arduino-tvout/ ) and EEPROM ( http://arduino.cc/playground/Code/EEPROMWriteAnything ) for highscore I modified an existing Tetris port which itself uses Simple Tetris Clone under MIT license to be useing this library here and the result is quite nice: http://pothos.blogsport.eu/files/2012/03/N64Tetris.zip


Example code for library usage:


#include <N64Controller.h>

N64Controller player1 (12); // this controler for player one is on PIN 12

void setup() {
    player1.begin(); // Initialisation
}

void loop() {
    delay(30);
    player1.update(); // read key state
    if (player1.button_A() && player1.button_D_down()
        || player1.button_Start()) { // has no deeper meaning ;)
        int xachse = player1.axis_x(); // can be negative oder positive
                                   // regarding to orientation of the analog stick
    }
    // …
}

Wireing:

To use, hook up the following to the Arduino:
Digital I/O 2: N64 serial line
All appropriate grounding and power lines, i.e.
GND to left N64 controller PIN, Dig.PIN2 to middle Serial/Signal,
3.3V to right N64 PIN
   /------------\
  / O    O     O \
 | GND Signl 3.3V |
 |________________|
Maybe: connect PIN X with external 1K pull-up resistor to the 3.3V rail
Default and fallback PIN is 2



Gamecube controller to Nintendo 64 adapter
 by Andrew Brown
Rewritten for N64 to HID by Peter Den Hartog
Modified to be a library with selectable pins by Kai Lüke