1
0
mirror of https://github.com/raphnet/gc_n64_usb-v3 synced 2024-08-13 17:03:49 -04:00
Commit Graph

40 Commits

Author SHA1 Message Date
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
Raphael Assenat
64115ad9ef remove dead code 2016-11-28 14:06:52 -05:00
Raphael Assenat
e944017c36 Bump version to 3.4, change product IDs 2016-11-28 11:45:52 -05:00
Raphael Assenat
c2fd3a10ba Need one current_pad_type var. per channel 2016-11-27 11:15:13 -05:00
Raphael Assenat
bbefc8203c Prevent freeze if host only polls one endpoint
Each joystick has its own interrupt endpoint, and the main loop
used to wait until each became ready (i.e. Serviced) in turn.

On some systems, when only one joystick is in use, only one endpoint
is polled. The inactive endpoint therefore never became ready and
the mainloop would freeze.

Rewrote part of the loop to prevent this. New flow:

1) Wait until it is time to poll the controllers
(based on current poll frequency setting)

2) Wait until either endpoints is ready.

3) Write data to first endpoint if ready, otherwise skip.

4) Write data to second endpoint if ready, otherwise skip.
2016-11-02 21:46:52 -04:00
Raphael Assenat
d7bdf59860 Need to initialize stuff *after* knowing the number of players. 2016-10-23 16:15:01 -04:00
Raphael Assenat
bb9e6dce17 Initialize context for hid set/get report 2016-10-17 22:21:58 -04:00
Raphael Assenat
81662cef2a Update copyright year 2016-10-10 15:01:22 -04:00
Raphael Assenat
96bd132b66 Give equal priority to both controllers! 2016-10-10 14:53:40 -04:00
Raphael Assenat
f6e4281321 Dual controller now available as a configured flavor 2016-10-10 14:48:42 -04:00
Raphael Assenat
4ecc3f571e Multi-player support complete
Works, but very light testing so far
2016-10-10 14:20:14 -04:00
Raphael Assenat
fb43524d34 Update gcn64txrx code for multiple channels 2016-10-09 16:17:56 -04:00
Raphael Assenat
1fcfe8b594 Implement personalities
./wait_then_flash.sh atmega32u2 $HEXFILE
2016-08-22 23:18:47 -04:00
Raphael Assenat
158fc4fdca Device descriptor in RAM 2016-08-22 22:00:54 -04:00
Raphael Assenat
553598ab64 usb usbpad_init 2016-08-22 21:57:21 -04:00
Raphael Assenat
b9a6f23607 reduce HID max packet size to 32 2016-05-28 00:17:43 -04:00
Raphael Assenat
3ec1c0b711 Version 3.2 strings and PID 2016-05-22 17:33:26 -04:00
Raphael Assenat
ea5d5cf35d Updated MCU port default values (clock) 2016-01-22 00:05:36 -05:00
Raphael Assenat
019301b7b2 Fix null pointer dereference 2015-12-08 21:54:08 -05:00
Raphael Assenat
23f10866e9 GPLv3, Copyright updates, whitespace clean up 2015-12-06 21:55:06 -05:00
Raphael Assenat
4a6ccfb448 Gamecube hotplugging infrastructure 2015-12-06 16:36:33 -05:00
Raphael Assenat
e033576104 error count should be init. to zero 2015-11-02 21:52:32 -05:00
Raphael Assenat
a56c4eef4e Add error counting (for controller swapping) 2015-10-31 15:58:53 -04:00
Raphael Assenat
5ff36596bb Implement get_controller_type 2015-10-31 01:39:24 -04:00
Raphael Assenat
b7b07a37ee Do away with the gcn64 work buffer (saves more memory!) 2015-10-28 23:30:26 -04:00
Raphael Assenat
cb9be3f604 Honor the poll rate setting even without a controller present 2015-10-27 22:10:30 -04:00
Raphael Assenat
6fafb86d46 Use a timer for controller polling interval 2015-10-17 18:34:11 -04:00
Raphael Assenat
5502bfd418 Implement main in state machine form
- Check if interrupt send would block
2015-10-17 17:44:14 -04:00
Raphael Assenat
54196a0d76 Move more logic from main to usbpad, implement serial from eeprom 2015-10-17 17:21:22 -04:00
Raphael Assenat
0627841025 Channels for raw SI commands
Configurable poll interval
2015-09-09 21:41:41 -04:00
Raphael Assenat
3b935d12fc Implement hid data interface for config and special functions 2015-08-23 02:51:10 -04:00
Raphael Assenat
73ff27da26 misc 2015-08-22 00:46:19 -04:00
Raphael Assenat
290588dbd5 Use gcn64_detectController to detect N64 vs Gamecube controllers 2015-08-21 23:31:50 -04:00
Raphael Assenat
829ba2b560 remove unused code 2015-08-21 23:23:51 -04:00
Raphael Assenat
f29ced5298 N64/Gamecube controller detection 2015-08-21 00:17:07 -04:00
Raphael Assenat
a07c8cbd70 Use new gampad data and usbpad 2015-08-20 23:39:54 -04:00
Raphael Assenat
bc55a51cf7 Cleanup report descriptor a bit.
- No longer an extra button 0 in linux
2015-08-18 23:24:23 -04:00
Raphael Assenat
a84b70c369 Start bootloader by USB message 2015-08-16 01:59:38 -04:00
Raphael Assenat
27840d9bcf printf_P to save memory 2015-06-14 00:48:22 -04:00
Raphael Assenat
c59242383f WIP 2015-06-13 23:44:21 -04:00