├── wii-controller.service
├── versions
├── wii-lights-bt-internal-one.sh
├── wii-lights-bt-internal.sh
├── wii-lights-bt-external-one.sh
└── wii-lights-bt-external.sh
├── restore_old_configs.sh
├── configs
├── dapinput.ini
├── InputAutoCfg.ini
├── Nintendo Wii Remote Pro Controller.cfg
└── Nintendo Wii Remote Pro Controller2.cfg
├── listen_for_wiimote.py
├── README.md
└── install.sh
/wii-controller.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Wii Remote Light Fixer
3 |
4 | [Service]
5 | User=root
6 | Type=simple
7 | ExecStart=/home/pi/retropie_wiimote_lights/listen_for_wiimote.py
8 |
9 | [Install]
10 | WantedBy=multi-user.target
11 |
--------------------------------------------------------------------------------
/versions/wii-lights-bt-internal-one.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sleep 2
4 | DEVICEDIR=/sys/bus/hid/devices
5 |
6 | for i in `find $DEVICEDIR/*/input/input*/ -maxdepth 1 -name "js?" -type d`
7 | do
8 |
9 | IFS='/' read -a myarray <<< "$i"
10 | id=${myarray[5]};
11 | js=${myarray[8]:2};
12 |
13 | for j in {0..3}
14 | do
15 | bright="$DEVICEDIR/$id/leds/$id:blue:p$j/brightness"
16 | if [ -e "$bright" ]
17 | then
18 | (( level = $j==$js ? 255 : 0 ))
19 | echo $level > $bright
20 | fi
21 | done
22 |
23 | done
24 |
--------------------------------------------------------------------------------
/versions/wii-lights-bt-internal.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sleep 2
4 | DEVICEDIR=/sys/bus/hid/devices
5 |
6 | for i in `find $DEVICEDIR/*/input/input*/ -maxdepth 1 -name "js?" -type d`
7 | do
8 |
9 | IFS='/' read -a myarray <<< "$i"
10 | id=${myarray[5]};
11 | js=${myarray[8]:2};
12 |
13 | for j in {0..3}
14 | do
15 | bright="$DEVICEDIR/$id/leds/$id:blue:p$j/brightness"
16 | if [ -e "$bright" ]
17 | then
18 | (( level = $j<=$js ? 255 : 0 ))
19 | echo $level > $bright
20 | fi
21 | done
22 |
23 | done
24 |
--------------------------------------------------------------------------------
/versions/wii-lights-bt-external-one.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sleep 2
4 | DEVICEDIR=/sys/bus/hid/devices
5 |
6 | js=0
7 | for i in `find $DEVICEDIR/*/input/input*/ -maxdepth 1 -name "js?" -type d | tac`
8 | do
9 |
10 | IFS='/' read -a myarray <<< "$i"
11 | id=${myarray[5]};
12 |
13 | for j in {0..3}
14 | do
15 | bright="$DEVICEDIR/$id/leds/$id:blue:p$j/brightness"
16 | if [ -e "$bright" ]
17 | then
18 | (( level = $j==$js ? 255 : 0 ))
19 | echo $level > $bright
20 | fi
21 | done
22 | js=$js+1
23 |
24 | done
25 |
--------------------------------------------------------------------------------
/versions/wii-lights-bt-external.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sleep 2
4 | DEVICEDIR=/sys/bus/hid/devices
5 |
6 | js=0
7 | for i in `find $DEVICEDIR/*/input/input*/ -maxdepth 1 -name "js?" -type d | tac`
8 | do
9 |
10 | IFS='/' read -a myarray <<< "$i"
11 | id=${myarray[5]};
12 |
13 | for j in {0..3}
14 | do
15 | bright="$DEVICEDIR/$id/leds/$id:blue:p$j/brightness"
16 | if [ -e "$bright" ]
17 | then
18 | (( level = $j<=$js ? 255 : 0 ))
19 | echo $level > $bright
20 | fi
21 | done
22 | js=$js+1
23 |
24 | done
25 |
--------------------------------------------------------------------------------
/restore_old_configs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | echo "This script will restore the controller backups made before installing"
3 | echo "the special configs that come with retropie_wiimote_lights."
4 |
5 | options=( "Yes, please restore my original config files."
6 | "No, don't do anything right now." )
7 |
8 | select which in "${options[@]}"; do
9 | case $which in
10 | "${options[0]}")
11 | cp /opt/retropie/configs/all/retroarch/autoconfig/Nintendo\ Wii\ Remote\ Pro\ Controller.cfg.bak /opt/retropie/configs/all/retroarch/autoconfig/Nintendo\ Wii\ Remote\ Pro\ Controller.cfg
12 | cp /opt/retropie/configs/daphne/dapinput.ini.bak /opt/retropie/configs/daphne/dapinput.ini
13 | cp /opt/retropie/configs/n64/InputAutoCfg.ini.bak /opt/retropie/configs/n64/InputAutoCfg.ini
14 | cp /opt/retropie/configs/n64/mupen64plus.cfg.bak /opt/retropie/configs/n64/mupen64plus.cfg
15 | break;;
16 | "${options[1]}")
17 | echo "OK, I won't change anything."
18 | break;;
19 | esac
20 | done
21 | echo "Done."
--------------------------------------------------------------------------------
/configs/dapinput.ini:
--------------------------------------------------------------------------------
1 | # Daphne cutom keyboard and joystick mapping
2 | #
3 | # Each input is mapped to 2 keyboard keys and one joystick button.
4 | # A joystick's first analog stick is also automatically mapped.
5 | #
6 | # The first two numbers are SDL keyboard codes (or 0 for "none")
7 | # Find keyboard codes here:
8 | # http://www.daphne-emu.com/mediawiki/index.php/KeyList
9 | #
10 | # The third number is the joystick button code (or 0 for "none")
11 | # Since 0 is reserved for special meaning, joystick button 0 is identified
12 | # as 1 here. Button 1 is identified as 2, and so on.
13 | #
14 | # Find the button you want to map by running:
15 | # jstest /dev/input/js0
16 |
17 | [KEYBOARD]
18 | KEY_UP = 273 114 14
19 | KEY_DOWN = 274 102 15
20 | KEY_LEFT = 276 100 16
21 | KEY_RIGHT = 275 103 17
22 | KEY_BUTTON1 = 306 97 2
23 | KEY_BUTTON2 = 308 115 1
24 | KEY_BUTTON3 = 32 113 4
25 | KEY_START1 = 49 0 10
26 | KEY_START2 = 50 0 0
27 | KEY_COIN1 = 53 0 9
28 | KEY_COIN2 = 54 0 0
29 | KEY_SKILL1 = 304 119 0
30 | KEY_SKILL2 = 122 105 0
31 | KEY_SKILL3 = 120 107 0
32 | KEY_SERVICE = 57 0 0
33 | KEY_TEST = 283 0 0
34 | KEY_RESET = 284 0 0
35 | KEY_SCREENSHOT = 293 0 0
36 | KEY_QUIT = 27 113 11
37 | END
38 |
--------------------------------------------------------------------------------
/configs/InputAutoCfg.ini:
--------------------------------------------------------------------------------
1 | ; InputAutoCfg.ini for Mupen64Plus SDL Input plugin
2 |
3 | ; Keyboard_START
4 | [Keyboard]
5 | plugged = True
6 | plugin = 2
7 | mouse = False
8 |
9 | ;DPad R = key(100)
10 | ;DPad L = key(97)
11 | ;DPad D = key(120)
12 | ;DPad U = key(119)
13 |
14 | Start = key(115)
15 | Stop = key(99)
16 | ;Mempak switch = key(44)
17 | ;Rumblepak switch = key(46)
18 |
19 | A Button = key(304)
20 | B Button = key(120)
21 | Z Trig = key(122)
22 | L Trig = key(308)
23 | R Trig = key(32)
24 |
25 | ;C Button R = key(108)
26 | ;C Button L = key(106)
27 | ;C Button D = key(107)
28 | ;C Button U = key(105)
29 |
30 | X Axis = key(276,275)
31 | Y Axis = key(273,274)
32 | ; Keyboard_END
33 |
34 | ; Nintendo Wii Remote Pro Controller_START
35 | [Nintendo Wii Remote Pro Controller]
36 | plugged = True
37 | plugin = 2
38 | mouse = False
39 |
40 | AnalogDeadzone = 4096,4096
41 | AnalogPeak = 32768,32768
42 |
43 | DPad R = button(16)
44 | DPad L = button(15)
45 | DPad D = button(14)
46 | DPad U = button(13)
47 |
48 | Start = button(9)
49 | Stop = button(10)
50 | Mempak switch = button(11)
51 | Rumblepak switch = button(12)
52 |
53 | A Button = button(0)
54 | B Button = button(3)
55 | Z Trig = button(7)
56 | L Trig = button(4)
57 | R Trig = button(5)
58 |
59 | C Button U = axis(3-)
60 | C Button D = axis(3+)
61 | C Button L = axis(2-)
62 | C Button R = axis(2+)
63 |
64 | X Axis = axis(0-,0+)
65 | Y Axis = axis(1-,1+)
66 | ; Nintendo Wii Remote Pro Controller_END
67 |
68 |
--------------------------------------------------------------------------------
/configs/Nintendo Wii Remote Pro Controller.cfg:
--------------------------------------------------------------------------------
1 | # For Bluetooth Wii U Pro / Wannabe Controllers
2 | input_device = "Nintendo Wii Remote Pro Controller"
3 | input_driver = "udev"
4 |
5 | # Select & Start
6 | input_select_btn = "8"
7 | input_start_btn = "9"
8 |
9 | # D-Pad
10 | input_up_btn = "13"
11 | input_down_btn = "14"
12 | input_right_btn = "16"
13 | input_left_btn = "15"
14 |
15 | # A/B/X/Y Buttons
16 | input_a_btn = "1"
17 | input_b_btn = "0"
18 | input_x_btn = "2"
19 | input_y_btn = "3"
20 |
21 | # Right Analog Button (click) and Stick
22 | input_r3_btn = "12"
23 | input_r_y_minus_axis = "-3"
24 | input_r_y_plus_axis = "+3"
25 | input_r_x_minus_axis = "-2"
26 | input_r_x_plus_axis = "+2"
27 |
28 | # Left Analog Button (click) and Stick
29 | input_l3_btn = "11"
30 | input_l_y_minus_axis = "-1"
31 | input_l_y_plus_axis = "+1"
32 | input_l_x_minus_axis = "-0"
33 | input_l_x_plus_axis = "+0"
34 |
35 | # Left & Right Shoulders & Triggers
36 | input_l_btn = "4"
37 | input_l2_btn = "6"
38 | input_r_btn = "5"
39 | input_r2_btn = "7"
40 |
41 | # Hotkey Setup - Select is Hotkey
42 | input_enable_hotkey_btn = "8"
43 | input_exit_emulator_btn = "9"
44 | input_load_state_btn = "4"
45 | input_save_state_btn = "5"
46 | input_state_slot_increase_btn = "16"
47 | input_state_slot_decrease_btn = "15"
48 | input_reset_btn = "0"
49 | input_menu_toggle_btn = "2"
50 |
51 | input_rewind_btn = "3"
52 | input_pause_toggle_btn = "1"
53 | input_hold_fast_forward_btn = "13"
54 | input_slowmotion_btn = "14"
55 |
56 |
--------------------------------------------------------------------------------
/configs/Nintendo Wii Remote Pro Controller2.cfg:
--------------------------------------------------------------------------------
1 | # For Bluetooth Wii U Pro / Wannabe Controllers
2 | input_device = "Nintendo Wii Remote Pro Controller"
3 | input_driver = "udev"
4 |
5 | # Select & Start
6 | input_select_btn = "8"
7 | input_start_btn = "9"
8 |
9 | # D-Pad
10 | input_up_btn = "13"
11 | input_down_btn = "14"
12 | input_right_btn = "16"
13 | input_left_btn = "15"
14 |
15 | # A/B/X/Y Buttons
16 | input_a_btn = "1"
17 | input_b_btn = "0"
18 | input_x_btn = "2"
19 | input_y_btn = "3"
20 |
21 | # Right Analog Button (click) and Stick
22 | input_r3_btn = "12"
23 | input_r_y_minus_axis = "-3"
24 | input_r_y_plus_axis = "+3"
25 | input_r_x_minus_axis = "-2"
26 | input_r_x_plus_axis = "+2"
27 |
28 | # Left Analog Button (click) and Stick
29 | input_l3_btn = "11"
30 | input_l_y_minus_axis = "-1"
31 | input_l_y_plus_axis = "+1"
32 | input_l_x_minus_axis = "-0"
33 | input_l_x_plus_axis = "+0"
34 |
35 | # Left & Right Shoulders & Triggers
36 | input_l_btn = "4"
37 | input_l2_btn = "6"
38 | input_r_btn = "5"
39 | input_r2_btn = "7"
40 |
41 | # Hotkey Setup - Select is Hotkey
42 | #input_enable_hotkey_btn = "8"
43 | input_exit_emulator_btn = "10"
44 | #input_load_state_btn = "4"
45 | #input_save_state_btn = "5"
46 | #input_state_slot_increase_btn = "16"
47 | #input_state_slot_decrease_btn = "15"
48 | #input_reset_btn = "0"
49 | #input_menu_toggle_btn = "2"
50 |
51 | #input_rewind_btn = "3"
52 | #input_pause_toggle_btn = "1"
53 | #input_hold_fast_forward_btn = "13"
54 | #input_slowmotion_btn = "14"
55 |
56 |
--------------------------------------------------------------------------------
/listen_for_wiimote.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/python
2 |
3 | import os
4 | import sys
5 | import signal
6 | import logging
7 | import logging.handlers
8 | import dbus
9 | import dbus.service
10 | import dbus.mainloop.glib
11 | import gobject
12 |
13 | LOG_LEVEL = logging.INFO
14 | #LOG_LEVEL = logging.DEBUG
15 | LOG_FILE = "/dev/log"
16 | LOG_FORMAT = "%(asctime)s %(levelname)s %(message)s"
17 | BLUEZ_DEV = "org.bluez.Device1"
18 |
19 | def device_property_changed_cb(property_name, value, path, interface, device_path):
20 | global bus
21 |
22 | if property_name != BLUEZ_DEV:
23 | return
24 |
25 | device = dbus.Interface(bus.get_object("org.bluez", device_path), "org.freedesktop.DBus.Properties")
26 | properties = device.GetAll(BLUEZ_DEV)
27 |
28 | logger.info("Getting dbus interface for device: %s interface: %s property_name: %s" % (device_path, interface, property_name))
29 |
30 | if properties["Connected"]:
31 | bt_addr = "_".join(device_path.split('/')[-1].split('_')[1:])
32 | # Assumes that the wii-lights.sh script lives in the same directory as this script
33 | cmd = os.path.dirname(os.path.realpath(__file__)) + "/wii-lights.sh"
34 | logger.info("Running cmd: %s" % cmd)
35 | os.system(cmd)
36 | else:
37 | bt_addr = "_".join(device_path.split('/')[-1].split('_')[1:])
38 | logger.info("Device: %s has disconnected" % bt_addr)
39 |
40 | def shutdown(signum, frame):
41 | mainloop.quit()
42 |
43 | if __name__ == "__main__":
44 | # shut down on a TERM signal
45 | signal.signal(signal.SIGTERM, shutdown)
46 |
47 | # start logging
48 | logger = logging.getLogger("bt_auto_loader")
49 | logger.setLevel(LOG_LEVEL)
50 | logger.addHandler(logging.handlers.SysLogHandler(address = "/dev/log"))
51 | logger.info("Starting to monitor Bluetooth connections")
52 |
53 | # Get the system bus
54 | try:
55 | dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
56 | bus = dbus.SystemBus()
57 | except Exception as ex:
58 | logger.error("Unable to get the system dbus: '{0}'. Exiting. Is dbus running?".format(ex.message))
59 | sys.exit(1)
60 |
61 | # listen for signals on the Bluez bus
62 | bus.add_signal_receiver(device_property_changed_cb, bus_name="org.bluez", signal_name="PropertiesChanged", path_keyword="device_path", interface_keyword="interface")
63 |
64 | try:
65 | mainloop = gobject.MainLoop()
66 | mainloop.run()
67 | except KeyboardInterrupt:
68 | pass
69 | except:
70 | logger.error("Unable to run the gobject main loop")
71 | sys.exit(1)
72 |
73 | logger.info("Shutting down")
74 | sys.exit(0)
75 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Light up your Wii controllers with retropie_wiimote_lights
2 | ==========================================================
3 | This group of scripts simply enables your RetroPie box to light up the lights correctly
4 | when you are using either Wii Controllers or Wii U Pro Controllers (I have 3 of these and
5 | they rock !)
6 |
7 | ### Important
8 |
9 | This script expects to live in /home/pi/retropie_wiimote_lights. See below for moving it
10 | elsewhere
11 |
12 | ### Installation Instructions
13 |
14 | Login to your Retropie box as the 'pi' user and simply run:
15 |
16 | (cd && git clone http://github.com/pyhammond/retropie_wiimote_lights)
17 |
18 | Once your git clone is finished, simply run this command to install to retropie:
19 |
20 | (cd ~/retropie_wiimote_lights && ./install.sh)
21 |
22 | The install script will ask you to choose from 4 options. The definition of
23 | these options is as follows:
24 |
25 | 1. *Internal Bluetooth Controller - multiple lights on*
26 | Choose this if you are using the **Internal** Rasp Pi 3 Bluetooth Controller and you want:
27 | 2 lights to light up for the 2nd user,
28 | 3 lights to light up for the 3rd user, etc.
29 |
30 | 2. *External Bluetooth Controller - multiple lights on*
31 | Choose this if you are using an **External** Bluetooth Dongle and you want:
32 | 2 lights to light up for the 2nd user,
33 | 3 lights to light up for the 3rd user, etc.
34 |
35 | 3. *Internal Bluetooth Controller - single light*
36 | Choose this if you are using the **Internal** Rasp Pi 3 Bluetooth Controller and you want:
37 | the 2nd light (only the 2nd light alone) to light up for the 2nd user,
38 | the 3rd light (only the 3rd light alone) to light up for the 3rd user, etc.
39 |
40 | 4. *External Bluetooth Controller - single light*
41 | Choose this if you are using an **External** Bluetooth Dongle and you want:
42 | the 2nd light (only the 2nd light alone) to light up for the 2nd user,
43 | the 3rd light (only the 3rd light alone) to light up for the 3rd user, etc.
44 |
45 | After you've made your choice and the install script is done, you can reboot to see this all work in action.
46 |
47 | ### Retropie Version
48 |
49 | This is known to work well with RetroPie v4.2 and above.
50 |
51 | ### What controllers should these work with ?
52 |
53 | They should work well with either normal Wii Controllers or Wii U Pro Controllers.
54 |
55 | These are the Wii U Pro controllers I wrote them for: https://ebay.com/itm/112568890143
56 |
57 | Two things you could tweak if needed:
58 | -------------------------------------
59 |
60 | 1. If you need to change the path of where these scripts live, you should only need
61 | to edit 1 file: wii-controller.service. Just change the line with ExecStart on it.
62 |
63 | 2. If you are annoyed by waiting 2 seconds before the lights light up correctly and
64 | you feel lucky, you can tweak the amount of time it waits for the bluetooth connection
65 | to complete before checking for the appropriate directories and lighting up the lights.
66 |
67 | This is the "sleep" command found at the very top (line 3) of wii-lights.sh. I had it on
68 | "sleep 1" for a while and it seemed to work, but occassionally wouldn't, so...
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4 |
5 | # Ask if they have an internal or external Bluetooth Dongle
6 | clear
7 | echo "WELCOME TO retropie_wiimote_lights - LET'S MAKE YOUR WIIMOTE LIGHTS WORK RIGHT!"
8 | echo "==============================================================================="
9 | echo "If you have an external bluetooth controller, many emulators will reverse"
10 | echo "the order of your controllers."
11 | echo
12 | echo "Also, you may choose whether to light up a single light on each controller"
13 | echo "corresponding with that input # or show 2 lights for 2nd controller, 3 for"
14 | echo "the 3rd, 4 for the 4th, etc. multiple lights is the typical choice."
15 | echo
16 | options=( "Internal Bluetooth Controller - multiple lights on" \
17 | "External Bluetooth Controller - multiple lights on" \
18 | "Internal Bluetooth Controller - single light" \
19 | "External Bluetooth Controller - single light" )
20 |
21 | select which in "${options[@]}"; do
22 | case $which in
23 | "${options[0]}")
24 | filname="wii-lights-bt-internal.sh"
25 | break;;
26 | "${options[1]}")
27 | filname="wii-lights-bt-external.sh"
28 | break;;
29 | "${options[2]}")
30 | filname="wii-lights-bt-internal-one.sh"
31 | break;;
32 | "${options[3]}")
33 | filname="wii-lights-bt-external-one.sh"
34 | break;;
35 | esac
36 | done
37 |
38 | # Now we know what which one to use, let's symlink that one:
39 | rm -f ./wii-lights.sh
40 | ln -s "versions/$filname" wii-lights.sh
41 | echo "Linking in script $filname"
42 | echo
43 |
44 | # Let's ask them if they want to install some default configs for some emulators
45 | options=( "Yes, install some default controller configs for the Wii-U Pro Controller."
46 | "No, my controller configs are just right. Please don't overwrite them." )
47 |
48 | echo "You can choose to install some default controller configs for the Wii-U Pro"
49 | echo "controllers. This will backup then overwrite your controller config files"
50 | echo "for RetroArch, Daphne, and Mupen64."
51 | select which in "${options[@]}"; do
52 | case $which in
53 | "${options[0]}")
54 | # First backup some old configs that we are going to replace
55 | echo -n "Backing up your old configs for RetroArch, Daphne, and Mupen64..."
56 | cp /opt/retropie/configs/all/retroarch/autoconfig/Nintendo\ Wii\ Remote\ Pro\ Controller.cfg /opt/retropie/configs/all/retroarch/autoconfig/Nintendo\ Wii\ Remote\ Pro\ Controller.cfg.bak 2> /dev/null
57 | cp /opt/retropie/configs/daphne/dapinput.ini /opt/retropie/configs/daphne/dapinput.ini.bak 2> /dev/null
58 | cp /opt/retropie/configs/n64/InputAutoCfg.ini /opt/retropie/configs/n64/InputAutoCfg.ini.bak 2> /dev/null
59 | cp /opt/retropie/configs/n64/mupen64plus.cfg /opt/retropie/configs/n64/mupen64plus.cfg.bak 2> /dev/null
60 | echo " ...Done."
61 |
62 | # Configure the controllers for several emulators to use our custom configs
63 | echo -n "Copying default configs for RetroArch, Daphne, and Mupen64..."
64 | cp configs/Nintendo\ Wii\ Remote\ Pro\ Controller.cfg /opt/retropie/configs/all/retroarch/autoconfig/Nintendo\ Wii\ Remote\ Pro\ Controller.cfg
65 | cp configs/dapinput.ini /opt/retropie/configs/daphne/dapinput.ini
66 | cp configs/InputAutoCfg.ini /opt/retropie/configs/n64/InputAutoCfg.ini
67 | pushd /opt/retropie/configs/n64 && (sed 's/Joy Mapping Stop =.*/Joy Mapping Stop = "J0B8\/B9"/g;s/Joy Mapping Save State =.*/Joy Mapping Save State = "J0B8\/B5"/g;s/Joy Mapping Load State =.*/Joy Mapping Load State = "J0B8\/B4"/g' mupen64plus.cfg.rp-dist > mupen64plus.cfg); popd
68 | echo " ...Done."
69 | break;;
70 | "${options[1]}")
71 | echo "OK, skipping controller config files install."
72 | break;;
73 | esac
74 | done
75 |
76 | # Install the service to light up the wiimote lights correctly
77 | echo -n "Installing the Wiimote Lights Service..."
78 | sudo cp wii-controller.service /etc/systemd/system/
79 | sudo systemctl enable wii-controller.service
80 | sudo systemctl start wii-controller.service
81 | echo " ...All Done."
82 | echo "Have Fun !"
83 |
--------------------------------------------------------------------------------