Jump to content
Korean Random

Recommended Posts

Сделал предзаказ на Steam Controller, оставил символическую предоплату, ориентировочно после 20-го января партия приедет в Украину и отправят мне, обойдется около 80$. Имхо дороговато, но буду надеяться что он того стоит.

 

Как раз я 15-го возвращаюсь на месяцок из Узбекистана на родину, будет время тестировать ;) Посмотрел сегодня видео/почитал отзывы, расстраивает только низковатое качество пластика, в остальном все не совсем однозначно. Из своего опыта могу сказать что спустя только минимум 100 часов игры можно говорить об удобстве и целесообразности использования.

Share this post


Link to post

Short link
Share on other sites

Сделал предзаказ на Steam Controller, оставил символическую предоплату, ориентировочно после 20-го января партия приедет в Украину и отправят мне, обойдется около 80$. Имхо дороговато, но буду надеяться что он того стоит.

 

Как раз я 15-го возвращаюсь на месяцок из Узбекистана на родину, будет время тестировать ;) Посмотрел сегодня видео/почитал отзывы, расстраивает только низковатое качество пластика, в остальном все не совсем однозначно. Из своего опыта могу сказать что спустя только минимум 100 часов игры можно говорить об удобстве и целесообразности использования.

Круто :)

 

Напишете авторский обзор и свои впечатления от девайса? Было бы интересно почитать.

Share this post


Link to post

Short link
Share on other sites

Напишете авторский обзор и свои впечатления от девайса? Было бы интересно почитать.

Обязательно напишу. Вот заберу его с собой потом в пустыню - времени будет много :)

 

Мне как-то даже не понятно - была настолько большая шумиха вокруг онного девайса, теперь же затишье в тырнете по нему. Буквально 10-20 видео на youtube и столько же текстовых обзоров на разных языках. 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Прикольное видео, кто играл в Portal поймут меня ;)

Edited by kharlashkin
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Вспомнил, что жёсткий диск с установленной SteamOS так и стоит в компьютере. Нужно будет загрузиться и проверить что там поменялось, установить wine, танчики и погамать☺

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Вспомнил, что жёсткий диск с установленной SteamOS так и стоит в компьютере. Нужно будет загрузиться и проверить что там поменялось, установить wine, танчики и погамать☺

Вчера загрузился в SteamOS подождал пока поставились все обновления последние - контроллер определился без проблем, ушла проблема с русским языком.

Так как было поздновато решил не начинать заморачиваться пока с установкой локально WoT, попробовал стриминг с ноутбука. Итак стендом выступили - мой локальный ПК со SteamOS подключенный к 32" ТВ, гигабитная сеть (медная с правильными патч-кордами, модулями и прочем) c маршрутизатором Asus RT-N16, ноутбук с Windows 10 и Steam Controller. Разрешение трансляции выставлено было и в настройках и в игре 1280х720, дополнительно была выведена дополнительная служебная информация из Steam. Правда, забыл еще сеть промониторить на нагрузку - может буду ещё поробовать.

 

Вывод очень неутешительный - встроенный счетчик Steam показывал что разрешение 1280х720, fps в среднем около 30 с просадками до 20-22, но качество такое - как будто смотришь ютьюб в разрешении 360-480p в полноэкранном режиме на FullHD. Cам танковый клиента показывал 35-40 fps, модов никаких установлено не было.

 

Что порадовало - настройки для контроллера автоматом прицепились для этой игры, т.е. игра на контроллере ничем не отличалась от локальной. Интересно Steam Link гонит такое же качество по сети? Нужно обзоры тесты поискать...

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Итак, со стим контроллером играется оочень даже после появления вибры. Вспомнились мои рысканья относительно прилепить виброотдачу к Ubuntu, если получиться буду уходить на домашней системе под неё :) (@Azbuka, привет тебе, провидец).

Накопал код linux_ioctl.py для chromiumos, сегодня поздно а вот завтра попробую совместить с этим.

# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Description:
#
# Python version of include/asm-generic/ioctl.h
import struct
# ioctl command encoding: 32 bits total, command in lower 16 bits,
# size of the parameter structure in the lower 14 bits of the
# upper 16 bits.
# Encoding the size of the parameter structure in the ioctl request
# is useful for catching programs compiled with old versions
# and to avoid overwriting user space outside the user buffer area.
# The highest 2 bits are reserved for indicating the ``access mode''.
# NOTE: This limits the max parameter size to 16kB -1 !
_IOC_NRBITS    = 8
_IOC_TYPEBITS  = 8
_IOC_SIZEBITS  = 14
_IOC_DIRBITS   = 2
_IOC_NRMASK    = ((1 << _IOC_NRBITS) - 1)
_IOC_TYPEMASK  = ((1 << _IOC_TYPEBITS) - 1)
_IOC_SIZEMASK  = ((1 << _IOC_SIZEBITS) - 1)
_IOC_DIRMASK   = ((1 << _IOC_DIRBITS) - 1)
_IOC_NRSHIFT   = 0
_IOC_TYPESHIFT = (_IOC_NRSHIFT + _IOC_NRBITS)
_IOC_SIZESHIFT = (_IOC_TYPESHIFT + _IOC_TYPEBITS)
_IOC_DIRSHIFT  = (_IOC_SIZESHIFT + _IOC_SIZEBITS)
IOC_NONE      = 0
IOC_WRITE     = 1
IOC_READ      = 2
# Return the byte size of a python struct format string
def sizeof(t):
    return struct.calcsize(t)
