mirror of
https://github.com/raphnet/gc_n64_usb-v3
synced 2024-12-22 07:18:52 -05:00
Force rumble through command
This commit is contained in:
parent
05a30a21ba
commit
3757250833
@ -1,2 +1,2 @@
|
|||||||
OBJS=main.o usb.o usbpad.o mappings.o gcn64_protocol.o n64.o gamecube.o usart1.o bootloader.o eeprom.o config.o hiddata.o usbstrings.o intervaltimer.o version.o gcn64txrx.o gamepads.o
|
OBJS=main.o usb.o usbpad.o mappings.o gcn64_protocol.o n64.o gamecube.o usart1.o bootloader.o eeprom.o config.o hiddata.o usbstrings.o intervaltimer.o version.o gcn64txrx.o gamepads.o
|
||||||
VERSIONSTR=\"3.0.0\"
|
VERSIONSTR=\"3.1.0\"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
- October 5, 2015 : Version 3.1.0
|
||||||
|
- Add a test rumble command (for GUI tool, or for simple rumble control)
|
||||||
|
|
||||||
- October 2, 2015 : Version 3.0.0
|
- October 2, 2015 : Version 3.0.0
|
||||||
Initial release:
|
Initial release:
|
||||||
- Gamecube and N64 controller support
|
- Gamecube and N64 controller support
|
||||||
|
@ -115,6 +115,12 @@ static void hiddata_processCommandBuffer(void)
|
|||||||
cmdbuf[2] = current_pad_type;
|
cmdbuf[2] = current_pad_type;
|
||||||
cmdbuf_len = 3;
|
cmdbuf_len = 3;
|
||||||
break;
|
break;
|
||||||
|
case RQ_GCN64_SET_VIBRATION:
|
||||||
|
// CMD : RQ, CHN, Vibrate
|
||||||
|
// Answer: RQ, CHN, Vibrate
|
||||||
|
usbpad_forceVibrate(cmdbuf[2]);
|
||||||
|
cmdbuf_len = 3;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#define RQ_GCN64_GET_VERSION 0x04
|
#define RQ_GCN64_GET_VERSION 0x04
|
||||||
#define RQ_GCN64_GET_SIGNATURE 0x05
|
#define RQ_GCN64_GET_SIGNATURE 0x05
|
||||||
#define RQ_GCN64_GET_CONTROLLER_TYPE 0x06
|
#define RQ_GCN64_GET_CONTROLLER_TYPE 0x06
|
||||||
|
#define RQ_GCN64_SET_VIBRATION 0x07
|
||||||
#define RQ_GCN64_RAW_SI_COMMAND 0x80
|
#define RQ_GCN64_RAW_SI_COMMAND 0x80
|
||||||
#define RQ_GCN64_JUMP_TO_BOOTLOADER 0xFF
|
#define RQ_GCN64_JUMP_TO_BOOTLOADER 0xFF
|
||||||
|
|
||||||
|
11
usbpad.c
11
usbpad.c
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
|
|
||||||
static volatile unsigned char gamepad_vibrate = 0; // output
|
static volatile unsigned char gamepad_vibrate = 0; // output
|
||||||
static unsigned char vibration_on = 0;
|
static unsigned char vibration_on = 0, force_vibrate = 0;
|
||||||
static unsigned char constant_force = 0;
|
static unsigned char constant_force = 0;
|
||||||
static unsigned char magnitude = 0;
|
static unsigned char magnitude = 0;
|
||||||
|
|
||||||
@ -209,8 +209,17 @@ void usbpad_update(const gamepad_data *pad_data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void usbpad_forceVibrate(char force)
|
||||||
|
{
|
||||||
|
force_vibrate = force;
|
||||||
|
}
|
||||||
|
|
||||||
char usbpad_mustVibrate(void)
|
char usbpad_mustVibrate(void)
|
||||||
{
|
{
|
||||||
|
if (force_vibrate) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (!vibration_on) {
|
if (!vibration_on) {
|
||||||
gamepad_vibrate = 0;
|
gamepad_vibrate = 0;
|
||||||
} else {
|
} else {
|
||||||
|
1
usbpad.h
1
usbpad.h
@ -9,6 +9,7 @@ unsigned char *usbpad_getReportBuffer(void);
|
|||||||
|
|
||||||
void usbpad_update(const gamepad_data *pad_data);
|
void usbpad_update(const gamepad_data *pad_data);
|
||||||
char usbpad_mustVibrate(void);
|
char usbpad_mustVibrate(void);
|
||||||
|
void usbpad_forceVibrate(char force);
|
||||||
|
|
||||||
uint8_t usbpad_hid_set_report(const struct usb_request *rq, const uint8_t *data, uint16_t len);
|
uint8_t usbpad_hid_set_report(const struct usb_request *rq, const uint8_t *data, uint16_t len);
|
||||||
uint16_t usbpad_hid_get_report(struct usb_request *rq, const uint8_t **dat);
|
uint16_t usbpad_hid_get_report(struct usb_request *rq, const uint8_t **dat);
|
||||||
|
Loading…
Reference in New Issue
Block a user