You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Raphael Assenat 8a3d47d692 fix release script 6 years ago
misc Misc tools 6 years ago
scripts Fix tool -> tools 6 years ago
.gitignore WIP 6 years ago
LICENSE GPLv3, Copyright updates, whitespace clean up 6 years ago
Makefile Move scripts to scripts/ 6 years ago
Makefile.inc Force rumble through command 6 years ago
Makefile.stk525 Move scripts to scripts/ 6 years ago
README.md tool to tools 6 years ago
bootloader.c GPLv3, Copyright updates, whitespace clean up 6 years ago
bootloader.h Start bootloader by USB message 6 years ago
changelog.txt fix release date 6 years ago
config.c GPLv3, Copyright updates, whitespace clean up 6 years ago
config.h Add flags for config 6 years ago
dataHidReport.c GPLv3, Copyright updates, whitespace clean up 6 years ago
eeprom.c GPLv3, Copyright updates, whitespace clean up 6 years ago
eeprom.h Implement hid data interface for config and special functions 6 years ago
gamecube.c GPLv3, Copyright updates, whitespace clean up 6 years ago
gamecube.h Add gamecube support (and rework makefiles) 6 years ago
gamepads.c GPLv3, Copyright updates, whitespace clean up 6 years ago
gamepads.h Gamecube hotplugging infrastructure 6 years ago
gcn64_protocol.c GPLv3, Copyright updates, whitespace clean up 6 years ago
gcn64_protocol.h Do away with the gcn64 work buffer (saves more memory!) 6 years ago
gcn64txrx.S gcn64txrx: Return an error code specific to overflow 6 years ago
gcn64txrx.h gcn64txrx: Return an error code specific to overflow 6 years ago
hiddata.c Fix warning 6 years ago
hiddata.h Implement hid data interface for config and special functions 6 years ago
intervaltimer.c GPLv3, Copyright updates, whitespace clean up 6 years ago
intervaltimer.h Use a timer for controller polling interval 6 years ago
main.c Updated MCU port default values (clock) 6 years ago
main.h Implement get_controller_type 6 years ago
mappings.c GPLv3, Copyright updates, whitespace clean up 6 years ago
mappings.h Button mapping framework 6 years ago
n64.c GPLv3, Copyright updates, whitespace clean up 6 years ago
n64.h Use new gampad data and usbpad 6 years ago
release.sh fix release script 6 years ago
reportdesc.c GPLv3, Copyright updates, whitespace clean up 6 years ago
requests.h Force rumble through command 6 years ago
usart1.c GPLv3, Copyright updates, whitespace clean up 6 years ago
usart1.h WIP 6 years ago
usb.c GPLv3, Copyright updates, whitespace clean up 6 years ago
usb.h Add a function to test if USB interrupt send would block 6 years ago
usbpad.c GPLv3, Copyright updates, whitespace clean up 6 years ago
usbpad.h Fix warning 6 years ago
usbstrings.c GPLv3, Copyright updates, whitespace clean up 6 years ago
usbstrings.h Move more logic from main to usbpad, implement serial from eeprom 6 years ago
util.h Start bootloader by USB message 6 years ago
version.c GPLv3, Copyright updates, whitespace clean up 6 years ago
version.h Use different signature for stk525 build 6 years ago

README.md

Gamecube/N64 to USB adapter

Introduction

This is the source code for a Gamecube/N64 controller to USB adapter firmware meant to run on raphnet.net Multiuse PCB-X.

The project homepage is located at: http://www.raphnet.net/electronique/multiuse_pcbX/index.php

License

The project is released under the General Public License version 3.

Directories

  • / : The firmware source code
  • tool/ : This directory contains utilities to configure and update an adapter, manipulate mempak image files, etc.
  • scripts/ : Scripts and/or useful files

Compiling the firmware

You will need a working avr-gcc toolchain with avr-libc and standard utilities such as make. Just type 'make' and it should build just fine. Under Linux at least.

Programming the firmware

The makefile has a convenient 'flash' target which sends a command to the firmware to enter the bootloader and then executes dfu-programmer (it must of course be installed) with the correct arguments.

Note that the tool must be compiled first and your permissions must also be set so that your user may access the device. See 'Using the tools' below for more information.

Compiling the tools

In the tool/ directory, just type make.

There are a few dependencies:

  • libhidapi-dev
  • libhidapi-hidraw0
  • pkg-config
  • gtk3 (for the gui only)

Provided you have all the dependencies installed, under Linux at least, it should compile without errors. For other environments such has MinGW, there are provisions in the makefile to auto-detect and tweak the build accordingly, but it if fails, be prepared to hack the makefile.

Using the tools

Under Linux, you should configure udev to give the proper permissions to your user, otherwise communicating with the device won't be possible. The same requirement also applies to dfu-programmer.

An easy way to do this is to copy the two files below to /etc/udev/rules.d, restart udev and reconnect the devices.

scripts/99-atmel-dfu.rules scripts/99-raphnet.rules

For information on how to actually /use/ the tools, try --help. Ex:

$ ./gcn64ctl --help