Go to file
Raphael Assenat b22985712f Add stack overgrow detection
If the stack ever grows too large (and starts overwriting variables
in .bss) the firmware jumps into the bootloader. This is better than
just continuing to run with strange side effects.
2017-01-08 15:14:55 -05:00
misc Misc tools 2015-08-20 23:40:35 -04:00
scripts Add new product IDs to udev rules 2016-10-10 14:53:25 -04: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 Add stack overgrow detection 2017-01-08 15:14:55 -05:00
Makefile.inc Add stack overgrow detection 2017-01-08 15:14:55 -05:00
Makefile.stk525 Add stack overgrow detection 2017-01-08 15:14:55 -05:00
README.md update project name and homepages 2016-11-27 14:34:03 -05:00
bootloader.c Update copyright year 2016-10-10 15:01:22 -04:00
bootloader.h Start bootloader by USB message 2015-08-16 01:59:38 -04:00
changelog.txt Changelog entries for 3.3.2 2016-11-27 11:16:33 -05:00
config.c Update copyright year 2016-10-10 15:01:22 -04:00
config.h Add flags for config 2015-10-17 23:18:56 -04:00
dataHidReport.c Increate feature report size to 63 bytes 2016-12-03 14:15:00 -05:00
eeprom.c Update copyright year 2016-10-10 15:01:22 -04:00
eeprom.h Implement hid data interface for config and special functions 2015-08-23 02:51:10 -04:00
gamecube.c ifdef unused rawdata fields to save memory 2017-01-08 10:50:01 -05:00
gamecube.h Multi-player support complete 2016-10-10 14:20:14 -04:00
gamepads.c Each channel needs its own buffer... 2016-10-23 21:44:42 -04:00
gamepads.h ifdef unused rawdata fields to save memory 2017-01-08 10:50:01 -05:00
gcn64_protocol.c Update copyright year 2016-10-10 15:01:22 -04:00
gcn64_protocol.h Update gcn64txrx code for multiple channels 2016-10-09 16:17:56 -04:00
gcn64txrx.S Update gcn64txrx code for multiple channels 2016-10-09 16:17:56 -04:00
gcn64txrx.h Update gcn64txrx code for multiple channels 2016-10-09 16:17:56 -04:00
hiddata.c Implement RQ_GCN64_BLOCK_IO 2016-12-03 14:15:22 -05:00
hiddata.h Multi-player support complete 2016-10-10 14:20:14 -04:00
intervaltimer.c Update copyright year 2016-10-10 15:01:22 -04:00
intervaltimer.h Use a timer for controller polling interval 2015-10-17 18:34:11 -04:00
main.c Add stack overgrow detection 2017-01-08 15:14:55 -05:00
main.h Need one current_pad_type var. per channel 2016-11-27 11:15:13 -05:00
mappings.c Update copyright year 2016-10-10 15:01:22 -04:00
mappings.h Button mapping framework 2015-08-22 00:44:51 -04:00
n64.c ifdef unused rawdata fields to save memory 2017-01-08 10:50:01 -05:00
n64.h Use new gampad data and usbpad 2015-08-20 23:39:54 -04:00
release.sh Create an annotated tag 2016-02-29 18:44:52 -05:00
reportdesc.c Update copyright year 2016-10-10 15:01:22 -04:00
requests.h Add RQ_GCN64_BLOCK_IO 2016-12-03 14:14:51 -05:00
stkchk.c Add stack overgrow detection 2017-01-08 15:14:55 -05:00
stkchk.h Add stack overgrow detection 2017-01-08 15:14:55 -05:00
usart1.c Update copyright year 2016-10-10 15:01:22 -04:00
usart1.h WIP 2015-06-13 23:44:21 -04:00
usb.c Multi-player support complete 2016-10-10 14:20:14 -04:00
usb.h Multi-player support complete 2016-10-10 14:20:14 -04:00
usbpad.c Multi-player support complete 2016-10-10 14:20:14 -04:00
usbpad.h Multi-player support complete 2016-10-10 14:20:14 -04:00
usbstrings.c Update copyright year 2016-10-10 15:01:22 -04:00
usbstrings.h Dynamic device string 2016-08-22 23:18:37 -04:00
util.h Start bootloader by USB message 2015-08-16 01:59:38 -04:00
version.c Update copyright year 2016-10-10 15:01:22 -04:00
version.h Use different signature for stk525 build 2015-10-26 23:33:39 -04:00

README.md

Gamecube/N64 to USB adapter firmware (3rd generation)

Introduction

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

Homepage

License

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

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.