# The pad poll sub_82457038: every XINPUT_GAMEPAD field it reads, and the
# image bytes that prove it. VA -> file offset is VA - 0x82000000.
# Database used as an index only; the image is the authority.

## disassembly of the field-compare block, image bytes beside each line
  0x82457220  817E0000  lwz      r11, 0(r30)
  0x82457224  815F0034  lwz      r10, 52(r31)
  0x82457228  7F0B5040  cmpl     cr6, 0, r11, r10
  0x8245722C  419A0074  bc       12, 4*cr6+eq, 0x824572A0
  0x82457230  A17F0038  lhz      r11, 56(r31)
  0x82457234  A15F0028  lhz      r10, 40(r31)
  0x82457238  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245723C  409AFFCC  bc       4, 4*cr6+eq, 0x82457208
  0x82457240  897F003A  lbz      r11, 58(r31)
  0x82457244  895F002A  lbz      r10, 42(r31)
  0x82457248  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245724C  409AFFBC  bc       4, 4*cr6+eq, 0x82457208
  0x82457250  897F003B  lbz      r11, 59(r31)
  0x82457254  895F002B  lbz      r10, 43(r31)
  0x82457258  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245725C  409AFFAC  bc       4, 4*cr6+eq, 0x82457208
  0x82457260  A17F003C  lhz      r11, 60(r31)
  0x82457264  A15F002C  lhz      r10, 44(r31)
  0x82457268  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245726C  409AFF9C  bc       4, 4*cr6+eq, 0x82457208
  0x82457270  A17F003E  lhz      r11, 62(r31)
  0x82457274  A15F002E  lhz      r10, 46(r31)
  0x82457278  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245727C  409AFF8C  bc       4, 4*cr6+eq, 0x82457208
  0x82457280  A17F0040  lhz      r11, 64(r31)
  0x82457284  A15F0030  lhz      r10, 48(r31)
  0x82457288  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245728C  409AFF7C  bc       4, 4*cr6+eq, 0x82457208
  0x82457290  A17F0042  lhz      r11, 66(r31)
  0x82457294  A15F0032  lhz      r10, 50(r31)
  0x82457298  7F0A5840  cmpl     cr6, 0, r10, r11
  0x8245729C  409AFF6C  bc       4, 4*cr6+eq, 0x82457208
  0x824572A0  38600000  addi     r3, r0, 0
  0x824572A4  38210090  addi     r1, r1, 144

## independent re-encoding check (opcode|rD|rA|d rebuilt from the operands)
  0x82457230  image=0xA17F0038  expect=0xA17F0038  OK        lhz  r11,56(r31)  prev wButtons
  0x82457234  image=0xA15F0028  expect=0xA15F0028  OK        lhz  r10,40(r31)  new  wButtons
  0x82457240  image=0x897F003A  expect=0x897F003A  OK        lbz  r11,58(r31)  prev bLeftTrigger
  0x82457244  image=0x895F002A  expect=0x895F002A  OK        lbz  r10,42(r31)  new  bLeftTrigger
  0x82457250  image=0x897F003B  expect=0x897F003B  OK        lbz  r11,59(r31)  prev bRightTrigger
  0x82457254  image=0x895F002B  expect=0x895F002B  OK        lbz  r10,43(r31)  new  bRightTrigger
  0x82457260  image=0xA17F003C  expect=0xA17F003C  OK        lhz  r11,60(r31)  prev sThumbLX
  0x82457264  image=0xA15F002C  expect=0xA15F002C  OK        lhz  r10,44(r31)  new  sThumbLX
  0x82457270  image=0xA17F003E  expect=0xA17F003E  OK        lhz  r11,62(r31)  prev sThumbLY
  0x82457274  image=0xA15F002E  expect=0xA15F002E  OK        lhz  r10,46(r31)  new  sThumbLY
  0x82457280  image=0xA17F0040  expect=0xA17F0040  OK        lhz  r11,64(r31)  prev sThumbRX
  0x82457284  image=0xA15F0030  expect=0xA15F0030  OK        lhz  r10,48(r31)  new  sThumbRX
  0x82457290  image=0xA17F0042  expect=0xA17F0042  OK        lhz  r11,66(r31)  prev sThumbRY
  0x82457294  image=0xA15F0032  expect=0xA15F0032  OK        lhz  r10,50(r31)  new  sThumbRY

  14/14 agree. The state buffer is at r31+36; the previous copy at r31+52.
