Записи в категории ‘Debian’ Подписаться на обновления в категории 'Debian'

Управление рабочим столом с помощью Wii Remote

Вчера я стал счастливым обладателем игровой видеоприставки Nintendo Wii. Так как при этом я являюсь счастливым обладателем компьютера с Debian GNU/Linux, то мне конечно же захотелось сделать так же, как на этом видео-ролике :)

Вот что для этого необходимо:

  • Wii Remote (сама приставка не нужна!)
  • Debian GNU/Linux 4.0 (другой дистрибутив тоже подойдёт, но инструкции я привожу именно для Debian)
  • Две свечки (это такие штуки из воска, которые создают романтическую атмосферу). Они нужны в качестве источника IR излучения.

Нужно установить некоторые пакеты:

sudo aptitude bluez-utils python-bluez python-xlib
  1. Скачать “драйвер” для Wii Remote отсюда (есть SVN-репозитарий – https://svn.forthewiin.org/wmd/trunk). На самом деле это никакой не драйвер, т.к. с ядром он не взаимодействует. Это просто Python скрипт для обработки сигналов с Wii Remote
  2. “Пропатчить” файл /usr/share/python-support/python-xlib/Xlib/protocol/display.py (из пакета python-xlib). В нём нужно заменить:
    recv = self.socket.recv(4096)

    на

    recv = self.socket.recv(2048)

    Возможно, этот шаг можно пропустить. Я не знаю точно, для чего это нужно :)

  3. Выполнить команды:

    sudo modprobe uinput
    sudo chmod a+rwx /dev/input/uinput

    Без этого кнопки на Wiimote не работали.

  4. Теперь нужно определить адрес вашего Wiimote. Нажимаем одновременно кнопки 1 и 2 на Wiimote, при этом он на 30 секунд переходит в режим discovery. Выполняем команду:

    andrey@cornelius:~$ hcitool scan
    Scanning ...
            00:19:1D:73:30:69       Nintendo RVL-CNT-01
    

    Среди найденных устройств должен появится и Wiimote. В моём случае его адрес 00:19:1D:73:30:69

  5. Прописываем этот адрес в wmd/Config.py (параметр MY_WIIMOTE_ADDR)
  6. В том же файле отключаем ненужные модули:
    'DISABLE_PYLAB': 1,
    'DISABLE_PYGAME': 1,
    'DISABLE_PYOSD': 1,
  7. Зажигаем свечки :) и ставим их перед монитором на расстоянии 20-25 см. друг от друга
  8. Нажимаем одновременно кнопки 1 и 2 и запускаем WMD.py
  9. Если повезёт так же как мне, то будет работать :)
  10. Хвастаемся перед друзьями

Удачи!

Играем в приставочные игры под Linux

Лет десять назад (а может и больше), я с друзьями почти каждый день ходил к одному нашему однокласснику, у которого была игровая приставка Super Nintendo. Мы проводили часы пытаясь освоить многочисленные варианты combo-ударов в лучшем файтинге всех времён (по версии Cornelius Magazine)Killer Instinct.

Оказывается, ощутить “инстинкт убийцы” можно и без помощи игровой консоли. Для этого нужно воспользоваться одной из приведённых ниже команд:

  • sudo ps -eo pid h | xargs kill -kill (не рекомендуется)
  • sudo aptitude install snes9x-x (рекомендуется)

Я воспользовался вторым вариантом и получил в своё распоряжение эмулятор игровой консоли Super Nintendo. Осталось только найти образ нужной игрушки (ROM). Для этого можно погуглить словом “rom”+название_игры. В случае с Killer Instinct нужный образ нашёлся очень быстро. Это оказался файл с расширением .smc размером ~4Mb.

Запускается игра так:

snes9x /path/to/rom

Gamepad

Чтобы полностью погрузится в приставочную атмосферу и я решил воспользовался USB Gamepad’ом фирмы Genius. Чтобы заставить его работать, я установил следущие пакеты:

sudo aptitude install joystick xserver-xorg-input-joystick

Теперь при подключении геймпада должно появиться устройство /dev/input/js0

Тут у меня возникла проблема: работали только кнопки, перемещение не работало. Поэтому я сделал следующее:

jscal /dev/input/js0

Эта программа попросила переместить джойстик в определённые положения по осям X/Y и таким образом откалибровала его (где при этом сохраняются настройки, я не понял). После этого перемещение заработало.

Чтобы играть с джойстиком, запускать игру нужно так:

snes9x -joydev1 /dev/input/js0 /path/to/rom

Второй джойстик можно подцепить через опцию -joydev2


Скриншот Killer Instinct

А вот и скриншот

← Обратно к настоящему