<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://xboxdevwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DarkGabbz</id>
		<title>xboxdevwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://xboxdevwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DarkGabbz"/>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/Special:Contributions/DarkGabbz"/>
		<updated>2026-05-24T09:52:41Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6768</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6768"/>
				<updated>2019-08-14T13:26:25Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There were several different retail Xbox hardware revisions, which include the following:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** TSOP Size now 256k (Initial Size 1024k)&lt;br /&gt;
** Updated Board Layout&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Updated Board Layout&lt;br /&gt;
** Switched to the &amp;quot;Focus&amp;quot; Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** New Board Layout with additional RAM Pads removed&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Switched to the &amp;quot;XCalibur&amp;quot; Video Encoder&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
Any Xbox DVD drive can be used in any retail Xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
==== THOMSON TGM600 ====&lt;br /&gt;
&lt;br /&gt;
The first manufacture is sadly also the worst of all Dvdrom drives manufactured for the original xbox.&lt;br /&gt;
It has a Cirrus Logic CL-CR3710-60EC-F as its main controller and a 8/3062 HD 64F3062F25 16bit H8/300H secondary samller MPU,at 25Mhz &lt;br /&gt;
Unkown sofar if there is external flash or if its inside the Cirrus Logic IC.&lt;br /&gt;
&lt;br /&gt;
==== SAMSUNG SDG605 ====&lt;br /&gt;
&lt;br /&gt;
The Samsung drive is a very popular DVDrom drive for its compatibility for most media types and better quality laser. There are 2 mayor revisions found for this manufacturer&lt;br /&gt;
* X00603-005  Plays CDR   &lt;br /&gt;
* X00603-006  Wont play CDR&lt;br /&gt;
&lt;br /&gt;
The DVDrom drive is using the MT1358E (MT1359E is the 360 Sata version) from Mediatek, and has a 39SF020A flashrom.&lt;br /&gt;
If the firmware from this drive is applied to a SAMSUNG 616T or 616F PC dvd drive it will behave as a Xbox one, modified hardware will allow for tray state and eject to work.&lt;br /&gt;
&lt;br /&gt;
==== PHILLIPS VAD6053 ====&lt;br /&gt;
&lt;br /&gt;
Also named: VAD6011/21 apear to have no brand or partnumber on its large main controller,might be Cirrus Logic based on its size and use of a Philips secondary smaller mcu. flash might be a  39SF020A  from SST. The laser ribbon cable connector is different for its various revisions, a detail one must take into account when swapping controller boards.&lt;br /&gt;
&lt;br /&gt;
There should be a tutorial on how to convert a PC dvdrom drive Pioneer 500M with the Philips firmware to be a Xbox dvdrom drive.&lt;br /&gt;
&lt;br /&gt;
==== HITACHI GDR-8050L ====&lt;br /&gt;
&lt;br /&gt;
The latest manufacture for the DVDrom drive probably used a Panasonic MN103S89FDA for its main controler, appears to have no external flashrom.&lt;br /&gt;
with this firmware and modified hardware for Eject and traystate, a LG GDR-8163B or LG DRD-8160B might act as a drop in replacement after altering either case.&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is capable of reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he successfully flashed a Hitachi drive to boot a copied game on an unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6758</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6758"/>
				<updated>2019-07-30T21:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There were several different retail Xbox hardware revisions, which include the following:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** TSOP Size now 256k (Initial Size 1024k)&lt;br /&gt;
** Updated Board Layout&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Updated Board Layout&lt;br /&gt;
** Switched to the &amp;quot;Focus&amp;quot; Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** New Board Layout with additional RAM Pads removed&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Switched to the &amp;quot;XCalibur&amp;quot; Video Encoder&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
Any Xbox DVD drive can be used in any retail Xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is capable of reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he successfully flashed a Hitachi drive to boot a copied game on an unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Patents&amp;diff=6757</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Patents&amp;diff=6757"/>
				<updated>2019-07-30T21:17:50Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Date fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here a list of patents that might be related to the original Xbox:&lt;br /&gt;
&lt;br /&gt;
* Filed 1997-11-25 by Nvidia: https://www.google.com/patents/US6697063 &amp;quot;Rendering pipeline&amp;quot;&lt;br /&gt;
* Filed 1998-12-23 by Microsoft: https://www.google.com/patents/US6417858 &amp;quot;Processor for geometry transformations and lighting calculations&amp;quot;&lt;br /&gt;
* Filed 1999-12-06 by Nvidia: https://www.google.com/patents/US6198488 &amp;quot;Transform, lighting and rasterization system embodied on a single semiconductor platform&amp;quot;&lt;br /&gt;
* Filed 1999-12-06 by Nvidia: https://www.google.com/patents/US6573900 &amp;quot;Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads&amp;quot;&lt;br /&gt;
* Filed 1999-12-06 by Nvidia: https://www.google.com/patents/US6765575 &amp;quot;Clip-less rasterization using line equation-based traversal&amp;quot;&lt;br /&gt;
* Filed 1999-12-06 by Nvidia: https://www.google.com/patents/US6650325 &amp;quot;Method, apparatus and article of manufacture for boustrophedonic rasterization&amp;quot;&lt;br /&gt;
* Filed 2000-12-05 by Nvidia: https://www.google.com/patents/US6690372 &amp;quot;System, method and article of manufacture for shadow mapping&amp;quot;&lt;br /&gt;
* Filed 2001-01-11 by Microsoft: https://www.google.com/patents/USD452282 &amp;quot;Portion of an electronic housing&amp;quot;&lt;br /&gt;
* Filed 2001-01-11 by Microsoft: https://www.google.com/patents/USD452534 &amp;quot;Portion of an electronic housing&amp;quot; (not a dupe, its the top X shape in detail)&lt;br /&gt;
* Filed 2001-01-11 by Microsoft: https://www.google.com/patents/USD451513 &amp;quot;Computer input device&amp;quot; (describes the original Xbox controller, a.k.a. : &amp;quot;the Duke&amp;quot;)&lt;br /&gt;
* Filed 2003-05-09 by Microsoft: https://www.google.com/patents/US8493326 &amp;quot;Controller with removably attachable text input device&amp;quot; (an early keypad, later revered to by the 360 keypad patent)&lt;br /&gt;
* Filed 2003-05-09 by Micorsoft: https://www.google.com/patents/US7116311 &amp;quot;Embedded text input &amp;quot; (reffered to by the 360 chatpad)&lt;br /&gt;
* Filed 2006-07-03 by Micorsoft: https://www.google.com/patents/US7804484 &amp;quot;Embedded text input &amp;quot; (probably a corrected version of US7116311, reffered to by the 360 chatpad, a picture of the &amp;quot;Baretta&amp;quot; chatpad, https://assemblergames.com/threads/xbox-chatpad-unreleased.54523/&lt;br /&gt;
* Filed 2001-06-19 by Nvidia: https://www.google.com/patents/US6870540 &amp;quot;System, method and computer program product for a programmable pixel processing model with instruction set&amp;quot;&lt;br /&gt;
* Filed 2002-06-07 by Microsoft: https://www.google.com/patents/US6907522 &amp;quot;Use of hashing in a secure boot loader&amp;quot; (mentions &amp;quot;NV2A&amp;quot;)&lt;br /&gt;
* Filed 2003-08-21 by Friendtech: https://www.google.com/patents/US20050282621 &amp;quot;CPU upgrading adapter for a Microsoft XboxTM game machine&amp;quot;&lt;br /&gt;
* Filed 2005-01-04 by Nvidia: https://www.google.com/patents/US7916149 &amp;quot;Block linear memory ordering of texture data&amp;quot;&lt;br /&gt;
* Filed 2005-01-07 by Microsoft: https://www.google.com/patents/US7676840 &amp;quot;Use of hashing in a secure boot loader&amp;quot; (a continuation of patent US6907522)&lt;br /&gt;
* Filed 2005-05-17 by Nvidia: https://www.google.com/patents/US7793029 &amp;quot;Translation device apparatus for configuring printed circuit board connectors &amp;quot; (describes coupling two PCI Express connectors, possibly for the secondary Chihiro board, mentions &amp;quot;Xbox&amp;quot;)&lt;br /&gt;
* Filed 2001-04-30 by Microsoft: https://www.google.com/patents/US20020160654 &amp;quot;Breakaway cable connector&amp;quot; (filed by Microsofts attorneys)&lt;br /&gt;
* Filed 2004-22-02 by Microsoft: https://patents.google.com/patent/US7303476 &amp;quot;Method and apparatus for creating and playing soundtracks in a gaming system&amp;quot;&lt;br /&gt;
* Filed 2002-05-16 by Microsoft: https://patents.google.com/patent/US6935959 &amp;quot;Use of multiple player real-time voice communications on a gaming device&amp;quot;&lt;br /&gt;
* Filed 2001-03-09 by Microsoft: https://patents.google.com/patent/US7218739B2 &amp;quot;Multiple user authentication for online console-based gaming&amp;quot;&lt;br /&gt;
* Filed 2005-03-09 by Microsoft: https://patents.google.com/patent/US7811174B2 &amp;quot;Method and apparatus for managing data in a gaming system&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Possibly unrelated :&lt;br /&gt;
* Filed 1989-12-29 by Dolby Laboratories: https://www.google.com/patents/US5109417 &amp;quot;Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio&amp;quot;&lt;br /&gt;
* Filed 2008-01-15 by Microsoft: https://www.google.com/patents/US8607324 &amp;quot;Untrusted gaming system access to online gaming service&amp;quot; (describes part of Xbox online)&lt;br /&gt;
* Filed 2011-06-17 by Microsoft: https://www.google.com/patents/US8641525 &amp;quot;Controller for video game console&amp;quot; (one of the 51 patents comprising the Xbox One controller)&lt;br /&gt;
* Filed 2011-09-07 by Microsoft: https://www.google.com/patents/US8597125 &amp;quot;System and method for configuring game data about players&amp;quot;&lt;br /&gt;
* Filed 2012-01-13 by Microsoft: https://www.google.com/patents/US8602897 &amp;quot;Extended and editable gamer profile&amp;quot;&lt;br /&gt;
* Filed 2007-12-07 by Microsoft: https://www.google.com/patents/US8487876 &amp;quot;Ergonomic hand-held text input device &amp;quot; (The xbox 360 chatpad, wich mentions the OG textpad US8493326 and US7116311 ;) )&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6756</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6756"/>
				<updated>2019-07-30T21:06:29Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: TSOP Stuffs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There were several different retail Xbox hardware revisions, which include the following:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** TSOP Size now 256k (Initial Size 1024k)&lt;br /&gt;
