Files
Sylpheed/docs/re/data/input-pad-fields.txt
sylph-decoder 0565098fa2 handoff+index: H3 answered, the settle anchor, and the pad's full field set
Three rows the port is blocked on:

H3 -- 2 units per guest frame, measured on the plate's own ramp against a
pre-registration. Their 5 excluded by >2x, and the reason named: an alpha
step is not a clock rate without the element's declared T, and my own
splash-quad-timeline.txt published alpha against frame with no T column.
That file now warns at its head.

The title settle anchor is t~160, not t=118 -- it is ptcopyright, the last
build-in element and the only glyph one. Said plainly that this is the
reading under which their clock:'shared' collapses, and that a consequence
is not a counter-argument.

Told them NOT to change their 60 units/s yet: units/second is untouched by
this and two of my own captures disagree ~2.9x on frames->seconds.

The pad: sub_82457038 reads every field of XINPUT_GAMEPAD, 14/14 loads
verified against the image, plus a second keystroke-queue path. Flagged as
the superset the game can SEE, not the per-screen set, so it is used to
check a binding table and not to write one.
2026-09-01 16:50:52 +00:00

58 lines
3.3 KiB
Plaintext

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