back to lofibucket.com
Using a Wii remote controller as a mouse with Raspberry Pi is relatively painless. I used the default Raspbian Linux installation.
Setup uinput, wminput and a Wiimote connection script. To enable the IR tracking, I had to add the following lines to
Plugin.ir_ptr.X = ABS_X Plugin.ir_ptr.Y = ABS_Y
B button to left mouse click:
Wiimote.B = BTN_LEFT
To test the setup I started the desktop environment with
startx and then opened a terminal, launched the script made in step 3. Everything worked!
My Wiimote connection script is the one given on Kodi forums:
#!/bin/bash sudo /usr/bin/wminput -w -c ~/.cwiid/wminput/buttons-player1 $(lswm) &
Plugin.led.Led1 = 1 Wiimote.A = BTN_RIGHT Wiimote.B = BTN_LEFT Wiimote.Up = KEY_UP Wiimote.Down = KEY_DOWN Wiimote.Left = KEY_LEFT Wiimote.Right = KEY_RIGHT Wiimote.Minus = KEY_BACKSPACE Wiimote.Plus = KEY_ENTER Wiimote.Home = KEY_ESC #Wiimote.1 #Wiimote.2 Plugin.ir_ptr.X = ABS_X Plugin.ir_ptr.Y = ABS_Y
Full list of Wiimote buttons.
ir_ptrplugin seems to be very primitive
The default version you get with
apt-get install scummvm seems to work fine, but its full screen mode is busted. You don’t get real upscaling to higher resolutions (only 2x, 3x and other special modes), and
cwiid’s mouse emulation goes crazy when going full screen.
I set the HDMI mode to VGA and disabled overscan in
disable_overscan=1 hdmi_group=1 hdmi_mode=1
Then booted up LXDE with
startx, ran the connection script and launched
scummvm with 2x scaling in windowed mode. I managed to inch out the window borders by moving it by dragging with a mouse when holding alt.
Very cumbersome to set up, but it does work.
I tried to compile a RPi version of scummvm with Dispmanx scaling as told in Vanfanel’s instructions, but I just couldn’t get it to work.
I tried applying the following patch to fix SDL includes but it still wouldn’t link.
diff --git a/configure b/configure index 2631a29..a4acc15 100755 --- a/configure +++ b/configure @@ -3072,7 +3072,7 @@ MODULES="$MODULES backends/platform/$_backend" # Setup SDL specifics for SDL based backends # case $_backend in - dingux | gph | linuxmoto | maemo | openpandora | samsungtv | sdl) + dingux | gph | linuxmoto | maemo | openpandora | raspberrypi | samsungtv | sdl) find_sdlconfig INCLUDES="$INCLUDES `$_sdlconfig --prefix="$_sdlpath" --cflags`" LIBS="$LIBS `$_sdlconfig --prefix="$_sdlpath" --libs`" @@ -3095,7 +3095,7 @@ esac # Enable 16bit support only for backends which support it # case $_backend in - android | dingux | dc | gph | iphone | maemo | openpandora | psp | samsungtv | sdl | tizen | + android | dingux | dc | gph | iphone | maemo | openpandora | psp | raspberrypi | samsungtv | if test "$_16bit" = auto ; then _16bit=yes else
Please let me know if you find a solution for this problem.
For feedback email to email@example.com