** New Board Layout&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Switched to the &amp;quot;Focus&amp;quot; Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** New Board Layout with additional RAM Pads removed&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Switched to the &amp;quot;XCalibur&amp;quot; Video Encoder&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
Any Xbox DVD drive can be used in any retail Xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is capable of reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he successfully flashed a Hitachi drive to boot a copied game on an unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6755</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6755"/>
				<updated>2019-07-30T21:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Added Board Layout changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There were several different retail Xbox hardware revisions, which include the following:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** New Board Layout&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Switched to the &amp;quot;Focus&amp;quot; Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** New Board Layout with additional RAM Pads removed&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Switched to the &amp;quot;XCalibur&amp;quot; Video Encoder&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
Any Xbox DVD drive can be used in any retail Xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is capable of reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he successfully flashed a Hitachi drive to boot a copied game on an unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6754</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6754"/>
				<updated>2019-07-30T21:03:13Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Included 1.4/1.6 Video Encoder changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There were several different retail Xbox hardware revisions, which include the following:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Switched to the &amp;quot;Focus&amp;quot; Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Switched to the &amp;quot;XCalibur&amp;quot; Video Encoder&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
Any Xbox DVD drive can be used in any retail Xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is capable of reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he successfully flashed a Hitachi drive to boot a copied game on an unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6578</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6578"/>
				<updated>2018-10-11T14:57:56Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).                              &lt;br /&gt;
&lt;br /&gt;
[[File:Xboxmaletousbfemale.png|thumb|right|Wiring diagram of a DIY USB adapter]]                                                                                                                                                                         &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;                                                          &lt;br /&gt;
|- &lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A &lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6577</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6577"/>
				<updated>2018-10-11T14:53:34Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* USB Adapters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).                              &lt;br /&gt;
&lt;br /&gt;
[[File:Xboxmaletousbfemale.png|thumb|right|Wiring diagram of a DIY USB Adapter]]                                                                                                                                                                         &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;                                                          &lt;br /&gt;
|- &lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A &lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6576</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6576"/>
				<updated>2018-10-11T14:52:43Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* USB Adapters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).                              &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[File:Xboxmaletousbfemale.png|thumb|right|]]                                                                                                                                                                         &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;                                                          &lt;br /&gt;
|- &lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A &lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6575</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6575"/>
				<updated>2018-10-11T14:49:27Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* USB Adapters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A &lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6574</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6574"/>
				<updated>2018-10-11T14:49:20Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* USB Adapters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A &lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
                                                                [[File:Xboxmaletousbfemale.png]]&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6573</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6573"/>
				<updated>2018-10-11T14:13:13Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* Wiring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A&lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6572</id>
		<title>Xbox Input Devices</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbox_Input_Devices&amp;diff=6572"/>
				<updated>2018-10-11T14:12:54Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* Wiring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XID Overview ==&lt;br /&gt;
&lt;br /&gt;
XIDs are USB devices.&lt;br /&gt;
&lt;br /&gt;
The hardware side is USB with a different plug while the software side is USB without HID-descriptors.&lt;br /&gt;
Technicly a XID is a USB-hub for the Memory-Units and the XBL Communicator.&lt;br /&gt;
The logical XID gamepad USB device is internally connected to that hub.&lt;br /&gt;
&lt;br /&gt;
=== USB Adapters ===&lt;br /&gt;
The Xbox input devices are USB devices. As such, you can connect a keyboard to the Xbox, or a gamepad to your PC. In fact, Linux already has drivers for the gamepad. In order to preserve Xbox hardware, please do not cut OEM Xbox cables to make an adapter. Decent adapters can be acquired cheaply (~$10 USD ea. on 2017.04.30).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port (From)&lt;br /&gt;
! Plug (To)&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Xbox&lt;br /&gt;
| USB-A&lt;br /&gt;
| [https://www.amazon.com/gp/product/B000RT2868 Amazon]&lt;br /&gt;
|-&lt;br /&gt;
| USB-A&lt;br /&gt;
| Xbox&lt;br /&gt;
| [https://www.amazon.com/gp/product/B00F52LQHO Amazon]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
&lt;br /&gt;
Untested / unverified! Take this with a grain of salt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin&lt;br /&gt;
!Typical cable color&lt;br /&gt;
!Description&lt;br /&gt;
[[File:Xboxmaletousbfemale.png]]&lt;br /&gt;
|-                                                            &lt;br /&gt;
|1&lt;br /&gt;
|Red&lt;br /&gt;
|VCC&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|White&lt;br /&gt;
|USB D+&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|Green&lt;br /&gt;
|USB D-&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|Yellow&lt;br /&gt;
|VBlank signal from video output (for Lightguns)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|Black&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Protocol ===&lt;br /&gt;
&lt;br /&gt;
XID are similar to HID but have custom Vendor requests&lt;br /&gt;
&lt;br /&gt;
==== Control Transfers ====&lt;br /&gt;
&lt;br /&gt;
===== GET_DESCRIPTOR =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 6&lt;br /&gt;
* wValue: 0x4200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report; typically 16&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of descriptor or wLength. Whichever is smaller. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct XIDDescriptor {&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    uint8_t bDescriptorType;&lt;br /&gt;
    uint16_t bcdXid;&lt;br /&gt;
    uint8_t bType;&lt;br /&gt;
    uint8_t bSubType;&lt;br /&gt;
    uint8_t bMaxInputReportSize;&lt;br /&gt;
    uint8_t bMaxOutputReportSize;&lt;br /&gt;
    uint16_t wAlternateProductIds[4];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bDescriptorType is probably always 0x42.&lt;br /&gt;
&lt;br /&gt;
====== bType = 1: Xbox Gamecontroller ======&lt;br /&gt;
&lt;br /&gt;
* bSubType:&lt;br /&gt;
** 0x01 = Gamepad (Duke)&lt;br /&gt;
** 0x02 = Gamepad (Controller-S)&lt;br /&gt;
** 0x10 = Steering wheel&lt;br /&gt;
&lt;br /&gt;
===== GET_CAPABILITIES =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xC1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue:&lt;br /&gt;
** 0x0100 for input&lt;br /&gt;
** 0x0200 for output&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of respective report&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
Actual length is truncated to size of report or wLength. Whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadCapabilities {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The data will be similar to the GET_REPORT, but instead of storing actual values, it will have bits set (1) where the bit is valid in the respective report.&lt;br /&gt;
If the bit is auto-generated, it will be cleared (0).&lt;br /&gt;
&lt;br /&gt;
===== SET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0x21&lt;br /&gt;
* bRequest: 9&lt;br /&gt;
* wValue: 0x0200&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadReport {&lt;br /&gt;
    uint8_t bReportId;&lt;br /&gt;
    uint8_t bLength;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GET_REPORT =====&lt;br /&gt;
&lt;br /&gt;
* bmRequestType: 0xA1&lt;br /&gt;
* bRequest: 1&lt;br /&gt;
* wValue: 0x0100&lt;br /&gt;
* wIndex: Interface number&lt;br /&gt;
* wLength: &amp;lt;length of report; typically 20&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* STALL if wValue not supported or if wLength is greater than report size.&lt;br /&gt;
* ACK if supported.&lt;br /&gt;
&lt;br /&gt;
====== Typical report ======&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;typedef struct XIDGamepadOutputReport {&lt;br /&gt;
    uint8_t report_id; //FIXME: is this correct?&lt;br /&gt;
    uint8_t length;&lt;br /&gt;
    &amp;lt;Data&amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interrupt transfers ====&lt;br /&gt;
&lt;br /&gt;
Alternatively interrupt-in and interrupt-out transfers can be used for GET_REPORT and SET_REPORT respectively.&lt;br /&gt;
&lt;br /&gt;
In case of the interrupt-in, there is another status which can occur now:&lt;br /&gt;
&lt;br /&gt;
* NAK if supported but no changes since last ACK.&lt;br /&gt;
&lt;br /&gt;
== Standard Gamepads ==&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Most standard gamepads share the same USB descriptor.&lt;br /&gt;
Usually the only difference will be the VID / PID.&lt;br /&gt;
See https://github.com/xboxdrv/xboxdrv/blob/stable/src/xpad_device.cpp for a list of devices.&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
20 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dy-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx-}}&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-dx+}}&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-start}}&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-back}}&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ls}}&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rs}}&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{input-a}}&lt;br /&gt;
|4&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-b}}&lt;br /&gt;
|5&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-x}}&lt;br /&gt;
|6&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-y}}&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-black}}&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-white}}&lt;br /&gt;
|9&lt;br /&gt;
|0xFF&lt;br /&gt;
|Button is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lt}}&lt;br /&gt;
|10&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rt}}&lt;br /&gt;
|11&lt;br /&gt;
|0xFF&lt;br /&gt;
|Trigger is analog&lt;br /&gt;
|-&lt;br /&gt;
|{{input-lx}}&lt;br /&gt;
|12&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ly}}&lt;br /&gt;
|14&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|-&lt;br /&gt;
|{{input-rx}}&lt;br /&gt;
|16&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Left; Positive = Right&lt;br /&gt;
|-&lt;br /&gt;
|{{input-ry}}&lt;br /&gt;
|18&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|Negative = Down; Positive = Up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
6 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Left actuator strength&lt;br /&gt;
|2&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Right actuator strength&lt;br /&gt;
|4&lt;br /&gt;
|0xFFFF&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Microsoft Controller S will not react to packets which don't have a value of 6 in the &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; field of the header.&lt;br /&gt;
The Fanatec Speedster 3 ForceShock will still react to those. Further testing is necessary with other gamepads.&lt;br /&gt;
&lt;br /&gt;
== Steering wheels ==&lt;br /&gt;
&lt;br /&gt;
=== MadCatz Wheel ===&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}&lt;br /&gt;
&lt;br /&gt;
=== Fanatec Speedster 3 ForceShock ===&lt;br /&gt;
&lt;br /&gt;
==== Pedals ====&lt;br /&gt;
&lt;br /&gt;
The Pedals are ''not'' a USB device.&lt;br /&gt;
&lt;br /&gt;
Note that the cable going to the pedals is also ''not'' a USB port despite using the Xbox controller breakaway plug.&lt;br /&gt;
Likewise, plugging the pedals to a PC / Xbox won't provide a USB / XID (it is detected as garbage):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
new full-speed USB device number 14 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 15 using xhci_hcd&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
device descriptor read/64, error -71&lt;br /&gt;
new full-speed USB device number 16 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 16, error -71&lt;br /&gt;
new full-speed USB device number 17 using xhci_hcd&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
Device not responding to setup address.&lt;br /&gt;
device not accepting address 17, error -71&lt;br /&gt;
unable to enumerate USB device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Internal HUB ====&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
Power not connected, pedals not connected, not in Tuning mode:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0102 &lt;br /&gt;
  bcdDevice            0.01&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                1 End&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       50 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0xff&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0000.0100 power&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0003&lt;br /&gt;
  Self Powered&lt;br /&gt;
  Remote Wakeup Enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steering wheel (and Pedals) ====&lt;br /&gt;
