Go to file
Raphael Assenat 4178ca2e52 tool to tools 2015-12-06 23:10:27 -05:00
misc Misc tools 2015-08-20 23:40:35 -04:00
scripts udev rules 2015-11-03 20:30:08 -05:00
tools tool to tools 2015-12-06 23:10:27 -05:00
.gitignore WIP 2015-06-13 23:44:21 -04:00
LICENSE GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
Makefile rename build file 2015-11-02 21:57:15 -05:00
Makefile.inc Force rumble through command 2015-11-06 23:27:30 -05:00
Makefile.stk525 rename build file 2015-11-02 21:57:15 -05:00
README.md tool to tools 2015-12-06 23:10:27 -05:00
bootloader.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
bootloader.h Start bootloader by USB message 2015-08-16 01:59:38 -04:00
changelog.txt GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
config.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
config.h Add flags for config 2015-10-17 23:18:56 -04:00
dataHidReport.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
eeprom.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
eeprom.h Implement hid data interface for config and special functions 2015-08-23 02:51:10 -04:00
enter_bootloader.sh Send command to enter bootloader when flashing 2015-09-09 22:56:21 -04:00
gamecube.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
gamecube.h Add gamecube support (and rework makefiles) 2015-08-21 00:16:34 -04:00
gamepads.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
gamepads.h Gamecube hotplugging infrastructure 2015-12-06 16:36:33 -05:00
gcn64_protocol.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
gcn64_protocol.h Do away with the gcn64 work buffer (saves more memory!) 2015-10-28 23:30:26 -04:00
gcn64txrx.S gcn64txrx: Return an error code specific to overflow 2015-12-06 16:11:29 -05:00
gcn64txrx.h gcn64txrx: Return an error code specific to overflow 2015-12-06 16:11:29 -05:00
hiddata.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
hiddata.h Implement hid data interface for config and special functions 2015-08-23 02:51:10 -04:00
intervaltimer.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
intervaltimer.h Use a timer for controller polling interval 2015-10-17 18:34:11 -04:00
main.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
main.h Implement get_controller_type 2015-10-31 01:39:24 -04:00
mappings.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
mappings.h Button mapping framework 2015-08-22 00:44:51 -04:00
n64.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
n64.h Use new gampad data and usbpad 2015-08-20 23:39:54 -04:00
reportdesc.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
requests.h Force rumble through command 2015-11-06 23:27:30 -05:00
usart1.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
usart1.h WIP 2015-06-13 23:44:21 -04:00
usb.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
usb.h Add a function to test if USB interrupt send would block 2015-10-17 17:43:44 -04:00
usbpad.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
usbpad.h Force rumble through command 2015-11-06 23:27:30 -05:00
usbstrings.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
usbstrings.h Move more logic from main to usbpad, implement serial from eeprom 2015-10-17 17:21:22 -04:00
util.h Start bootloader by USB message 2015-08-16 01:59:38 -04:00
version.c GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
version.h Use different signature for stk525 build 2015-10-26 23:33:39 -04:00
wait_then_flash.sh WIP 2015-06-13 23:44:21 -04:00

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