# 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.