Skip to content

Gamepad Firmware

Florian Dollinger edited this page May 3, 2019 · 1 revision

Files

C:/Program Files/WindowsApps/Microsoft.XboxDevices_300.1809.28002.0_x64__8wekyb3d8bbwe/045E_02EA_Manifest.bin

Block Map: Program%20Files/WindowsApps/Microsoft.XboxDevices_300.1809.28002.0_x64__8wekyb3d8bbwe/AppxBlockMap.xml

<File Name="045E_02EA_Manifest.bin" Size="1208640" LfhSize="52">
<Block Hash="JAz/tfpOacS74FIc5ie/9Zd3Kiijiy0LjIwNussPNwk=" Size="47142"/>
<Block Hash="BzQtbyxqbuuYrJLT6FUHYCpxvI5EQjthnE3I4xZRnqo=" Size="46583"/>
<Block Hash="AiTq4boMQhJkLK9v6NhvIx/s6rIZ9NvFJzWZUZghpQQ=" Size="54789"/>
<Block Hash="RdBk5oCP01OG9UFT5SSuS3x1HXeO/qiAw+40CvUaa20=" Size="64946"/>
<Block Hash="EX+XmUnbYxnaTaxsAXklw/AoX00wtbxbRqe5w6/J+D8=" Size="33608"/>
<Block Hash="4QhFTI7fkA8gk+guSwscm/xGsaNtYJ/3LwzoDbQZocA=" Size="17724"/>
<Block Hash="ikoL9EE7j6NleldCH+TjEPSiWWi+yEDAuo7I+8oXElI=" Size="47373"/>
<Block Hash="unajjD+SiYLe4rzXC2+RJT3Q31oSOIcFOJobXe0Ld8g=" Size="5787"/>
<Block Hash="cRiff7au1jhkAHj7o6Nf2mw5yJYudNzHWTWqyUjakGM=" Size="83"/>
<Block Hash="cRiff7au1jhkAHj7o6Nf2mw5yJYudNzHWTWqyUjakGM=" Size="83"/>
<Block Hash="Oey8uz76A3ODFj39pfkTPbLfsZa1bsApRkm7I8vtmSA=" Size="29285"/>
<Block Hash="EoDm2MoUU38LtuG7Kvfey7TqmHZJX9A6gaYhoxcFdaY=" Size="44394"/>
<Block Hash="R4rURQHlATO20xxtxQ2PWRg6kaaD5vkvIBPbzEbgr50=" Size="42245"/>
<Block Hash="YXPLfnzUmpmbMFPdMIf+Yzj9/7gIk99/vDy0JU1p2OA=" Size="40099"/>
<Block Hash="SOJPCXR5JVIrUfiZzspO2ZZVSF9ym/AoSOjEb5PNXtM=" Size="40152"/>
<Block Hash="vaufcCiZlXtHcFiecdEEQt0voh+uLJ93M5cLme57IYU=" Size="41288"/>
<Block Hash="lKxiqrqWwu5QJKK4HkFvst9yaK6p1Wg9Ui9/r5aR00k=" Size="34521"/>
<Block Hash="cRiff7au1jhkAHj7o6Nf2mw5yJYudNzHWTWqyUjakGM=" Size="83"/>
<Block Hash="NK61oHA1xiW2seL3Qrz516BkQkJAqeX6M25Y9RDT1X0=" Size="443"/>

Communication

It should be somehow possible to communicate to the MCU via an console (JTAG, I2C, UART,...). I think so because the firmware contains sections like this (which you can see using any hex editor).

1   -> displays Systicker
th   -> displays ThumbSticks
tr   -> displays Triggers
b   -> displays Buttons
off   -> Motor Off
rr   -> Rumble Right Motor
dma1   -> Test DMA1
i2cw   -> Test I2C Write
i2cr   -> Test I2C Read
time   -> Test EnqueueDelta timer
queue   -> Display completion queue
memread   -> Read 4 bytes:  memread  0x<addr>
memwrite   -> Write 4 bytes: memwrite 0x<addr> 0x<val>
gpioget   -> Mux and read GPIO value: gpioget <pin table index>
gpioset   -> Mux and set GPIO value:  gpioset <pin table index> <1|0>
ver   -> Returns the FW version
ssusb   -> Set device state to USB
n9test   -> N9 Dawn test command: n9test dawn,<val>,<val>,<val>
trace   -> Trace command: trace <MOD> <Trace Mask>
Clone this wiki locally