WIP: checkpoint Wii native IMU and upstream IR bridge

Pause Wii pointing work with firmware 0.33-wii-trace installed. Preserve the pinned libogc IR pipeline, calibrated native IMU, software BOOTSEL, and standard camera sensitivity trial.

Tracking instability, tracking loss, and ineffective vertical movement remain unresolved. Level-2 camera filtering is not hardware-qualified. Nine targeted regression tests pass; firmware and persistent storage were verified after flashing.
This commit is contained in:
Joey Yakimowich-Payne 2026-09-11 17:05:54 -06:00
commit 9f6dddb790
41 changed files with 7990 additions and 150 deletions

View file

@ -10,14 +10,15 @@ def test_bluepad32_backend_lifecycle_native(tmp_path: Path) -> None:
compiler = shutil.which("c++") or shutil.which("g++")
assert compiler is not None, "a host C++ compiler is required"
for bluetooth_mode, native, short_packets in (
("mixed", False, False),
("mixed", True, False),
("mixed", True, True),
("ble", False, False),
("classic", False, False),
for bluetooth_mode, native, short_packets, wii_bridge in (
("mixed", False, False, False),
("mixed", True, False, False),
("mixed", True, True, False),
("ble", False, False, False),
("classic", False, False, False),
("mixed", False, False, True),
):
suffix = "_native32" if short_packets else "_native64" if native else ""
suffix = "_wii_bridge" if wii_bridge else "_native32" if short_packets else "_native64" if native else ""
executable = (
tmp_path / f"bluepad32_backend_lifecycle_test_{bluetooth_mode}{suffix}"
)
@ -33,6 +34,8 @@ def test_bluepad32_backend_lifecycle_native(tmp_path: Path) -> None:
f"-DSWITCH_PICO_ENABLE_BLE={int(bluetooth_mode != 'classic')}",
f"-DSWITCH_PICO_ENABLE_CLASSIC={int(bluetooth_mode != 'ble')}",
]
if wii_bridge:
command.append("-DSWITCH2_BRIDGE_WII_INPUT=1")
if native:
command.extend(
[
@ -112,6 +115,10 @@ def test_bluepad32_backend_lifecycle_native(tmp_path: Path) -> None:
]
)
subprocess.run(command, check=True, cwd=root)
if wii_bridge:
for scenario in ("wii-bridge-sensors", "wii-bridge-cues", "wii-bridge-cue-races"):
subprocess.run([str(executable), scenario], check=True, cwd=root)
continue
subprocess.run([str(executable), "transport-policy"], check=True, cwd=root)
if bluetooth_mode != "classic":
subprocess.run(