# C_PAD_DECODER: what sets each bit of the OUTPUT word at this+0x24C.
# Guards are in the RING word's numbering (see ringmap.txt), NOT XINPUT's.
#   'cfg +0xNN' = a REMAPPABLE binding written by the ctor sub_8220B610
#   'literal'   = a mask hard-coded in the update sub_8220B8C0
#   '(internal)'= guarded by decoder state, not by a pad bit, in this window

site       out bit    guard        means
8220BBB0   0x000004   (internal)   -
8220BE78   0x002000   cfg +0x90    R3
8220BEBC   0x000002   cfg +0x84    RB
8220BF00   0x000001   cfg +0x80    RT>220
8220BFB8   0x000800   cfg +0x74    LT>220
8220C0B0   0x000800   cfg +0x70    LB
8220C118   0x000020   (internal)   -
8220C13C   0x000040   (internal)   -
8220C2F0   0x000010   cfg +0xA0    B
8220C338   0x000100   cfg +0x7C    X
8220C37C   0x200000   cfg +0xA4    DPAD DOWN
8220C404   0x010000   cfg +0x98    BACK
8220C458   0x040000   literal      LS LEFT
8220C474   0x080000   literal      LS RIGHT
8220C490   0x000200   literal      LS UP
8220C4AC   0x000400   literal      LS DOWN
8220C4EC   0x100000   (internal)   -
8220CB48   0x000008   (internal)   -

# 13 of 18 output bits resolve to a pad guard.

# every config field the ctor sets to a ring-word button set:
#   +0x4C = 0x00000100  RS UP
#   +0x64 = 0x00000001  A
#   +0x70 = 0x00040000  LB
#   +0x74 = 0x00100000  LT>220
#   +0x7C = 0x00000004  X
#   +0x80 = 0x00200000  RT>220
#   +0x84 = 0x00080000  RB
#   +0x8C = 0x00400000  L3
#   +0x90 = 0x00800000  R3
#   +0x94 = 0x00000001  A
#   +0x98 = 0x00020000  BACK
#   +0x9C = 0x00000008  Y
#   +0xA0 = 0x00000002  B
#   +0xA4 = 0x00002000  DPAD DOWN
#   +0xAC = 0x00000014  X | LS UP
#   +0xB4 = 0x0000000A  B | Y
#   +0xB8 = 0x0000005A  B | Y | LS UP | LS LEFT
#   +0xBC = 0x0000000A  B | Y
#   +0xC0 = 0x0000005A  B | Y | LS UP | LS LEFT
#   +0xC4 = 0x0000000A  B | Y
#   +0xC8 = 0x00000008  Y
#   +0xD4 = 0x00000002  B
#   +0xD8 = 0x00000078  Y | LS UP | LS DOWN | LS LEFT
