Implement personalities
./wait_then_flash.sh atmega32u2 $HEXFILE
This commit is contained in:
parent
0c66478dc5
commit
1fcfe8b594
|
@ -1,3 +1,7 @@
|
||||||
|
- August 22, 2016 : Version 3.2.1
|
||||||
|
- Implement N64-only and GC-only personalities (Different product ID and
|
||||||
|
device name)
|
||||||
|
|
||||||
- May 22, 2016 : Version 3.2.0
|
- May 22, 2016 : Version 3.2.0
|
||||||
- Fix reconnecting loop in MacOS X
|
- Fix reconnecting loop in MacOS X
|
||||||
- Change gamecube trigger HID usage (Slider became Z). Now it works fine in openEMU.
|
- Change gamecube trigger HID usage (Slider became Z). Now it works fine in openEMU.
|
||||||
|
|
26
main.c
26
main.c
|
@ -36,6 +36,11 @@
|
||||||
#include "hiddata.h"
|
#include "hiddata.h"
|
||||||
#include "usbstrings.h"
|
#include "usbstrings.h"
|
||||||
#include "intervaltimer.h"
|
#include "intervaltimer.h"
|
||||||
|
#include "requests.h"
|
||||||
|
|
||||||
|
#define GCN64_USB_PID 0x001D
|
||||||
|
#define N64_USB_PID 0x0020
|
||||||
|
#define GC_USB_PID 0x0021
|
||||||
|
|
||||||
/* Those .c files are included rather than linked for we
|
/* Those .c files are included rather than linked for we
|
||||||
* want the sizeof() operator to work on the arrays */
|
* want the sizeof() operator to work on the arrays */
|
||||||
|
@ -126,7 +131,7 @@ static const struct cfg0 cfg0 PROGMEM = {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct usb_device_descriptor device_descriptor = {
|
struct usb_device_descriptor device_descriptor = {
|
||||||
.bLength = sizeof(struct usb_device_descriptor),
|
.bLength = sizeof(struct usb_device_descriptor),
|
||||||
.bDescriptorType = DEVICE_DESCRIPTOR,
|
.bDescriptorType = DEVICE_DESCRIPTOR,
|
||||||
.bcdUSB = 0x0101,
|
.bcdUSB = 0x0101,
|
||||||
|
@ -135,7 +140,7 @@ const struct usb_device_descriptor device_descriptor = {
|
||||||
.bDeviceProtocol = 0,
|
.bDeviceProtocol = 0,
|
||||||
.bMaxPacketSize = 64,
|
.bMaxPacketSize = 64,
|
||||||
.idVendor = 0x289B,
|
.idVendor = 0x289B,
|
||||||
.idProduct = 0x001D,
|
.idProduct = GCN64_USB_PID,
|
||||||
.bcdDevice = 0x0300, // 1.0.0
|
.bcdDevice = 0x0300, // 1.0.0
|
||||||
.bNumConfigurations = 1,
|
.bNumConfigurations = 1,
|
||||||
.iManufacturer = 1,
|
.iManufacturer = 1,
|
||||||
|
@ -294,6 +299,23 @@ int main(void)
|
||||||
|
|
||||||
usbpad_init();
|
usbpad_init();
|
||||||
|
|
||||||
|
switch (g_eeprom_data.cfg.mode)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case CFG_MODE_STANDARD:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CFG_MODE_N64_ONLY:
|
||||||
|
usbstrings_changeProductString(L"N64 to USB v"VERSIONSTR_SHORT);
|
||||||
|
device_descriptor.idProduct = N64_USB_PID;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CFG_MODE_GC_ONLY:
|
||||||
|
usbstrings_changeProductString(L"Gamecube to USB v"VERSIONSTR_SHORT);
|
||||||
|
device_descriptor.idProduct = GC_USB_PID;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
sei();
|
sei();
|
||||||
usb_init(&usb_params);
|
usb_init(&usb_params);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue