diff --git a/src/mame/drivers/chihiro.cpp b/src/mame/drivers/chihiro.cpp index d23a545de6f..769d3ade2a8 100644 --- a/src/mame/drivers/chihiro.cpp +++ b/src/mame/drivers/chihiro.cpp @@ -733,9 +733,13 @@ int ohci_hlean2131qc_device::handle_nonstandard_request(int endpoint, USBSetupPa // default valuse for data stage for (int n = 0; n < setup->wLength; n++) endpoints[endpoint].buffer[n] = 0x50 ^ n; - endpoints[endpoint].buffer[1] = 0x4b; // PINSA register, bits 4-1 special value, must be 10 xor 15, but bit 3 is ignored since its used as the CS pin of the chip - endpoints[endpoint].buffer[2] = 0x52; // PINSB register, bit 4 connected to re/de pins of max485, bits 2-3 used as uart pins, bit 0 is the sense pin of the jvs connector - endpoints[endpoint].buffer[3] = 0x53; // OUTB register + // PINSA register, bits 4-1 special value, must be 10 xor 15, but bit 3 is ignored since its used as the CS pin of the chip + endpoints[endpoint].buffer[1] = 0x4b; + // PINSB register, bit 4 connected to re/de pins of max485, bits 2-3 used as uart pins, bit 0-1 is the sense pin of the jvs connector + // if bits 0-1 are 11, the not all the connected jvs devices have been assigned an address yet + endpoints[endpoint].buffer[2] = 0x52|3; + // OUTB register + endpoints[endpoint].buffer[3] = 0x53; // bRequest is a command value if (setup->bRequest == 0x16) { @@ -772,8 +776,8 @@ int ohci_hlean2131qc_device::handle_nonstandard_request(int endpoint, USBSetupPa // data for the packets will be transferred to the host using endpoint 4 (IN) // the nuber of bytes to transfer is returned at bytes 4 and 5 in the data stage of this control transfer // data transferred starts with a byte with value 0, then a byte with value the number of packets received, then a block of bytes for each packet - // the bytes for a packet start with the jvs node address, then a dummy one, then a 16 bit number in little endian format that specifies how many bytes follow - // the bytes that follow contain the body of the packet as received from the jvs bus + // the bytes for a packet start with the jvs node address, then a dummy one (must be 0), then a 16 bit number in little endian format that specifies how many bytes follow + // the bytes that follow contain the body of the packet as received from the jvs bus, from the 0xa0 byte to the checksum endpoints[endpoint].buffer[0] = 0; // 0 if not busy endpoints[endpoint].buffer[5] = tosend >> 8; // amount to transfer with endpoint 4 endpoints[endpoint].buffer[4] = (tosend & 0xff); diff --git a/src/mame/machine/xbox_usb.cpp b/src/mame/machine/xbox_usb.cpp index e9431c98459..29d7920b634 100644 --- a/src/mame/machine/xbox_usb.cpp +++ b/src/mame/machine/xbox_usb.cpp @@ -1,13 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Samuele Zannoli -#include - #include "emu.h" -#include "cpu/i386/i386.h" -#include "machine/lpci.h" #include "machine/pic8259.h" -#include "machine/pit8253.h" #include "machine/idectrl.h" #include "video/poly.h" #include "bitmap.h" @@ -18,7 +13,7 @@ //#define LOG_OHCI /* - * ohci usb controller + * Ohci usb controller */ #ifdef LOG_OHCI