rnconrad / WiimoteEmulator

Emulates a Bluetooth Wii controller in software.
81 stars 15 forks source link

wmmitm IR flickering in SMG #20

Open MikeXander opened 2 years ago

MikeXander commented 2 years ago

When using the wmmitm tool while playing Super Mario Galaxy, the pointer is constantly flickering from on-screen to off-screen (which makes the game skip some inputs like selecting options). Here's a short demo: https://youtu.be/yDUDgIkVpLM

I wasn't able to recreated this behaviour on Dolphin by alternating IR position from on-screen to off-screen on consecutive input polls (done by using a script for Dolphin-Lua), so my guess is that wmmitm isn't sending out the input reports fast enough. Is this something that can be fixed within the code, or is it maybe due to a slow bluetooth adapter?

This is possibly related to the issue you described here, but I believed this warranted it's own issue for tracking purposes. Also, as a comment on that, I don't know of any differences in the way SMG handles pointers. It happily accepts the way Dolphin does it which is by taking the coordinate (x,y) and using the points (x-10,y), (x,y), (x+100,y), (x+110,y)

rnconrad commented 2 years ago

I agree that it seems that reports aren't being sent quickly enough. SMG is particularly sensitive, as I have noticed similar behavior even when using a real Wiimote if e.g. the sensor bar/lighting conditions aren't ideal. There is very little persistence in the pointer tracking, so if new data isn't received at a high enough rate then the pointer just disappears.

Report speed could possibly be limited by the adapter/interface but I think there is still some room for improvement in the software/stack. I have pushed a few tweaks that should hopefully improve things a bit.

Key differences: