Monorepo for Aesthetic.Computer aesthetic.computer

Seat browser gamepads by arrival instead of by slot master

A pad the player is holding is often not at getGamepads()[0] or [1] — browsers hand out indices as they please and recycle freed ones, so a controller at index 2 was invisible to the game. Seats are claimed on arrival and held until that exact pad leaves, so plugging in a second controller never bumps player one out of their seat. The connect and disconnect events now feed the same scan the frame already runs, because a pad stays hidden until someone presses a button on it and that press is the first moment the legend can stop offering keyboard keys. A pad that does not report the standard mapping is refused rather than mis-mapped, and says so, because non-standard layouts vary by browser, driver and device and a wrong guess hands the fighter the wrong punch. Sticks stay raw: quantizedInput already gates at .48, the same number the console reads, and the native side only uses its own .48 for latency edges. A deadzone here would have stacked onto that one.