def IOC(d, t, nr, size):
    return ((d << _IOC_DIRSHIFT) | (ord(t) << _IOC_TYPESHIFT) |
            (nr << _IOC_NRSHIFT) | (size << _IOC_SIZESHIFT))
# used to create numbers
def IO(t, nr, t_format):
    return IOC(IOC_NONE, t, nr, 0)
def IOW(t, nr, t_format):
    return IOC(IOC_WRITE, t, nr, sizeof(t_format))
def IOR(t, nr, t_format):
    return IOC(IOC_READ, t, nr, sizeof(t_format))
def IOWR(t, nr, t_format):
    return IOC(IOC_READ|_IOC_WRITE, t, nr, sizeof(t_format))
# used to decode ioctl numbers..
def IOC_DIR(nr):
    return ((nr >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
def IOC_TYPE(nr):
    return ((nr >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
def IOC_NR(nr):
    return ((nr >> _IOC_NRSHIFT) & _IOC_NRMASK)
def IOC_SIZE(nr):
    return ((nr >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
# ...and for the drivers/sound files...
IOC_IN          = (IOC_WRITE << _IOC_DIRSHIFT)
IOC_OUT         = (IOC_READ << _IOC_DIRSHIFT)
IOC_INOUT       = ((IOC_WRITE | IOC_READ) << _IOC_DIRSHIFT)
IOCSIZE_MASK    = (_IOC_SIZEMASK << _IOC_SIZESHIFT)
IOCSIZE_SHIFT   = (_IOC_SIZESHIFT) 

 

P.S. Есть конечно написать свою библиотеку на C под linux, чтобы под x64 завелась вибрация из python - но без вменяемого манюала вряд ли что-то получиться. Пока хоть бы через Flask завелась...

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites
привет тебе, провидец

Это статистика и личный опыт. Никаких угадываний или обращения к тёмным силам.

 

 

 

написать свою библиотеку на C под linux, чтобы под x64 завелась вибрация из python - но без вменяемого манюала вряд ли что-то получиться.

На x64 не работает вибрация через /dev/input/rumble?

Edited by Azbuka
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

На x64 не работает вибрация через /dev/input/rumble?

Вот этим методом из Python удалось вызвать только под x86 вибрации и то с некоторыми оговорками.

Это статистика и личный опыт. Никаких угадываний или обращения к тёмным силам.

Я в начале статьи упоминал, что с linux дружу достаточно давно, но как то наверное не появлялось своих проектов связанных с IT, вот и использовал её только как готовую площадку для специальных решений. Для десктопа никогда не думал её использовать, такие мысли появились сравнительно недавно.

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites

Нашел в интернетах, немного другой код, который сделан по аналогии вышеупомянутым:

    fcntl.ioctl(self.rumble_fd, 0x40304580, self.rumble_effect_array, True)
    # EVIOCSFF -> _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect))
    # NOTE: EVIOCSFF is different from original gitorous code (0x402c4580)
    # - (_IOC_WRITE | ((sizeof(struct ff_effect) & IOCPARM_MASK) << 16) | (('E') << 8) | (0x80))
    # - _IOC_WRITE == 1U or 4U (different linux headers define this differently)
    # - 'E' in hex: 0x45
    # - IOCPARM_MASK = 0x1FFF

Вставив данное значение EVIOCSFF в свой скрипт, геймпад (Xbox 360) завибрировал без ошибок под Ubuntu 15.10 x64, при чем даже без пропуска первой вибрации :)


Так, а как понять на какой /dev/input/event подключился геймпад (в моем беспроводном случае показывает аж 4, но через python-evdev), чего-то гугль пока не привел никуда.


Я завел вибрацию на Ubuntu в танках через Flask, доволен как слон ;) Сейчас буду со Steam Controller проверять :)


Все накрылось "медным тазом":

Traceback (most recent call last):
  File "gpService.py", line 207, in <module>
    gpXInputObject.stop_vibration()
  File "/home/kharlashkin/Dev/tanks/haptic/wot_ubuntu_flask/gpXInput.py", line 95, in stop_vibration
    p = f.new_effect(0.0, 0.0, 0.0)
  File "/home/kharlashkin/Dev/tanks/haptic/wot_ubuntu_flask/gpXInput.py", line 19, in new_effect
    fcntl.ioctl(self.ff_joy, EVIOCSFF, a, True)
IOError: [Errno 38] Function not implemented

Самое интересное, что python-evdev распознал его как бы правильно...

Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import evdev
>>> devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
>>> for device in devices:
...     print(device.fn, device.name, device.phys)
... 
('/dev/input/event11', 'Microsoft X-Box 360 pad', '')
>>> 

Попробовал дополнительно fftest:

fftest /dev/input/event11
Force feedback test program.
HOLD FIRMLY YOUR WHEEL OR JOYSTICK TO PREVENT DAMAGES

Device /dev/input/event11 opened
Features:
  * Absolute axes: X, Y, Z, RX, RY, RZ, Hat 0 X, Hat 0 Y, 
    [3F 00 03 00 00 00 00 00 ]
  * Relative axes: 
    [00 00 ]
  * Force feedback effects types: 
    Force feedback periodic effects: 
    [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
  * Number of simultaneous effects: 0

Uploading effect #0 (Periodic sinusoidal) ... Error:: Function not implemented
Uploading effect #1 (Constant) ... Error: Function not implemented
Uploading effect #2 (Spring) ... Error: Function not implemented
Uploading effect #3 (Damper) ... Error: Function not implemented
Uploading effect #4 (Strong rumble, with heavy motor) ... Error: Function not implemented
Uploading effect #5 (Weak rumble, with light motor) ... Error: Function not implemented
Enter effect number, -1 to exit

И проверил его jstest:

$ jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (Microsoft X-Box 360 pad) has 8 axes (X, Y, Z, Rx, Ry, Rz, Hat0X, Hat0Y)
and 11 buttons (BtnX, BtnY, BtnTL, BtnTR, BtnTR2, BtnSelect, BtnThumbL, BtnThumbR, ?, ?, ?).
Testing ... (interrupt to exit)

В общем что придется делать - ждать когда допилят до вменяемого состояния драйвера и прочее...


Исходный код мода вибрации если кому нужен выложу, у меня были наработки для эмулятора Xbox для Linux, может пока эти вариантом займусь - расстроен я :(


Есть проект альтернативного драйвера Steam Controller для Linux, может в ту сторону покопать - ХЗ. Буду завтра пробовать - "утро вечера медренее".

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites

Подумалось, а нафига я мучаю себе мозг всей этой фигней - людей которые пользуются моими наработками на пальцах двух рук пересчитать можно (а может и одной руки хватит). Получается уже более 2,5 лет страдаю каким-то сумасшествием, денег портатил на всякие девайсы достаточно. Даже в python начал соображать. Нужно оно кому вообще?

Share this post


Link to post

Short link
Share on other sites

 

 

Нужно оно кому вообще?
творческий кризис, понимаю)
ты всё равно будешь это делать и есть только два пути: делиться или нет.)
если нет признания общественности, то это не значит, что твой труд бесполезен.. 
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

то это не значит, что твой труд бесполезен..

А что тогда это значит?

Я не понимаю смысла вибрации. Я вообще не играю в эту игру, т.к. в ней нет смысла)

Share this post


Link to post

Short link
Share on other sites

творческий кризис, понимаю)

ты всё равно будешь это делать и есть только два пути: делиться или нет.)