&lt;br /&gt;
Always connected to port 1 of the internal HUB&lt;br /&gt;
&lt;br /&gt;
===== USB Descriptors =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x3767 &lt;br /&gt;
  idProduct          0x0101 &lt;br /&gt;
  bcdDevice            2.80&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Light guns ==&lt;br /&gt;
&lt;br /&gt;
=== EMS TopGun II ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The website for this product can be found at http://www.hkems.com/product/xbox/EMSTopGun2.htm&lt;br /&gt;
&lt;br /&gt;
The gun presents itself as a standard Xbox gamepad. It uses a different USB descriptor for Xbox (X) and the other mode (P).&lt;br /&gt;
There is no internal hub in this device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! EMS TopGun II !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;4&amp;quot; | Digital only, either 0 or 255&lt;br /&gt;
|-&lt;br /&gt;
| Grip || {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| A || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| B || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| SE/BA || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || rowspan=&amp;quot;2&amp;quot; | Absolute position using the full stick range&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons (All of those read constant zeros).&lt;br /&gt;
&lt;br /&gt;
===== Turbo Mode =====&lt;br /&gt;
&lt;br /&gt;
* Turbo mode 0 keeps {{input-a}} pressed  while trigger is held&lt;br /&gt;
* Turbo mode 1 toggles {{input-a}} rapidly while trigger is held&lt;br /&gt;
* Turbo mode 2 toggles {{input-a}} rapidly and once in a while {{input-b}} while trigger is held&lt;br /&gt;
&lt;br /&gt;
===== Force Feedback =====&lt;br /&gt;
&lt;br /&gt;
The upper part of the gun is moveable and should push back to simulate recoil (possibly hurting your thumb while you are using the stick).&lt;br /&gt;
I could not get the force feedback working, but I'm sure I've had it working in the past on PC.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
This is the descriptor in the Xbox mode (X).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 016: ID 0b9a:016b  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0b9a &lt;br /&gt;
  idProduct          0x016b &lt;br /&gt;
  bcdDevice            4.57&lt;br /&gt;
  iManufacturer           1 EMS̖E&lt;br /&gt;
  iProduct                2 EMS TopGun&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0 &lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               8&lt;br /&gt;
can't get debug descriptor: Resource temporarily unavailable&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joytech Sharp Shooter ===&lt;br /&gt;
&lt;br /&gt;
''This is an unlicensed / unofficial Xbox accessory.''&lt;br /&gt;
&lt;br /&gt;
The third party light gun from Joytech reports itself as 2 devices and mentions pattent [http://www.google.com/patents/US6287198 US6287198]&lt;br /&gt;
it came with a detachable viewfinder scope without any magnification. a red dot apears in the viewfinder, its a reflection of a red led, powered by the gun over usb.&lt;br /&gt;
&lt;br /&gt;
model numer: JS-901D&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Joytech Sharp Shooter !! Xbox Gamepad !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Stick || {{input-d}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Trigger || {{input-a}} || rowspan=&amp;quot;6&amp;quot; | Digital only, either 0 or 255 {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Left side) || rowspan=&amp;quot;3&amp;quot; | {{input-b}}&lt;br /&gt;
|-&lt;br /&gt;
| B (Right side)&lt;br /&gt;
|-&lt;br /&gt;
| B (Magazine button)&lt;br /&gt;
|-&lt;br /&gt;
| x || {{input-x}}&lt;br /&gt;
|-&lt;br /&gt;
| y || {{input-y}}&lt;br /&gt;
|-&lt;br /&gt;
| START || {{input-start}} ||&lt;br /&gt;
|-&lt;br /&gt;
| BACK || {{input-back}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aim Left / Right || {{input-lx}} || {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| Aim Up / Down || {{input-ly}} || {{citation needed}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There is no right thumbstick, thumbstick presses, black/white button or trigger buttons {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
===== Fire/Reload Mode =====&lt;br /&gt;
&lt;br /&gt;
* Normal mode does nothing, normal operation&lt;br /&gt;
* Auto reload mode toggles {{input-b}} rapidly to rappidly reload {{citation needed}} &lt;br /&gt;
* Auto fire+reload mode toggles {{input-a}} + {{input-b}} rapidly  {{citation needed}}&lt;br /&gt;
&lt;br /&gt;
==== USB Descriptors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 025: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            0 &lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           0 &lt;br /&gt;
  iProduct                0 &lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           32&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          1 (error)&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
    MaxPower              100mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        88 Xbox&lt;br /&gt;
      bInterfaceSubClass     66 Controller&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              2 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0020  1x 32 bytes&lt;br /&gt;
        bInterval               4&lt;br /&gt;
&lt;br /&gt;
Bus 003 Device 024: ID 1292:3006 Innomedia &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 Full speed (or root) hub&lt;br /&gt;
  bMaxPacketSize0         8&lt;br /&gt;
  idVendor           0x1292 Innomedia&lt;br /&gt;
  idProduct          0x3006 &lt;br /&gt;
  bcdDevice            1.50&lt;br /&gt;
  iManufacturer           1 (c) 2004 R0R3 Inc.&lt;br /&gt;
  iProduct                2 US Patent 6,287,198&lt;br /&gt;
  iSerial                 0 &lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 (c) R0R3 Devices Inc. US Patent 6,287,19Ē&lt;br /&gt;
    bmAttributes         0xa0&lt;br /&gt;
      (Bus Powered)&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower               64mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 &lt;br /&gt;
      bInterfaceProtocol      0 Full speed (or root) hub&lt;br /&gt;
      iInterface              5 (error)&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0001  1x 1 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             3&lt;br /&gt;
  wHubCharacteristic 0x000d&lt;br /&gt;
    Per-port power switching&lt;br /&gt;
    Compound device&lt;br /&gt;
    Per-port overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood       32 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent     64 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x02&lt;br /&gt;
  PortPwrCtrlMask    0x0e&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
   Port 3: 0100.0100 power&lt;br /&gt;
Device Status:     0x0000&lt;br /&gt;
  (Bus Powered)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steel Battalion Controller ==&lt;br /&gt;
&lt;br /&gt;
[[File:SBC.jpg|thumb|200px|Steel Battalion Controller Layout]]&lt;br /&gt;
&lt;br /&gt;
=== USB Descriptors ===&lt;br /&gt;
&lt;br /&gt;
From http://www.yaronet.com/topics/154490-steel-battalion-controller-homemade#post-15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bcdUSB:             0x0110&lt;br /&gt;
bDeviceClass:         0x00&lt;br /&gt;
bDeviceSubClass:      0x00&lt;br /&gt;
bDeviceProtocol:      0x00&lt;br /&gt;
bMaxPacketSize0:      0x08 (8)&lt;br /&gt;
idVendor:           0x0A7B&lt;br /&gt;
idProduct:          0xD000&lt;br /&gt;
bcdDevice:          0x0100&lt;br /&gt;
iManufacturer:        0x00&lt;br /&gt;
iProduct:             0x00&lt;br /&gt;
iSerialNumber:        0x00&lt;br /&gt;
bNumConfigurations:   0x01&lt;br /&gt;
&lt;br /&gt;
ConnectionStatus: DeviceConnected&lt;br /&gt;
Current Config Value: 0x00&lt;br /&gt;
Device Bus Speed:     Full&lt;br /&gt;
Device Address:       0x03&lt;br /&gt;
Open Pipes:              0&lt;br /&gt;
&lt;br /&gt;
Configuration Descriptor:&lt;br /&gt;
wTotalLength:       0x0020&lt;br /&gt;
bNumInterfaces:       0x01&lt;br /&gt;
bConfigurationValue:  0x01&lt;br /&gt;
iConfiguration:       0x00&lt;br /&gt;
bmAttributes:         0x80 (Bus Powered )&lt;br /&gt;
MaxPower:             0xFA (500 Ma)&lt;br /&gt;
&lt;br /&gt;
Interface Descriptor:&lt;br /&gt;
bInterfaceNumber:     0x00&lt;br /&gt;
bAlternateSetting:    0x00&lt;br /&gt;
bNumEndpoints:        0x02&lt;br /&gt;
bInterfaceClass:      0x58&lt;br /&gt;
bInterfaceSubClass:   0x42&lt;br /&gt;
bInterfaceProtocol:   0x00&lt;br /&gt;
iInterface:           0x00&lt;br /&gt;
&lt;br /&gt;
Endpoint Descriptor:&lt;br /&gt;
bEndpointAddress:     0x82&lt;br /&gt;
Transfer Type:   Interrupt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controller to Xbox ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
26 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyMainWeapon&lt;br /&gt;
|2&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyFire&lt;br /&gt;
|2&lt;br /&gt;
|0x03{{FIXME|reason=WTF?! Might be bad?}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightJoyLockOn&lt;br /&gt;
|2&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eject&lt;br /&gt;
|2&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|2&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|2&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonOpenClose&lt;br /&gt;
|2&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonMapZoomInOut&lt;br /&gt;
|3&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonModeSelect&lt;br /&gt;
|3&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMonSubMonitor&lt;br /&gt;
|3&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomIn&lt;br /&gt;
|3&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonZoomOut&lt;br /&gt;
|3&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionFSS&lt;br /&gt;
|3&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionManipulator&lt;br /&gt;
|3&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionLineColorChange&lt;br /&gt;
|3&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|4&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|4&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|4&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionTankDetach&lt;br /&gt;
|4&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionOverride&lt;br /&gt;
|4&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionNightScope&lt;br /&gt;
|4&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF1&lt;br /&gt;
|4&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF2&lt;br /&gt;
|4&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|FunctionF3&lt;br /&gt;
|5&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMain&lt;br /&gt;
|5&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConSub&lt;br /&gt;
|5&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WeaponConMagazine&lt;br /&gt;
|5&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|5&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|5&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|5&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|5&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|6&lt;br /&gt;
|0x01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LeftJoySightChange&lt;br /&gt;
|6&lt;br /&gt;
|0x02&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFilterControl&lt;br /&gt;
|6&lt;br /&gt;
|0x04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleOxygenSupply&lt;br /&gt;
|6&lt;br /&gt;
|0x08&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleFuelFlowRate&lt;br /&gt;
|6&lt;br /&gt;
|0x10&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleBuffreMaterial&lt;br /&gt;
|6&lt;br /&gt;
|0x20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ToggleVTLocation&lt;br /&gt;
|6&lt;br /&gt;
|0x40&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|6&lt;br /&gt;
|0x80&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|7&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|8&lt;br /&gt;
|0xFF&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AimingX&lt;br /&gt;
|9&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 8?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|AimingY&lt;br /&gt;
|11&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 10?&lt;br /&gt;
|&amp;quot;Aiming Lever&amp;quot; joystick on the right.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|RotationLever&lt;br /&gt;
|13&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 12?&lt;br /&gt;
|&amp;quot;Rotation Lever&amp;quot; joystick on the left.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeX&lt;br /&gt;
|15&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 14?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  X Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|SightChangeY&lt;br /&gt;
|17&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 16?&lt;br /&gt;
|&amp;quot;Sight Change&amp;quot; analog stick on the &amp;quot;Rotation Lever&amp;quot; joystick.  Y Axis value.&lt;br /&gt;
|-&lt;br /&gt;
|LeftPedal&lt;br /&gt;
|19&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 18?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MiddlePedal&lt;br /&gt;
|21&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 20?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RightPedal&lt;br /&gt;
|23&lt;br /&gt;
|0xFF, maybe 0xFFFF at offset 22?&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TunerDial&lt;br /&gt;
|24&lt;br /&gt;
|0x0F&lt;br /&gt;
|The 9 o'clock postion is 0, and the 6 o'clock position is 12. The blank area between the 6 and 9 o'clock positions is 13, 14, and 15 clockwise.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|24&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearLever&lt;br /&gt;
|25&lt;br /&gt;
|0xFF&lt;br /&gt;
|The gear lever on the left block.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Xbox to Controller ===&lt;br /&gt;
&lt;br /&gt;
From http://steelbattalionnet.codeplex.com/SourceControl/latest#SBC/SteelBattalionController.cs&lt;br /&gt;
&lt;br /&gt;
34 bytes&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Field&lt;br /&gt;
!Offset (Bytes)&lt;br /&gt;
!Mask&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|EmergencyEject&lt;br /&gt;
|2&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|CockpitHatch&lt;br /&gt;
|2&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ignition&lt;br /&gt;
|3&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Start&lt;br /&gt;
|3&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenClose&lt;br /&gt;
|4&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MapZoomInOut&lt;br /&gt;
|4&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubMonitorModeSelect&lt;br /&gt;
|5&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomIn&lt;br /&gt;
|6&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainMonitorZoomOut&lt;br /&gt;
|6&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ForecastShootingSystem&lt;br /&gt;
|7&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Manipulator&lt;br /&gt;
|7&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|LineColorChange&lt;br /&gt;
|8&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Washing&lt;br /&gt;
|8&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Extinguisher&lt;br /&gt;
|9&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Chaff&lt;br /&gt;
|9&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TankDetach&lt;br /&gt;
|10&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Override&lt;br /&gt;
|10&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NightScope&lt;br /&gt;
|11&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F1&lt;br /&gt;
|11&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F2&lt;br /&gt;
|12&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|F3&lt;br /&gt;
|12&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MainWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SubWeaponControl&lt;br /&gt;
|13&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagazineChange&lt;br /&gt;
|14&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm1&lt;br /&gt;
|14&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm2&lt;br /&gt;
|15&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm3&lt;br /&gt;
|15&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm4&lt;br /&gt;
|16&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Comm5&lt;br /&gt;
|16&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearR&lt;br /&gt;
|17&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GearN&lt;br /&gt;
|18&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear1&lt;br /&gt;
|18&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear2&lt;br /&gt;
|19&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear3&lt;br /&gt;
|19&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear4&lt;br /&gt;
|20&lt;br /&gt;
|0x0F&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Gear5&lt;br /&gt;
|20&lt;br /&gt;
|0xF0&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
[https://github.com/xqemu/xqemu/blob/xbox/hw/xbox/xid.c XID emulation in XQEMU]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=File:Xboxmaletousbfemale.png&amp;diff=6570</id>
		<title>File:Xboxmaletousbfemale.png</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=File:Xboxmaletousbfemale.png&amp;diff=6570"/>
				<updated>2018-10-11T13:17:33Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Xbox Controller connector male to USB Connector female&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Xbox Controller connector male to USB Connector female&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6569</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6569"/>
				<updated>2018-10-11T12:29:00Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=System_Management_Controller&amp;diff=6475</id>
		<title>System Management Controller</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=System_Management_Controller&amp;diff=6475"/>
				<updated>2018-07-19T22:16:31Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The System Management Controller (SMC) is a PIC16LC63A-04/SO microcontroller which handles a variety of tasks on the Xbox.&lt;br /&gt;
This includes rebooting the system, returning the connected kind of video cable, the DVD tray state, controlling the fan, LED control and sensing temperature.&lt;br /&gt;
It is also the hardware which is connected to the Power and Eject buttons.&lt;br /&gt;
The PIC is running at 20 MHz with its own ROM, RAM and I/O lines.&lt;br /&gt;
&lt;br /&gt;
The PIC is always running, even if the Xbox is turned off. When the power cable is unplugged, it gets its energy from a capacitor for some hours. &lt;br /&gt;
&lt;br /&gt;
It is connected via I²C and located on address 0x10.&lt;br /&gt;
&lt;br /&gt;
== Revisions ==&lt;br /&gt;
&lt;br /&gt;
The chip is also marked with a revision.&lt;br /&gt;
Known revisions include:&lt;br /&gt;
&lt;br /&gt;
* P01&lt;br /&gt;
* P05&lt;br /&gt;
* P11&lt;br /&gt;
* P2L{{citation needed}}&lt;br /&gt;
* D01 (Seen in a debug kit)&lt;br /&gt;
* D05 (seen in a earlier model chihiro)&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Exploits&amp;diff=6471</id>
		<title>Exploits</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Exploits&amp;diff=6471"/>
				<updated>2018-07-12T22:59:57Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: some grammar fixing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MCPX ==&lt;br /&gt;
&lt;br /&gt;
=== LDT (Hypertransport) bus tap ===&lt;br /&gt;
&lt;br /&gt;
See [http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html#ldt bunnie's adventures hacking the Xbox].&lt;br /&gt;
&lt;br /&gt;
=== Visor hack ===&lt;br /&gt;
&lt;br /&gt;
Exploits incorrect rollover of memory address.&lt;br /&gt;
&lt;br /&gt;
=== MIST hack ===&lt;br /&gt;
&lt;br /&gt;
Exploits error in xcode interpreter security check.&lt;br /&gt;
There are at least 2 variations of this hack.&lt;br /&gt;
&lt;br /&gt;
=== A20M# hack ===&lt;br /&gt;
&lt;br /&gt;
[[File:Haxar-a20m.jpg|thumb|200px|A jumper wire hack to enable A20]]&lt;br /&gt;
&lt;br /&gt;
Uses a legacy x86 feature.&lt;br /&gt;
&lt;br /&gt;
=== RC4 attack (MCPX 1.0 only) ===&lt;br /&gt;
&lt;br /&gt;
Microsoft uses the last bytes of the decrypted 2BL to check the integrity of the 2BL.&lt;br /&gt;
However, RC4 does not have any feedback which means changes in the 2BL will not reflect in the last couple of bytes which are checked.&lt;br /&gt;
As such, the 2BL can be freely modified, as long as the last couple of bytes still match what the MCPX ROM expects.&lt;br /&gt;
&lt;br /&gt;
This can be used to take over the 2BL entry point.&lt;br /&gt;
&lt;br /&gt;
When the attack happens, the MCPX ROM is still visible, making this a very powerful attack.&lt;br /&gt;
&lt;br /&gt;
''This attack is described by Michael Steil in his Google talk.''&lt;br /&gt;
&lt;br /&gt;
=== TEA attack (MCPX 1.1 only) ===&lt;br /&gt;
&lt;br /&gt;
TEA, which is only used in MCPX 1.1, can not be used as a hash in Davies-Meyer mode [http://www.tayloredge.com/reference/Mathematics/VRAndem.pdf][https://www.schneier.com/academic/paperfiles/paper-key-schedule.pdf]. And yet, Microsoft used it that way.&lt;br /&gt;
&lt;br /&gt;
The original attack uses the 5 bytes at 0xffffd400 (FBL entry point) which are &amp;lt;code&amp;gt;E9 83 01 00 00&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is &amp;lt;code&amp;gt;jmp 0xffffd588&amp;lt;/code&amp;gt; (which is a jump within the flash region).&lt;br /&gt;
&lt;br /&gt;
When flipping the highest bit of the operand DWORD (at 0xffffd400, mind your endianess) this will become: &amp;lt;code&amp;gt;E9 83 01 80 00&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is &amp;lt;code&amp;gt;jmp 0x7fd588&amp;lt;/code&amp;gt; (which is a jump into the RAM region).&lt;br /&gt;
For the attack to be succssful, the highest bit in the DWORD at 0xffffd404 also has to be flipped.&lt;br /&gt;
&lt;br /&gt;
The RAM can be controlled using the x-code command to write to RAM.&lt;br /&gt;
So the idea is to copy a program from Flash to RAM using x-codes.&lt;br /&gt;
Then the FBL / 2BL is modified to jump into said RAM region by flipping a bit of a jump operand (as described above).&lt;br /&gt;
The 2 bit flips will not change the hash of FBL / 2BL as TEA is broken.&lt;br /&gt;
&lt;br /&gt;
As such, the FBL verification will succeed, the MCPX ROM will hand control to the FBL which will then jump into the attacker controlled RAM.&lt;br /&gt;
&lt;br /&gt;
When the attack happens, the MCPX ROM is still visible, making this a very powerful attack.&lt;br /&gt;
&lt;br /&gt;
''The TEA algorithm and exploit are also described in more detail in Bunnnies book (Page 109 and Page 142).''&lt;br /&gt;
&lt;br /&gt;
== Dashboard ==&lt;br /&gt;
&lt;br /&gt;
=== Audio hacks ===&lt;br /&gt;
=== Font hacks ===&lt;br /&gt;
&lt;br /&gt;
[http://archiv.sega-dc.de/phoenix.maxconsole.net/docs/berternie.inc.htm Analysis of &amp;quot;Bert &amp;amp; Ernie&amp;quot; font-exploit].&lt;br /&gt;
&lt;br /&gt;
==== Easter-egg exploit ====&lt;br /&gt;
&lt;br /&gt;
== Savegames ==&lt;br /&gt;
Savedgames can be used as an exploit method, but care must be taken for most games are verifying digital signatures of savedgames {{citation needed}} [http://bunniefoo.com/nostarch/HackingTheXbox_Free.pdf]&lt;br /&gt;
=== [[007: Agent Under Fire]] ===&lt;br /&gt;
=== [[Frogger Beyond]] ===&lt;br /&gt;
=== [[MechAssault]] ===&lt;br /&gt;
=== [[Tom Clancy's Splinter Cell]] ===&lt;br /&gt;
=== [[Tony Hawk's Pro Skater 4]] ===&lt;br /&gt;
Grimdoomer discovered a savegame exploit in THPS4, shared it on Discord and was later included with the Rocky5 softmod installer.&lt;br /&gt;
[https://drive.google.com/file/d/0B9WVULxHOmNkQVBCMHMtVGhqVVU/view a video demonstrating the game trigger (custom skatepark)]&lt;br /&gt;
&lt;br /&gt;
''10-4-2017 it's just shell code I injected into the game save/ granted this save is slightly more complicated than the others and requires a small &amp;quot;loader&amp;quot; that is just a memcpy basically it's literally as simple as a buffer overflow...I just looked for null terminated strings and fuzzed them then when I got a crash I looked in teh xbe to figure out what was going on. yeah it's literally just a stack overflow'' - grimdoomer&lt;br /&gt;
&lt;br /&gt;
another website talking about his exploit.&lt;br /&gt;
[https://www.xbmc4xbox.org.uk/forum/viewtopic.php?t=7310 xbmc4xbox.org.uk]&lt;br /&gt;
&lt;br /&gt;
== Attack ideas ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Purpose || Author || Description || Status&lt;br /&gt;
|-&lt;br /&gt;
| Dumping the MCPX ROM || JayFoxRox&lt;br /&gt;
| Partial system reset using 0xCF9 I/O register&lt;br /&gt;
| Only crashes so far, mostly untested&lt;br /&gt;
|-&lt;br /&gt;
| Dumping the MCPX ROM || JayFoxRox&lt;br /&gt;
| Trying to find problems with the SMC reset chain. The SMC takes a couple of milliseconds to reset the system. Parts of the peripherals might stay alive for long enough. So chances (extremly unlikely) are, the peripherals could be programmed to do DMA where the DMA is only executed after the reboot.&lt;br /&gt;
| Untested&lt;br /&gt;
|-&lt;br /&gt;
| Unknown || JayFoxRox&lt;br /&gt;
| Resetting from wrong address. The errata for the CPU states that a warm-reset might occur from the wrong address.&lt;br /&gt;
| Concept phase, needs more research&lt;br /&gt;
|-&lt;br /&gt;
| Dumping the MCPX ROM || JayFoxRox&lt;br /&gt;
| Trying to access MCPX ROM through peripherals in the southbridge. If the address logic is broken, parts like the OHCI, APU or AC97 might be able to access it still.&lt;br /&gt;
|&lt;br /&gt;
* AC97: Lots of crashes / hangs. Sometimes crackling noise. Sometimes does not crash. Also can access some non-existing memory regions without any crashes. Data read from invalid addresses seemed to be 300 Hz square wave. While crashing the hardware output will have exponential falloff (measured on PCM line-out).&lt;br /&gt;
* APU: Untested&lt;br /&gt;
* OHCI: Untested&lt;br /&gt;
* Others: Untested&lt;br /&gt;
|-&lt;br /&gt;
| Dumping Kernel INIT || JayFoxRox&lt;br /&gt;
| INIT is free'd right before passing execution to the first XBE. Depending on what the XBE allocates, the INIT section might still be in memory when a dumper is run.&lt;br /&gt;
| Probably doesn't work. Would need the dumper to directly run after cold-boot. Softmods unfortunately reboot the Xbox and during this warm-boot the INIT section is (in at least most cases) lost.&lt;br /&gt;
|-&lt;br /&gt;
| Dumping Kernel INIT || DaveX || An extension to JayFoxRox dumping idea. Instead of running a dumper-XBE through a softmod, the softmod itself could do the dumping. This means creation of a custom softmod, just for dumping. This depends on the used softmod entry-point (font-explot, audio-exploit, ..) to gain execution as early as possible. This strategy might be slightly risky as harddisk contents have to be modified for the temporary softmod.&lt;br /&gt;
| WIP as of 2018-03-04&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; | Homebrew entry point || rowspan=&amp;quot;13&amp;quot; | Community&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; | Some movie DVDs contain default XBEs signed to run on original Xbox from DVD-R{{FIXME|reason=Add region / product codes and other DVDs you know of}}. If we can find an exploit in one of them (loaded files), we could possibly take over the entire system and run homebrew from DVD-R.&lt;br /&gt;
|-&lt;br /&gt;
|'''Star Wars: Clone Wars - Volume Two'''&lt;br /&gt;
[[Battlefront II]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Star Wars: Episode III - Revenge of the Sith (Widescreen Edition)'''&lt;br /&gt;
[[Battlefront II]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Star Wars Trilogy (Widescreen Edition with Bonus Disc)'''&lt;br /&gt;
[[Battlefront]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Star Wars Trilogy DVD with Demo'''&lt;br /&gt;
[[Lego Star Wars 2]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Star Wars: Clone Wars - Volume One'''&lt;br /&gt;
[[Battlefront]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''The Chronicles of Riddick (Widescreen Unrated Director's Cut)'''&lt;br /&gt;
[[Chronicles of Riddick]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Doom (Unrated Widescreen Edition)'''&lt;br /&gt;
[[Doom 3]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Hulk (Special Edition)'''&lt;br /&gt;
[[Hulk]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''King Arthur - The Director's Cut (Widescreen Edition)'''&lt;br /&gt;
[[King Arthur]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Robots (Widescreen Edition)'''&lt;br /&gt;
[[Robots]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Van Helsing (Widescreen Edition)'''&lt;br /&gt;
[[Van Helsing]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|-&lt;br /&gt;
|'''Clone Wars Volume 1'''&lt;br /&gt;
[[Republic Commando]]&lt;br /&gt;
&lt;br /&gt;
Untested&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* [https://events.ccc.de/congress/2005/fahrplan/attachments/591-paper_xbox.pdf 17 Mistakes Microsoft Made in the Xbox Security System]&lt;br /&gt;
* [http://toogam.bespin.org/xboxmod/site/xbehacks.htm A list of some exploit implementations]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6422</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6422"/>
				<updated>2018-05-26T22:45:27Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.1 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=System_Management_Controller&amp;diff=6421</id>
		<title>System Management Controller</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=System_Management_Controller&amp;diff=6421"/>
				<updated>2018-05-26T14:03:59Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The System Management Controller (SMC) is a PIC16LC63A-04/SO microcontroller which handles a variety of tasks on the Xbox.&lt;br /&gt;
This includes rebooting the system, returning the connected kind of video cable, the DVD tray state, controlling the fan, LED control and sensing temperature.&lt;br /&gt;
It is also the hardware which is connected to the Power and Eject buttons.&lt;br /&gt;
The PIC is running at 20 MHz with its own ROM, RAM and I/O lines.&lt;br /&gt;
&lt;br /&gt;
The PIC is always running, even if the Xbox is turned off. When the power cable is unplugged, it gets its energy from a capacitor for some hours. &lt;br /&gt;
&lt;br /&gt;
It is connected via I²C and located on address 0x10.&lt;br /&gt;
&lt;br /&gt;
== Revisions ==&lt;br /&gt;
&lt;br /&gt;
The chip is also marked with a revision.&lt;br /&gt;
Known revisions include:&lt;br /&gt;
&lt;br /&gt;
* P01&lt;br /&gt;
* P11&lt;br /&gt;
* P2L{{citation needed}}&lt;br /&gt;
* D01 (Seen in a debug kit)&lt;br /&gt;
* D05 (seen in a earlier model chihiro)&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbx&amp;diff=6419</id>
		<title>Xbx</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbx&amp;diff=6419"/>
				<updated>2018-05-24T19:32:19Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fileformats]]&lt;br /&gt;
This is a dummy page&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xpr&amp;diff=6418</id>
		<title>Xpr</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xpr&amp;diff=6418"/>
				<updated>2018-05-24T19:32:08Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fileformats]]&lt;br /&gt;
This is a dummy page&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbx&amp;diff=6417</id>
		<title>Xbx</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbx&amp;diff=6417"/>
				<updated>2018-05-24T19:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Created page with &amp;quot;Category:Fileformats&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fileformats]]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xpr&amp;diff=6416</id>
		<title>Xpr</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xpr&amp;diff=6416"/>
				<updated>2018-05-24T19:30:31Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Created page with &amp;quot;Category:Fileformats&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fileformats]]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xtf&amp;diff=6415</id>
		<title>Xtf</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xtf&amp;diff=6415"/>
				<updated>2018-05-24T19:28:33Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XTF is a font file format used in the [[Dashboard]].&lt;br /&gt;
It became famous for being [[Exploits#Font hacks|exploited]].&lt;br /&gt;
&lt;br /&gt;
== Dashboard fonts ==&lt;br /&gt;
&lt;br /&gt;
The fonts were designed by [[Wikipedia:Steve Matteson|Steve Matteson]] for use in the Xbox [[Dashboard]] as well as for promotional materials.&lt;br /&gt;
&lt;br /&gt;
The XTF versions of these fonts contain 7365 glyphs each.&lt;br /&gt;
&lt;br /&gt;
=== Xbox.xtf ===&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox-dashboard-font-specimen.png|thumb|200px|Xbox Font Specimen]]&lt;br /&gt;
&lt;br /&gt;
A monospace font.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Xbox-xtf.png|800px|thumb|Xbox.xtf from [[Dashboard]].]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XBox Book.xtf ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:XBox Book-xtf.png|800px|thumb|XBox Book.xtf from [[Dashboard]].]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
* 4 byte (magic)&lt;br /&gt;
* 4 byte (length prefix for following string)&lt;br /&gt;
* zero-terminated string with given buffer length (font-name)&lt;br /&gt;
* [https://msdn.microsoft.com/en-us/library/dd144956%28v=vs.85%29.aspx GLYPHSET] (List of supported glyphs)&lt;br /&gt;
* For each cGlyphsSupported:&lt;br /&gt;
** [https://msdn.microsoft.com/en-us/library/windows/desktop/dd374209(v=vs.85).aspx GLYPHMETRICSFLOAT] (Metrics for each glyph)&lt;br /&gt;
** 4 byte (Offset of glyph in file)&lt;br /&gt;
* For each GLYPHSET range&lt;br /&gt;
** For each glyph in this range&lt;br /&gt;
*** 2 byte (Index count)&lt;br /&gt;
*** 2 byte (Vertex count)&lt;br /&gt;
*** For each index:&lt;br /&gt;
**** 2 byte (Vertex index)&lt;br /&gt;
*** For each vertex:&lt;br /&gt;
**** 4 byte float (X-coordinate)&lt;br /&gt;
**** 4 byte float (Y-coordinate)&lt;br /&gt;
&lt;br /&gt;
The mesh data is stored as triangle list. 3 indices per triangle.&lt;br /&gt;
&lt;br /&gt;
{{FIXME|reason=Confirm these findings and format them better}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/JayFoxRox/xbox-tools/tree/master/xtf-converter A tool to convert XTF fonts to SVG fonts]&lt;br /&gt;
[[Category:Fileformats]]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Xbe&amp;diff=6414</id>
		<title>Xbe</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Xbe&amp;diff=6414"/>
				<updated>2018-05-24T19:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:XBE}}&lt;br /&gt;
XBE files (XBox Executable) are the main files that are executed in the Xbox System. In official games, these files are created by game developers, and then signed by Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== Title ID ===&lt;br /&gt;
&lt;br /&gt;
A title ID is usually 2 ASCII letters for the publisher, followed by a u16 integer game number (Above 2000 for non-original Xbox games)&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Publisher ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| AC || Acclaim Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| AH || ARUSH Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| AQ || Aqua System&lt;br /&gt;
|-&lt;br /&gt;
| AS || ASK&lt;br /&gt;
|-&lt;br /&gt;
| AT || Atlus&lt;br /&gt;
|-&lt;br /&gt;
| AV || Activision&lt;br /&gt;
|-&lt;br /&gt;
| AY || Aspyr Media&lt;br /&gt;
|-&lt;br /&gt;
| BA || Bandai&lt;br /&gt;
|-&lt;br /&gt;
| BL || Black Box&lt;br /&gt;
|-&lt;br /&gt;
| BM || BAM! Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| BR || Broccoli Co.&lt;br /&gt;
|-&lt;br /&gt;
| BS || Bethesda Softworks&lt;br /&gt;
|-&lt;br /&gt;
| BU || Bunkasha Co.&lt;br /&gt;
|-&lt;br /&gt;
| BV || Buena Vista Games&lt;br /&gt;
|-&lt;br /&gt;
| BW || BBC Multimedia&lt;br /&gt;
|-&lt;br /&gt;
| BZ || Blizzard&lt;br /&gt;
|-&lt;br /&gt;
| CC || Capcom&lt;br /&gt;
|-&lt;br /&gt;
| CK || Kemco Corporation {{citation needed|reason=Did they realy swapped the ASCII letters? is KC a curced acroniem in Japan? Just want to be sure its Kemco|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| CM || Codemasters&lt;br /&gt;
|-&lt;br /&gt;
| CV || Crave Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| DC || DreamCatcher Interactive&lt;br /&gt;
|-&lt;br /&gt;
| DX || Davilex&lt;br /&gt;
|-&lt;br /&gt;
| EA || Electronic Arts (EA)&lt;br /&gt;
|-&lt;br /&gt;
| EC || Encore inc&lt;br /&gt;
|-&lt;br /&gt;
| EL || Enlight Software&lt;br /&gt;
|-&lt;br /&gt;
| EM || Empire Interactive&lt;br /&gt;
|-&lt;br /&gt;
| ES || Eidos Interactive&lt;br /&gt;
|-&lt;br /&gt;
| FI || Fox Interactive&lt;br /&gt;
|-&lt;br /&gt;
| FS || From Software&lt;br /&gt;
|-&lt;br /&gt;
| GE || Genki Co.&lt;br /&gt;
|-&lt;br /&gt;
| GV || Groove Games&lt;br /&gt;
|-&lt;br /&gt;
| HE || Tru Blu (Entertainment division of Home Entertainment Suppliers)&lt;br /&gt;
|-&lt;br /&gt;
| HP || Hip games&lt;br /&gt;
|-&lt;br /&gt;
| HU || Hudson Soft&lt;br /&gt;
|-&lt;br /&gt;
| HW || Highwaystar&lt;br /&gt;
|-&lt;br /&gt;
| IA || Mad Catz Interactive&lt;br /&gt;
|-&lt;br /&gt;
| IF || Idea Factory&lt;br /&gt;
|-&lt;br /&gt;
| IG || Infogrames&lt;br /&gt;
|-&lt;br /&gt;
| IL || [[Interlex Corporation]]&lt;br /&gt;
|-&lt;br /&gt;
| IM || Imagine Media&lt;br /&gt;
|-&lt;br /&gt;
| IO || Ignition Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| IP || Interplay Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| IX || InXile Entertainment {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| JA || Jaleco&lt;br /&gt;
|-&lt;br /&gt;
| JW || JoWooD&lt;br /&gt;
|-&lt;br /&gt;
| KB || Kemco {{citation needed|reason=CK is also Kemco, is this a diferent subsidairy or country based? Just want to be sure its Kemco|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| KI || Kids Station Inc. {{citation needed|reason=Games info page was in japanese, I dont read japanese. but this seemed very logicaly the publisher, can a japanese reader confirm?|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| KN || Konami&lt;br /&gt;
|-&lt;br /&gt;
| KO || KOEI&lt;br /&gt;
|-&lt;br /&gt;
| KU || Kobi and/or GAE (formerly Global A Entertainment){{citation needed|reason=What name did the publisher use at the time of release?|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| LA || LucasArts&lt;br /&gt;
|-&lt;br /&gt;
| LS || Black Bean Games (publishing arm of Leader S.p.A.)&lt;br /&gt;
|-&lt;br /&gt;
| MD || Metro3D&lt;br /&gt;
|-&lt;br /&gt;
| ME || Medix&lt;br /&gt;
|-&lt;br /&gt;
| MI || Microïds&lt;br /&gt;
|-&lt;br /&gt;
| MJ || Majesco Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| MM || Myelin Media&lt;br /&gt;
|-&lt;br /&gt;
| MP || MediaQuest {{citation needed|reason=Where is the P? I dont trust my source yet... but seems close|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| MS || Microsoft Game Studios&lt;br /&gt;
|-&lt;br /&gt;
| MW || Midway Games&lt;br /&gt;
|-&lt;br /&gt;
| MX || Empire Interactive {{citation needed|reason=What happend to the publisher, who published this game?|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| NK || NewKidCo&lt;br /&gt;
|-&lt;br /&gt;
| NL || NovaLogic&lt;br /&gt;
|-&lt;br /&gt;
| NM || Namco&lt;br /&gt;
|-&lt;br /&gt;
| OX || Oxygen Interactive&lt;br /&gt;
|-&lt;br /&gt;
| PC || Playlogic Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| PL || Phantagram Co., Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| RA || Rage&lt;br /&gt;
|-&lt;br /&gt;
| SA || Sammy&lt;br /&gt;
|-&lt;br /&gt;
| SC || SCi Games&lt;br /&gt;
|-&lt;br /&gt;
| SE || SEGA&lt;br /&gt;
|-&lt;br /&gt;
| SN || SNK&lt;br /&gt;
|-&lt;br /&gt;
| SS || Simon &amp;amp; Schuster&lt;br /&gt;
|-&lt;br /&gt;
| SU || Success Corporation&lt;br /&gt;
|-&lt;br /&gt;
| SW || Swing! Deutschland&lt;br /&gt;
|-&lt;br /&gt;
| TA || Takara&lt;br /&gt;
|-&lt;br /&gt;
| TC || Tecmo&lt;br /&gt;
|-&lt;br /&gt;
| TD || The 3DO Company (or just 3DO)&lt;br /&gt;
|-&lt;br /&gt;
| TK || Takuyo&lt;br /&gt;
|-&lt;br /&gt;
| TM || TDK Mediactive&lt;br /&gt;
|-&lt;br /&gt;
| TQ || THQ&lt;br /&gt;
|-&lt;br /&gt;
| TS || Titus Interactive&lt;br /&gt;
|-&lt;br /&gt;
| TT || Take-Two Interactive Software&lt;br /&gt;
|-&lt;br /&gt;
| US || Ubisoft&lt;br /&gt;
|-&lt;br /&gt;
| VC || Victor Interactive Software&lt;br /&gt;
|-&lt;br /&gt;
| VN || Vivendi Universal (just took Interplays publishing rights) {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| VU || Vivendi Universal Games&lt;br /&gt;
|-&lt;br /&gt;
| VV || Vivendi Universal Games {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| WE || Wanadoo Edition&lt;br /&gt;
|-&lt;br /&gt;
| WR || Warner Bros. Interactive Entertainment {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| XI || XPEC Entertainment and Idea Factory &lt;br /&gt;
|-&lt;br /&gt;
| XK || ''Xbox kiosk disk?'' {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| XL || ''Xbox special bundled or live demo disk?'' {{citation needed}}&lt;br /&gt;
|-&lt;br /&gt;
| XM || Evolved Games {{citation needed|reason=Probably not, game &amp;quot;Malice&amp;quot;|date=May 2017}}&lt;br /&gt;
|-&lt;br /&gt;
| XP || XPEC Entertainment&lt;br /&gt;
|-&lt;br /&gt;
| XR || Panorama&lt;br /&gt;
|-&lt;br /&gt;
| YB || YBM Sisa (South-Korea)&lt;br /&gt;
|-&lt;br /&gt;
| ZD || Zushi Games (formerly Zoo Digital Publishing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title ID seems to double the information from the [[Xbox Game Disc]] mastering code etched into the ring or readable from the DMI.&lt;br /&gt;
The game number is expressed in 3 decimal digits here which suggests that it will always be below 1000.&lt;br /&gt;
&lt;br /&gt;
'''Examples''':&lt;br /&gt;
&lt;br /&gt;
[[FIFA Soccer 2003]]:&lt;br /&gt;
* DMI and mastering code: EA02302E (Meaning: publisher EA, game number 023, version 02, region Europe)&lt;br /&gt;
* Title ID: {{FIXME}}&lt;br /&gt;
&lt;br /&gt;
[[Halo: Combat Evolved]]:&lt;br /&gt;
* DMI and mastering code: MS00402A (Meaning: publisher Microsoft, game number 004, version 02, region America)&lt;br /&gt;
* Title ID: 4D530004 [MS-004]&lt;br /&gt;
&lt;br /&gt;
[[Halo: Combat Evolved]]:&lt;br /&gt;
* DMI and mastering code: MS00404E (Meaning: publisher Microsoft, game number 004, version 04, region Europe)&lt;br /&gt;
* Title ID: 4D530004 [MS-004]&lt;br /&gt;
&lt;br /&gt;
=== Sections ===&lt;br /&gt;
&lt;br /&gt;
==== .text ====&lt;br /&gt;
&lt;br /&gt;
The .text section contains all x86 subroutines to be executed by the [[CPU|processor]].&lt;br /&gt;
&lt;br /&gt;
==== .rdata ====&lt;br /&gt;
&lt;br /&gt;
The .rdata section contains the [[Kernel|kernel thunk table]]. The ordinals in the table are to be resolved to the kernel's actual calling routine, when loaded.&lt;br /&gt;
&lt;br /&gt;
== Xbox Alpha executable format==&lt;br /&gt;
&lt;br /&gt;
Binaries from early Xbox development (Alpha units), are using a different binary format. There are no known public tools that can read them.&lt;br /&gt;
Known differences include that the first bytes of the file are 'XE' instead the 'XBEH' from the final XBE format. The format is rumored to be more like the Windows PE format.{{citation needed}}&lt;br /&gt;
&lt;br /&gt;
== Resources and links ==&lt;br /&gt;
* [http://www.caustik.com/cxbx/download/xbe.htm .XBE File Format 1.1]&lt;br /&gt;
&lt;br /&gt;
[[Category:Fileformats]]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Category:Fileformats&amp;diff=6413</id>
		<title>Category:Fileformats</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Category:Fileformats&amp;diff=6413"/>
				<updated>2018-05-24T19:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Main_Page&amp;diff=6412</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Main_Page&amp;diff=6412"/>
				<updated>2018-05-22T21:35:13Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:Main Page/Header}}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[Chihiro]]&lt;br /&gt;
* [[Xbox]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware Revisions]]&lt;br /&gt;
* [[Motherboard]]&lt;br /&gt;
* [[CPU]]&lt;br /&gt;
* [[NV2A]]&lt;br /&gt;
** [[NV2A/Vertex attributes]]&lt;br /&gt;
** [[NV2A/Fixed Function Pipeline]]&lt;br /&gt;
** [[NV2A/Vertex Shader]]&lt;br /&gt;
** [[NV2A/Pixel Combiner]]&lt;br /&gt;
** [[NV2A/Surface Formats]]&lt;br /&gt;
* [[Memory]]&lt;br /&gt;
* [[Flash ROM]]&lt;br /&gt;
* [[MCPX]]&lt;br /&gt;
** [[APU]]&lt;br /&gt;
** [[ACI]]&lt;br /&gt;
* [[SMBus]]&lt;br /&gt;
** [[EEPROM]]&lt;br /&gt;
** [[SMC]]&lt;br /&gt;
** [[Video Encoder]]&lt;br /&gt;
*** [[AV Cables]]&lt;br /&gt;
* [[NVNet|Network Controller (NVNet)]]&lt;br /&gt;
* [[DVD Drive]]&lt;br /&gt;
** [[Xbox Game Disc]]&lt;br /&gt;
* [[Hard Drive]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
** [[Xbox Input Devices]]&lt;br /&gt;
** [[Xbox Memory Unit]]&lt;br /&gt;
** [[Xbox Live Communicator]] &amp;lt;!-- Maybe rename this to microphones later? --&amp;gt;&lt;br /&gt;
** [[Xbox DVD Movie Playback Kit]]&lt;br /&gt;
* [[Power Supply]]&lt;br /&gt;
* [[Development Kits]]&lt;br /&gt;
** [[Super I/O]]&lt;br /&gt;
** [[DVD Emulator]]&lt;br /&gt;
* [[Manufacturing Process]]&lt;br /&gt;
&lt;br /&gt;
== System Software ==&lt;br /&gt;
* [[MCPX ROM]]&lt;br /&gt;
* [[BIOS]] / [[Kernel]]&lt;br /&gt;
** [[Boot Process]]&lt;br /&gt;
** [[XBE]] (Executable file format)&lt;br /&gt;
* [[FATX]] (Filesystem)&lt;br /&gt;
* [[Dashboard]]&lt;br /&gt;
* [[Exploits]]&lt;br /&gt;
&lt;br /&gt;
== Development Kits and Tools ==&lt;br /&gt;
* [https://github.com/xqemu/nxdk nxdk (New Xbox Development Kit)]&lt;br /&gt;
* [[OpenXDK]]&lt;br /&gt;
* [[Microsoft XDK]]&lt;br /&gt;
** [[Xbox Debug Monitor]]&lt;br /&gt;
** [[Xbox Neighborhood]]&lt;br /&gt;
** [[Kernel_Debug| Xbox Kernel Debugging]]&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
* [[:Category:Games|Games]]&lt;br /&gt;
* [[Engine List]]&lt;br /&gt;
&lt;br /&gt;
== Emulation ==&lt;br /&gt;
* [[Emulators]]&lt;br /&gt;
** [[XQEMU]]&lt;br /&gt;
** [[Xbox 360 Backward Compatibility]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
* [[Network]]&lt;br /&gt;
* [[Patents]]&lt;br /&gt;
* Find random stuff in [[Resources]]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Main_Page&amp;diff=6411</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Main_Page&amp;diff=6411"/>
				<updated>2018-05-21T10:33:29Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:Main Page/Header}}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* [[Chihiro]]&lt;br /&gt;
* [[Xbox]]&lt;br /&gt;
&lt;br /&gt;
* [[Hardware Revisions]]&lt;br /&gt;
* [[Motherboard]]&lt;br /&gt;
* [[CPU]]&lt;br /&gt;
* [[NV2A]]&lt;br /&gt;
** [[NV2A/Vertex attributes]]&lt;br /&gt;
** [[NV2A/Fixed Function Pipeline]]&lt;br /&gt;
** [[NV2A/Vertex Shader]]&lt;br /&gt;
** [[NV2A/Pixel Combiner]]&lt;br /&gt;
** [[NV2A/Surface Formats]]&lt;br /&gt;
* [[Memory]]&lt;br /&gt;
* [[Flash ROM]]&lt;br /&gt;
* [[MCPX]]&lt;br /&gt;
** [[APU]]&lt;br /&gt;
** [[ACI]]&lt;br /&gt;
* [[SMBus]]&lt;br /&gt;
** [[EEPROM]]&lt;br /&gt;
** [[SMC]]&lt;br /&gt;
** [[Video Encoder]]&lt;br /&gt;
*** [[AV Cables]]&lt;br /&gt;
* [[Network|Network Controller (NVNet)]]&lt;br /&gt;
* [[DVD Drive]]&lt;br /&gt;
** [[Xbox Game Disc]]&lt;br /&gt;
* [[Hard Drive]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
** [[Xbox Input Devices]]&lt;br /&gt;
** [[Xbox Memory Unit]]&lt;br /&gt;
** [[Xbox Live Communicator]] &amp;lt;!-- Maybe rename this to microphones later? --&amp;gt;&lt;br /&gt;
** [[Xbox DVD Movie Playback Kit]]&lt;br /&gt;
* [[Power Supply]]&lt;br /&gt;
* [[Development Kits]]&lt;br /&gt;
** [[Super I/O]]&lt;br /&gt;
** [[DVD Emulator]]&lt;br /&gt;
* [[Manufacturing Process]]&lt;br /&gt;
&lt;br /&gt;
== System Software ==&lt;br /&gt;
* [[MCPX ROM]]&lt;br /&gt;
* [[BIOS]] / [[Kernel]]&lt;br /&gt;
** [[Boot Process]]&lt;br /&gt;
** [[XBE]] (Executable file format)&lt;br /&gt;
* [[FATX]] (Filesystem)&lt;br /&gt;
* [[Dashboard]]&lt;br /&gt;
* [[Exploits]]&lt;br /&gt;
&lt;br /&gt;
== Development Kits and Tools ==&lt;br /&gt;
* [https://github.com/xqemu/nxdk nxdk (New Xbox Development Kit)]&lt;br /&gt;
* [[OpenXDK]]&lt;br /&gt;
* [[Microsoft XDK]]&lt;br /&gt;
** [[Xbox Debug Monitor]]&lt;br /&gt;
** [[Xbox Neighborhood]]&lt;br /&gt;
** [[Kernel_Debug| Xbox Kernel Debugging]]&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
* [[:Category:Games|Games]]&lt;br /&gt;
* [[Engine List]]&lt;br /&gt;
&lt;br /&gt;
== Emulation ==&lt;br /&gt;
* [[Emulators]]&lt;br /&gt;
** [[XQEMU]]&lt;br /&gt;
** [[Xbox 360 Backward Compatibility]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
* [[Network]]&lt;br /&gt;
* [[Patents]]&lt;br /&gt;
* Find random stuff in [[Resources]]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6410</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6410"/>
				<updated>2018-05-14T21:06:18Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6409</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6409"/>
				<updated>2018-05-14T21:06:07Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Switched to Focus Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6408</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6408"/>
				<updated>2018-05-14T21:05:24Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
** New MCPX revision 1.1&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Switched to Focus Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6407</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6407"/>
				<updated>2018-05-14T21:04:15Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
** Switched to ATX Power connector&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
** Switched to Focus Video Encoder&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
** 3.3v and GND removed from LPC&lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=LPC_Debug_Port&amp;diff=6402</id>
		<title>LPC Debug Port</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=LPC_Debug_Port&amp;diff=6402"/>
				<updated>2018-04-30T21:36:56Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:10px;&amp;quot;&lt;br /&gt;
|+ Pin Layout&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:right&amp;quot; | Name !! style=&amp;quot;text-align:right&amp;quot; | Pin !! Pin !! Name&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | - || style=&amp;quot;text-align:right&amp;quot; | 16 || 15 || 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | SDA || style=&amp;quot;text-align:right&amp;quot; | 14 || 13 || SCL&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | GND || style=&amp;quot;text-align:right&amp;quot; | 12 || 11 || LAD0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | LAD1 || style=&amp;quot;text-align:right&amp;quot; | 10 || 9 || 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | LAD2 || style=&amp;quot;text-align:right&amp;quot; | 8 || 7 || LAD3&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5V || style=&amp;quot;text-align:right&amp;quot; | 6 || 5 || LRESET#&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | PWR (v1.6) || style=&amp;quot;text-align:right&amp;quot; | 4 || 3 || LFRAME#&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | GND || style=&amp;quot;text-align:right&amp;quot; | 2 || 1 || LCLK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The '''LPC Debug Port''' is an unpopulated 2x8 2.54mm (0.1&amp;quot;) footprint on the Xbox motherboard that provides access to the system's [https://en.wikipedia.org/wiki/Low_Pin_Count Low Pin Count] Bus, as well as the [[SMBus]]. Throughout the Xbox's lifetime, Microsoft modified the LPC port in an attempt to prevent modding and, in some cases, it must be &amp;quot;rebuilt&amp;quot; to restore the port's full functionality. Rebuilding the LPC debug port involves soldering wires between it and very small vias on the motherboard.&lt;br /&gt;
&lt;br /&gt;
The LPC bus is controlled by the [[MCPX|MCPX southbridge]], which conforms to the Intel Low Pin Count Specification 1.0.&lt;br /&gt;
&lt;br /&gt;
== Pins ==&lt;br /&gt;
&lt;br /&gt;
* '''3.3V''' (15 &amp;amp; 9) - Provides 3.3V while the Xbox is powered on. On 1.6 hardware, disconnected reconnect to pin 15 to restore supply voltage.&lt;br /&gt;
* '''SDA''' (14) - [[SMBus]] data and address signal.&lt;br /&gt;
* '''SCL''' (13) - [[SMBus]] clock signal.&lt;br /&gt;
* '''GND''' (12 &amp;amp; 2) - Ground.&lt;br /&gt;
* '''LAD[3:0]''' (11, 10, 8, 7) - LPC address and data signals.&lt;br /&gt;
* '''5V''' (6) - Provides 5V while the Xbox is powered on or v1.6 always on when AC plugged in.&lt;br /&gt;
* '''LRESET#''' (5) - LPC reset signal; same as PCIRST#.&lt;br /&gt;
* '''PWR''' (4) - On pre-1.6 hardware, this pin does not physically exist. On 1.6 hardware, this pin is connected to the power button. Shorting it to ground will turn the Xbox on and off.&lt;br /&gt;
* '''LFRAME#''' (3) - LPC start-of-cycle signal. On 1.3-1.5 hardware, disconnected.&lt;br /&gt;
* '''LCLK''' (1) - 33MHz LPC clock signal; same as PCICLK.&lt;br /&gt;
&lt;br /&gt;
The debug port lacks the optional LDRQ#, SERIRQ, CLKRUN#, PME#, LPCPD#, and LSMI# signals. This means peripherals connected to the debug port cannot utilize interrupt, DMA, bus mastering, or power management features.&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=User:DarkGabbz&amp;diff=6401</id>
		<title>User:DarkGabbz</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=User:DarkGabbz&amp;diff=6401"/>
				<updated>2018-04-30T20:19:04Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Xbox dude from germany nothing more nothing less.&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=User:DarkGabbz&amp;diff=6400</id>
		<title>User:DarkGabbz</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=User:DarkGabbz&amp;diff=6400"/>
				<updated>2018-04-28T18:52:05Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Created page with &amp;quot;This is a page.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page.&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6399</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6399"/>
				<updated>2018-04-28T18:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* Manufacturing Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001–07/2002 || 1.0 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 08/2002-01/2003 || 1.1 || China, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 01/2003-03/2003 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2003-07/2003 || 1.3 || China&lt;br /&gt;
|- &lt;br /&gt;
| 09/2003-03/2004 || 1.4,1.5 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004-09/2004 || 1.6 || China, Taiwan&lt;br /&gt;
|- &lt;br /&gt;
| 09/2004-08/2005 || 1.6b || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6398</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6398"/>
				<updated>2018-04-28T18:07:20Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* Serial Number */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001-10/2002 || 1.0 || Hungary&lt;br /&gt;
|-&lt;br /&gt;
| 11/2002-04/2003 || 1.1 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 05/2003-03/2004 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004 Onward || 1.6 || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 43WFF || 1.6b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6397</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6397"/>
				<updated>2018-04-28T18:06:06Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: /* DVD Drive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001-10/2002 || 1.0 || Hungary&lt;br /&gt;
|-&lt;br /&gt;
| 11/2002-04/2003 || 1.1 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 05/2003-03/2004 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004 Onward || 1.6 || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0, 1.1)&lt;br /&gt;
* Philips (Xbox 1.1 and above)&lt;br /&gt;
* Samsung (Any)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	<entry>
		<id>https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6396</id>
		<title>Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://xboxdevwiki.net/index.php?title=Hardware_Revisions&amp;diff=6396"/>
				<updated>2018-04-28T18:04:22Z</updated>
		
		<summary type="html">&lt;p&gt;DarkGabbz: Added Xbox 1.3 Hardware changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different retail Xbox hardware revisions:&lt;br /&gt;
&lt;br /&gt;
* Xbox 1.0&lt;br /&gt;
** USB controller is on a separate PCB&lt;br /&gt;
** GPU has a fan on the heat sink&lt;br /&gt;
* Xbox 1.1&lt;br /&gt;
** USB controller moved onto the motherboard&lt;br /&gt;
** Fan removed from the GPU heat sink&lt;br /&gt;
* Xbox 1.2&lt;br /&gt;
* Xbox 1.3&lt;br /&gt;
** Removed LFrame signal from LPC Port&lt;br /&gt;
* Xbox 1.4&lt;br /&gt;
* Xbox 1.5 &lt;br /&gt;
* Xbox 1.6&lt;br /&gt;
** Removed data and power lines from LPC port&lt;br /&gt;
** Xyclops chip (includes ROM instead of flash = BIOS no longer flashable)&lt;br /&gt;
** Microsoft later switched to lower quality Hynix RAM. These Xboxes with non-Samsung RAM are sometimes referred to as 1.6b by the modding community.&lt;br /&gt;
&lt;br /&gt;
You can find more information about the hardware used in each revision below.&lt;br /&gt;
&lt;br /&gt;
== History of Xbox 1.5 ==&lt;br /&gt;
&lt;br /&gt;
Possibly never existed{{citation needed}}, but will otherwise be very rare. Production was halted and 1.4 was produced again{{citation needed|reason=Sooo.. do these exist or not?!}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identifying ==&lt;br /&gt;
&lt;br /&gt;
While not definitive, here are some ways to help identify the revision of your Xbox.&lt;br /&gt;
&lt;br /&gt;
=== Manufacturing Details ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Date Range&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| 01/2001-10/2002 || 1.0 || Hungary&lt;br /&gt;
|-&lt;br /&gt;
| 11/2002-04/2003 || 1.1 || Hungary, Mexico&lt;br /&gt;
|-&lt;br /&gt;
| 05/2003-03/2004 || 1.2 || China&lt;br /&gt;
|-&lt;br /&gt;
| 04/2004 Onward || 1.6 || China, Taiwan&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Serial Number ===&lt;br /&gt;
&lt;br /&gt;
The serial number looks like this:&lt;br /&gt;
&lt;br /&gt;
LNNNNNN YWWFF&lt;br /&gt;
&lt;br /&gt;
* L is the production line&lt;br /&gt;
* NNNNNN is the number produced that week&lt;br /&gt;
* Y is the last digit of the production year&lt;br /&gt;
* WW is the number of the week&lt;br /&gt;
* FF is the factory code&lt;br /&gt;
&lt;br /&gt;
Note, this table contradicts the previous table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Factory&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Location&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Mexico || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Hungary || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 05 || China || 1.2 or later&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Taiwan || 1.2 or later&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Serial Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 20WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 21WFF || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 23WFF || 1.0 or 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 24WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 25WFF || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 30WFF || 1.2&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 31WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 32WFF || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 33WFF || 1.4 or 1.5&lt;br /&gt;
|-&lt;br /&gt;
| LNNNNNN 42WFF || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DVD Drive ===&lt;br /&gt;
&lt;br /&gt;
There are four retail drives known to be used by Microsoft in the retail version of the console.&lt;br /&gt;
any Xbox DVD drive can be used in any retail xbox.&lt;br /&gt;
&lt;br /&gt;
List of Xbox DVD Drive manufacturers&lt;br /&gt;
* Thomson (Xbox 1.0)&lt;br /&gt;
* Philips (Xbox 1.2)&lt;br /&gt;
* Samsung (Xbox 1.3)&lt;br /&gt;
* Hitachi-LG (8050L)(mainly 1.6?)&lt;br /&gt;
&lt;br /&gt;
[[File:Xbox_drivedetermination.png|Xbox DVD Drive determination]]&lt;br /&gt;
&lt;br /&gt;
===Hitachi-LG GDR-8050L ===&lt;br /&gt;
This DVD-rom drive, most commonly found in Xbox 1.6 and 1.6b is reading DVD-+R, DVD-RW and CDRW media, but fails to boot most CD-R discs source: [http://www.xbox-hq.com/html/article1535.html xbox-hq.com Hitachi-LG GDR-8050L DVD Drive In Xbox].&lt;br /&gt;
&lt;br /&gt;
on 30 January 2006 TheSpecialist posted at Xboxhacker.net that he succesfully flashed a Hitachi drive to boot a copied game on a unmodded xbox: [https://web.archive.org/web/20080316154615/http://www.xboxhacker.net/index.php?option=com_smf&amp;amp;Itemid=33&amp;amp;topic=285.0 breakthrough: XBOX 1 firmware hacked !]&lt;br /&gt;
&lt;br /&gt;
=== Hard Drive ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&lt;br /&gt;
|-&lt;br /&gt;
! Revision&lt;br /&gt;
! Drive Manufacturer&lt;br /&gt;
! Drive Model Number&lt;br /&gt;
! Capacity&lt;br /&gt;
|-&lt;br /&gt;
| 1.0&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST310211A&lt;br /&gt;
| 10G ?&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 (XB:2001-10-26 FF=02)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-00CGH0&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 (XB:2001-10-29 FF=03)&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28CGH1&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Western Digital&lt;br /&gt;
| WD80EB-28DFH2&lt;br /&gt;
| 8G&lt;br /&gt;
|-&lt;br /&gt;
| 1.3+&lt;br /&gt;
| Seagate&lt;br /&gt;
| ST10014ACE&lt;br /&gt;
| 10G&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video encoder ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Video Chip&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| Conexant || 1.0, 1.1, 1.2, 1.3&lt;br /&gt;
|-&lt;br /&gt;
| Focus || 1.4, 1.5&lt;br /&gt;
|-&lt;br /&gt;
| Xcalibur || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EEPROM ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Xbox Model&lt;br /&gt;
! Manufacturer&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 (Others?)&lt;br /&gt;
| Catalyst&lt;br /&gt;
| CAT24WC02J&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MCPX Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | MCPX Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 1.0 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 1.1 - 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BIOS Version ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Kernel Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Revision&lt;br /&gt;
|-&lt;br /&gt;
| 3944, 4034, 4036, 4627 || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 4817, 4972 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 5101, 5713 || 1.2 - 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 5838 || 1.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210&amp;amp;seqNum=2 InformIT Methods of Identification]&lt;br /&gt;
* [http://www.informit.com/articles/article.aspx?p=367210 InformIT Identifying your Xbox Revision]&lt;/div&gt;</summary>
		<author><name>DarkGabbz</name></author>	</entry>

	</feed>