컨트롤러와 키보드
DualSense, DualSense Edge, DualShock 4는 USB와 Bluetooth에서 HID로 읽습니다. Xbox 호환 패드는 XInput을 사용합니다. 키보드는 런처 프로필을 통해 스틱에 매핑됩니다.
2026년 10월 10일까지의 저장소 노트
HID 리포트
XInput은 Xbox 호환 장치를 열거합니다. PC에 연결한 DualSense는 변환 계층이 가상 Xbox 패드를 만들어 내지 않는 한 XInput에 보이지 않습니다. PS5PCEM은 Sony 패드를 HID로 열고 리포트를 디코딩합니다. 필드는 USB와 Bluetooth에서 같습니다. Bluetooth가 페이로드 앞에 접두부를 붙이고, DualSense는 트리거를 버튼 바이트보다 앞에 두기 때문에 오프셋이 달라집니다.
방향 패드는 독립된 비트 4개가 아니라 8방위 중 하나로 들어옵니다. 읽기는 겹쳐서 진행되며 절대 차단되지 않습니다. 폴링은 드라이버 큐를 비우고 가장 최신 리포트를 남깁니다. 가장 오래된 리포트로 답하면 프레임이 밀린 만큼 스틱이 늦게 반응합니다.
출력, 모터, 라이트 바
출력 리포트는 두 모터와 라이트 바를 함께 담습니다. Bluetooth에서는 리포트가 밀려 있고 끝에 패드가 실행 전에 확인하는 체크섬이 붙으므로, 케이블용으로 만든 리포트는 무선에서 무시됩니다. 런처의 조작 페이지는 찾은 패드의 이름을 표시하고, 두 모터를 돌리고 라이트 바 색을 훑는 1초 테스트를 실행할 수 있습니다. 장치는 공유 모드로, 호스트가 허용하면 쓰기용으로 엽니다.
패드가 XInput보다 우선합니다. XInput은 Xbox 호환 컨트롤러와 그렇게 자신을 소개하는 장치를 위한 경로로 남습니다. 런처는 선택, 컨트롤러 번호, 키보드 바인딩을 저장하고 환경 변수로 game-run에 전달합니다.
키보드와 스크립트 입력
WASD는 왼쪽 스틱입니다. Alt와 화살표 키는 오른쪽 스틱입니다. 프로필은 컨트롤러, 키보드, 또는 둘 다일 수 있습니다. PS5_INPUT_MODE=scripted는 초기 구동용 버튼 펄스를 유지하고 물리 장치를 무시하므로, 다른 창에서 누른 키가 측정 중인 장면을 바꾸지 않습니다.
HLE 안에서 기본 패드는 scePadOpen으로 열거나 scePadGetHandle로 얻을 수 있습니다. 두 번째 경로는 로그인한 사용자의 컨트롤러를 열지 않고 바로 폴링하는 타이틀에 중요합니다. 이것이 그 핸들의 호스트 쪽입니다.
구현된 것
- USB와 Bluetooth HID를 통한 DualSense, DualSense Edge, DualShock 4.
- 최신 리포트 폴링, 모터, 라이트 바, Bluetooth 체크섬.
- Xbox 호환 패드용 XInput과 다시 매핑할 수 있는 키보드 프로필.
- 측정 중 물리 장치를 무시하는 스크립트 입력 모드.
아직 빠진 것
- 터치패드, 적응형 트리거, 모션 센서는 DualSense 기능 전체를 지원하지 않습니다.
- 영상 트랙의 햅틱은 모터로 보내지 않습니다.
- HID 경로는 런처와 game-run이 쓰는 Windows 호스트 경로입니다.
관련 메커니즘
이 페이지들에 대하여