если нет признания общественности, то это не значит, что твой труд бесполезен.. 

ХЗ - может быть, может быть. Периодически ловлю у себя подобное настроение, проходит вот после подобных Вашему ответу. Думаю не лишним будет сказать "Спасибо!".

Share this post


Link to post

Short link
Share on other sites

А что тогда это значит?

Я не понимаю смысла вибрации. Я вообще не играю в эту игру, т.к. в ней нет смысла)

ты пессимист?) человек старается в первую очередь для себя, но будет рад, если это ещё кто то оценит...

а ты всё в воду..

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Я не понимаю смысла вибрации. Я вообще не играю в эту игру, т.к. в ней нет смысла)

А Вы во что-нибудь играете?

 

В том то и прикол, по моему мнению, что кроме акрадной составляющей после пары лет уже ничего в ней и не привлекает, если имеется WoT конечно ввиду.

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites

А Вы во что-нибудь играете?

Конечно, но редко.

ты пессимист?)

ни единожды не пессимист

а ты всё в воду..

я?) Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Конечно, но редко.

Содержательно ;) Может я Вам глаза и не открою, но когда нибудь Вам надоест корячиться за столом и захочется развалиться на диване, и сыграть неважно даже в какую игру. Вы будете удивлены количеством игровых контроллеров с поддержкой вибрации и насколько это интереснее и атмосфернее, чем за столом с клаво-мышей. Даже такая вроде мелочь как Wiimote её поддерживает.

Share this post


Link to post

Short link
Share on other sites

 

 

я?)
:) 

 

не понимаю смысла ... в эту игру, ... нет смысла)
это отдушина, реальность иногда напрягает) 
в реальности нет смысла, вернее смысл чётко предопределен, нет места для фантазий, но это другая тема.)

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...