Add DualSense native pair and Wii-only IMU settling
This commit is contained in:
parent
1748910316
commit
ab70536fdf
31 changed files with 2617 additions and 77 deletions
|
|
@ -176,27 +176,49 @@ if(SWITCH_PICO_SWITCH2_MEMORY_CAPTURE)
|
|||
add_compile_definitions(SWITCH_PICO_SWITCH2_MEMORY_CAPTURE=1)
|
||||
endif()
|
||||
set(SWITCH2_BRIDGE_WII_INPUT OFF)
|
||||
set(SWITCH2_BRIDGE_DUALSENSE_INPUT OFF)
|
||||
if(SWITCH_PICO_SWITCH2_USB_BRIDGE)
|
||||
if(NOT SWITCH_PICO_INPUT_BACKEND STREQUAL "BLUEPAD32"
|
||||
OR NOT SWITCH_PICO_ENABLE_BLE
|
||||
OR NOT SWITCH_PICO_SWITCH2_MOUSE_CAPTURE
|
||||
set(SWITCH2_BRIDGE_INPUT "JOYCON2" CACHE STRING "Native bridge source: JOYCON2, WII or DUALSENSE")
|
||||
set_property(CACHE SWITCH2_BRIDGE_INPUT PROPERTY STRINGS JOYCON2 WII DUALSENSE)
|
||||
set(SWITCH2_BRIDGE_IMU_TARGET "BOTH" CACHE STRING "Translated native-pair IMU target: LEFT, RIGHT or BOTH")
|
||||
set_property(CACHE SWITCH2_BRIDGE_IMU_TARGET PROPERTY STRINGS LEFT RIGHT BOTH)
|
||||
if(SWITCH2_BRIDGE_IMU_TARGET STREQUAL "RIGHT")
|
||||
set(SWITCH2_BRIDGE_IMU_TARGET_MASK 1)
|
||||
elseif(SWITCH2_BRIDGE_IMU_TARGET STREQUAL "LEFT")
|
||||
set(SWITCH2_BRIDGE_IMU_TARGET_MASK 2)
|
||||
elseif(SWITCH2_BRIDGE_IMU_TARGET STREQUAL "BOTH")
|
||||
set(SWITCH2_BRIDGE_IMU_TARGET_MASK 3)
|
||||
else()
|
||||
message(FATAL_ERROR "SWITCH2_BRIDGE_IMU_TARGET must be LEFT, RIGHT or BOTH")
|
||||
endif()
|
||||
add_compile_definitions(SWITCH2_BRIDGE_IMU_TARGET_MASK=${SWITCH2_BRIDGE_IMU_TARGET_MASK})
|
||||
if(NOT SWITCH_PICO_INPUT_BACKEND STREQUAL "BLUEPAD32")
|
||||
message(FATAL_ERROR "Switch 2 USB bridge requires BLUEPAD32")
|
||||
endif()
|
||||
if(SWITCH2_BRIDGE_INPUT STREQUAL "DUALSENSE")
|
||||
if(NOT SWITCH2_PROBE_HUB OR NOT SWITCH_PICO_ENABLE_CLASSIC)
|
||||
message(FATAL_ERROR "DualSense native R/L bridge requires HUB and Classic Bluetooth")
|
||||
endif()
|
||||
set(SWITCH2_BRIDGE_DUALSENSE_INPUT ON)
|
||||
add_compile_definitions(SWITCH2_BRIDGE_DUALSENSE_INPUT=1)
|
||||
elseif(NOT SWITCH_PICO_ENABLE_BLE OR NOT SWITCH_PICO_SWITCH2_MOUSE_CAPTURE
|
||||
OR NOT SWITCH_PICO_SWITCH2_MOUSE_CAPTURE_NATIVE)
|
||||
message(FATAL_ERROR
|
||||
"Switch 2 USB bridge requires BLUEPAD32 with BLE and native Joy-Con mouse capture")
|
||||
message(FATAL_ERROR "Joy-Con/Wii USB bridge requires BLE and native Joy-Con capture")
|
||||
endif()
|
||||
if(SWITCH_PICO_WII_IR_MOUSE OR SWITCH_PICO_WII_IR_GYRO)
|
||||
message(FATAL_ERROR "Switch 2 USB bridge owns USB; Wii IR USB experiments cannot be combined")
|
||||
endif()
|
||||
set(SWITCH2_BRIDGE_INPUT "JOYCON2" CACHE STRING "Native bridge source: JOYCON2 or WII")
|
||||
set_property(CACHE SWITCH2_BRIDGE_INPUT PROPERTY STRINGS JOYCON2 WII)
|
||||
if(SWITCH2_BRIDGE_INPUT STREQUAL "WII")
|
||||
if(NOT SWITCH_PICO_ENABLE_CLASSIC)
|
||||
message(FATAL_ERROR "Wii native bridge requires Bluetooth MIXED mode")
|
||||
endif()
|
||||
set(SWITCH2_BRIDGE_WII_INPUT ON)
|
||||
add_compile_definitions(SWITCH2_BRIDGE_WII_INPUT=1 SWITCH_PICO_WII_IR=1)
|
||||
elseif(NOT SWITCH2_BRIDGE_INPUT STREQUAL "JOYCON2")
|
||||
message(FATAL_ERROR "SWITCH2_BRIDGE_INPUT must be JOYCON2 or WII")
|
||||
elseif(NOT SWITCH2_BRIDGE_INPUT STREQUAL "JOYCON2" AND NOT SWITCH2_BRIDGE_DUALSENSE_INPUT)
|
||||
message(FATAL_ERROR "SWITCH2_BRIDGE_INPUT must be JOYCON2, WII or DUALSENSE")
|
||||
endif()
|
||||
if(NOT SWITCH2_BRIDGE_DUALSENSE_INPUT AND NOT SWITCH2_BRIDGE_IMU_TARGET STREQUAL "BOTH")
|
||||
message(FATAL_ERROR "LEFT/RIGHT IMU routing requires a translated full-controller native pair")
|
||||
endif()
|
||||
add_compile_definitions(SWITCH_PICO_SWITCH2_USB_BRIDGE=1)
|
||||
endif()
|
||||
|
|
@ -401,10 +423,16 @@ if(SWITCH_PICO_SWITCH2_USB_BRIDGE)
|
|||
endif()
|
||||
target_include_directories(switch-pico PRIVATE ${CMAKE_CURRENT_LIST_DIR}/external)
|
||||
target_sources(switch-pico PRIVATE ${SWITCH2_USB_PROBE_DIR}/native_imu.cpp ${LIBOGC_IR_GENERATED})
|
||||
elseif(SWITCH2_BRIDGE_DUALSENSE_INPUT)
|
||||
target_sources(switch-pico PRIVATE
|
||||
${SWITCH2_USB_PROBE_DIR}/dualsense_input.cpp
|
||||
${SWITCH2_USB_PROBE_DIR}/native_imu.cpp)
|
||||
endif()
|
||||
target_compile_definitions(switch-pico PRIVATE
|
||||
SWITCH2_BRIDGE_SOURCE_ADDRESS_BYTES=${SWITCH2_BRIDGE_SOURCE_ADDRESS_BYTES})
|
||||
if(SWITCH2_PROBE_COMPOSITE OR SWITCH2_PROBE_HUB)
|
||||
if(NOT SWITCH2_BRIDGE_SOURCE_AUTO)
|
||||
target_compile_definitions(switch-pico PRIVATE
|
||||
SWITCH2_BRIDGE_SOURCE_ADDRESS_BYTES=${SWITCH2_BRIDGE_SOURCE_ADDRESS_BYTES})
|
||||
endif()
|
||||
if((SWITCH2_PROBE_COMPOSITE OR SWITCH2_PROBE_HUB) AND NOT SWITCH2_BRIDGE_DUALSENSE_INPUT)
|
||||
target_compile_definitions(switch-pico PRIVATE
|
||||
SWITCH2_BRIDGE_SECOND_SOURCE_ADDRESS_BYTES=${SWITCH2_BRIDGE_SECOND_SOURCE_ADDRESS_BYTES})
|
||||
endif()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue