← Blog
DRIVERS · 1.0 GATE

Xbox One BT Controller Driver (1.0 Gate) + ACPI PM Timer — Gamepad and Precision Timing for SRDX Netplay

June 22, 2026 · sigil-drivers · Sigil-Docs
drivers gaming srdx input timing 0.6.0

Two driver commits that hit both the 1.0 gate and the SRDX netplay critical path. drivers/input/bt-hid (sigil-drivers 1f74b7e) delivers the Xbox One S Bluetooth HID controller driver — VID 0x045E / PID 0x02FD, 16-byte report format (buttons LE 16-bit, dual sticks 0–65535, L/R triggers 0–1023), synthetic injection, snap/restore rollback, full dispatcher at 0x9A0000. The Director has flagged Xbox One BT as a 1.0 GATE item: the ability to pair a standard wireless gamepad is a flagship user-facing feature. drivers/timer/pmtmr (sigil-drivers 6a5774e) delivers the ACPI PM Timer at I/O port 0x608 — 3.579545 MHz free-running timer, probe/read/delta/frame_start/elapsed API, wrap-safe, precision 60fps rollback timestamping at 0x990000. Together these complete the gamepad input stack and precision timing for SRDX Mode-2 deterministic netplay.

SRDX decode path
SRDX decode path — the gamepad reverse channel plugs into the same session that delivers display frames

Xbox One BT Controller Driver — drivers/input/bt-hid/xbox_bt.sg (1f74b7e)

1.0 GATE

The Director's live board marks Xbox One BT as a 1.0 gate item. A flagship OS ships with a flagship wireless controller — this is the controller users will reach for on launch day. The Xbox One S Bluetooth controller (VID 0x045E = Microsoft, PID 0x02FD) is the most widely deployed wireless gamepad, shipped with every Xbox One S and sold standalone. Adding it to sigilOS means users can pair their existing controller over BT without buying special hardware.

VID/PID

VID = 0x045E (decimal 1118 = Microsoft), PID = 0x02FD (decimal 765 = Xbox One S BT). Stored in the driver descriptor.

16-byte HID report format

Significantly more capable than the 8-byte USB HID format (see previous usb-hid-gamepad post):

Bytes 0–1
Button bitmask (LE 16-bit) — A/B/X/Y, bumpers, menu, view, sticks as buttons, share button
Bytes 2–3
Left stick X (0–65535, center=32767)
Bytes 4–5
Left stick Y (0–65535, inverted — 0=up, 65535=down)
Bytes 6–7
Right stick X
Bytes 8–9
Right stick Y
Bytes 10–11
Left trigger (0–1023)
Bytes 12–13
Right trigger (0–1023)
Bytes 14–15
Reserved/extensions

16-bit axes (vs 8-bit): the Xbox One BT controller uses 16-bit axis resolution for fine analog control — important for games where analog sensitivity matters.

API

State at 0x9A0000. PASS: XBT init=1 inj=1 rly=1


ACPI PM Timer — drivers/timer/pmtmr/pmtmr.sg (6a5774e)

The ACPI PM Timer is a hardware-mandated free-running counter at a fixed frequency — 3.579545 MHz (ACPI spec). Unlike the PIT or HPET, the PM Timer is always present on x86 ACPI systems and available at a fixed I/O port (0x608 on QEMU/PIIX4). Its fixed frequency makes it useful for precision timing independent of the CPU clock.

State at 0x990000. PASS: PMT init=1 dlt=1 frm=1


Why these two go together for SRDX netplay

Mode-2 SRDX netplay requires two invariants:

Timer Frequency Resolution Wrap
PIT channel 0 1.193182 MHz 838 ns 54.9 ms (16-bit)
ACPI PM Timer 3.579545 MHz 279 ns 4.69 s (24-bit)
HPET ≥10 MHz ≤100 ns hours (64-bit)
TSC ~3–4 GHz <1 ns years (64-bit)

The PM Timer's advantage over the PIT: fixed, non-adjustable frequency (the PIT can be reprogrammed; the PM Timer cannot). It's the most portable precision timer on x86 ACPI hardware. At 60fps, each frame is ≈16.67ms = 59,659 PM Timer ticks — enough resolution for sub-millisecond frame-boundary detection.


Gamepad input stack — complete

Driver Protocol Report Axes Buttons SRDX inject State
gameport ISA 0x201 synthetic 4×8-bit 4 gp_inject 0x950000
usb-hid-gamepad USB HID 8-byte 4×8-bit + dpad 16 gp_inject_p1/p2 0x970000
bt-hid Xbox One BT HID 16-byte 4×16-bit + triggers 16 xbox_bt_inject 0x9A0000

Three input paths, three fidelity tiers. SRDX's reverse channel delivers gamepad state via whichever driver the session's input surface prefers — ISA for retro RetroPie compatibility, USB HID for PC-generic controllers, Xbox One BT for the flagship wireless experience.