v3.1.0 was tagged 2026-05-03. #266 merged 2026-06-12, five weeks later, so no release contains it. v3.1.0 is what devkitPro currently installs, and on it WPAD_Init cannot give a command queue to more than three of its six slots — the fourth Wii Remote crashes during handshake.
I hit this on a stock devkitPro install and confirmed it against the shipped archives rather than upstream source alone, in case that's a useful independent data point:
libwiiuse.a → io_wii.o, wiiuse_init_cmd_queue: li r4,18432 (= MAX_COMMANDS 256 × sizeof(struct cmd_blk_t) 72) passed to __lwp_heap_allocate, then a beq on NULL that skips __lwp_queue_initialize and returns, leaving wm->cmdq zeroed.
libogc.a → system.o, SYS_Init: lis r3,1 (65,536) into __lwp_wkspace_init.
WPAD_Init → wiiuse_init(WPAD_MAX_DEVICES) with WPAD_MAX_DEVICES = 6, and wiiuse_init calls wiiuse_init_cmd_queue for every slot.
- 6 × 18,432 = 110,592 needed vs 65,536 available → three succeed.
Symptom matches #266 exactly: three Remotes connect and run fine, the fourth faults during handshake via wiiuse_handshake → wiiuse_set_leds → wiiuse_sendcmd → __wiiuse_push_command.
master is only 3 commits ahead of v3.1.0. Would it be possible to tag a release that includes #266?
Failing that, a note on the v3.1.0 release would save people rediscovering it. It presents as a Bluetooth or pairing problem — under emulation it shows up as an ACL queue overflow flood, which is a downstream symptom of the app wedging — and that sends you a long way in the wrong direction before you get to a memory constant.
v3.1.0was tagged 2026-05-03. #266 merged 2026-06-12, five weeks later, so no release contains it.v3.1.0is what devkitPro currently installs, and on itWPAD_Initcannot give a command queue to more than three of its six slots — the fourth Wii Remote crashes during handshake.I hit this on a stock devkitPro install and confirmed it against the shipped archives rather than upstream source alone, in case that's a useful independent data point:
libwiiuse.a→io_wii.o,wiiuse_init_cmd_queue:li r4,18432(=MAX_COMMANDS256 ×sizeof(struct cmd_blk_t)72) passed to__lwp_heap_allocate, then abeqon NULL that skips__lwp_queue_initializeand returns, leavingwm->cmdqzeroed.libogc.a→system.o,SYS_Init:lis r3,1(65,536) into__lwp_wkspace_init.WPAD_Init→wiiuse_init(WPAD_MAX_DEVICES)withWPAD_MAX_DEVICES= 6, andwiiuse_initcallswiiuse_init_cmd_queuefor every slot.Symptom matches #266 exactly: three Remotes connect and run fine, the fourth faults during handshake via
wiiuse_handshake → wiiuse_set_leds → wiiuse_sendcmd → __wiiuse_push_command.masteris only 3 commits ahead ofv3.1.0. Would it be possible to tag a release that includes #266?Failing that, a note on the v3.1.0 release would save people rediscovering it. It presents as a Bluetooth or pairing problem — under emulation it shows up as an ACL queue overflow flood, which is a downstream symptom of the app wedging — and that sends you a long way in the wrong direction before you get to a memory constant.