эмулятор джойстика

Discussion in 'Hardware and Software' started by Ivan_004, Oct 30, 2002.

  1. vopros

    vopros Member

    Joined:
    Oct 23, 2005
    Messages:
    15
    -exec- - да если меееееееедленно подумать то понять ^это^ можно :), но я о том что в игре думать некогда и соответственно настолько усложнённое управление, ^которое предлагалось^ врядли кто то будет использовать (имхо естественно).
    Помоему гораздо проще а значит и эффективнее!! ориентируясь по мышиному (не виртуальному, а тот который видно) курсору управлять осями, при этом я всегда знаю что будет с тем же самолетом, когда я отпущу или нажму "переключающую" кнопку.

    Оружие должно быть простое и надёжное, как АК или jmouse :)

    Другое дело, еслиб текущее положние осей каким то образом выводилось на монитор, тогда предложенный вариант был бы сам собой разумеющийся...

    p.s. а вот ещё не понятно, почему что то вроде jmouse до сих пор никто из производителей не додумался встроить в движок самих игр :rolleyes:
     
  2. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    ты думаешь недостаточно медленно, потому, что ты пропустил, как я сказал, что джой с мышью нужно раз и навсегда свести специально и это отдельный процесс, описанный ранее.

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

    к слову, у меня тут своя проблема возникла.
    ___________________________________________________

    у меня лаптоп HP/Compaq NC6120, Win 2003 Server Enterprise SP1.
    чувствую, что микрософт с чистой совестью на PCI bus отдал I/O Range=0000-0CF7 (внутри которого мой любимый диапазон 0201-0201 для джойстиков), так как это сервер.

    в общем, Standard Gameport не может работать, так как его обычный диапазон занят, а вставить его в свободный диапазон не позволяет панель управления.

    мне нужна версия, которая работает без Standard Gameport.
    до этого момента мне летать невозможно никак.
     
    Last edited: Dec 1, 2005
  3. Motor Heat

    Motor Heat Member

    Joined:
    Nov 28, 2005
    Messages:
    8
    У меня дома тоже стоит Win2003 Server Enterprise, про SP не помню (я сейчас на работе посмотреть не могу), правда не на Laptop'е. С гейм-портом все нормально, все проставилось. Скорее всего проблема не в Win2k3

    Примерно то же самое, что ты описываешь происходило на машине с WinXP где на матери вообще не было гейм-порта (по крайней мере в паспорте про него ничего нет, а разбирать машину было лень). Так вот при установке драйвера для гейм-порта винда начинала ругаться на конфликты, в результате после перезагрузки в DeviceManager драйвер для гейм порта был отключен с кодом ошибки 10. И поменять ресурсы то же было нельзя.
    Досконально не помню как, но драйвер для гейм-порта я там все-таки поставил. Когда при установке он начинает ругаться на конфликты (именно при установке, до перезагрузки), где-то можно было ему указать используемый IRQ, появляется такое же окошко как в DeviceManager, только ничего нельзя редактировать пока не снимешь галку "Use default settings" или "Use automatic settings" или что-то в этом роде. Если ее снять и указать свой диапазон, то все работает.

    Если сильно надо, могу сегодня вечером еще раз посмотреть, завтра утром написать точнее.
     
    Last edited: Dec 1, 2005
  4. Motor Heat

    Motor Heat Member

    Joined:
    Nov 28, 2005
    Messages:
    8
    Не понял как можно ориентироваться по мышиному курсору? Его положение и положение осей джойстикак никак не связаны. Единственная связь между ними - это синхронное изменение положения, да и то не всегда. Когда курсор мыши доходит до края экрана, он останавливается, а положение оси еще может продолжать изменяться, об этом раньше писалось.
    К тому же курсор мыши не видно почти во всех играх. И на мой взгляд не должно быть видно - теряется реализм, и только мешает.
    Знать-то легко, просто то положение в которое самолет перейдет при имеющемся способе переключения осей не всегда соответсвует требованиям обстановки. Поэтому приходится сразу после переключения резко корректировать положение второй оси.
    Пример - это горизонтальное скольжение (когда руль направления повернут в лево, а элероны в право). При этом ось для элеронов (ось X1 в mouseJoy) переключается в ось для руля направления (ось Y2 в mouseJoy). Во время скольжения необходимо поочередно корректировать положение обоих осей. При текущем способе переключения ничего не выйдет. Так вот я предлагаю способ, который позволит независимо корректировать две оси: с которой происходит переключение и на которую происходит переключение. К тому же имеющийся метод переключения отменять совсем не нужно, просто добавить еще один.
    На мой взгляд выводить на экран текущее положение осей нет смысла, потому что:
    1. Это очень трудно реализовать, т.к. драйвер должен будет учитывать способ отображения: GDI, DirectX, OpenGL или еще какой нибудь специфичный, используемый игрой. Под каждую игру подстроиться все-равно не получиться, отсюда потеря универсальности, надежности, скорости работы, размера занимаемой памяти со всеми вытекающими последствиями.
    2. Очень трудно найти подходящее место на экране, в котором должны отображаться положеня осей, так что бы это не мешало процессу игры (мы говорим о любой игре, потенциально использующей джойстик).
    3. Даже если положения осей будут отображаться на экране, то игрок будет смотреть на них а не на то что происходит с ним в игре. Отсюда потеря реалистичности и времени на реакцию.

    В голове надо держать положения осей :)
     
    Last edited: Dec 1, 2005
  5. Motor Heat

    Motor Heat Member

    Joined:
    Nov 28, 2005
    Messages:
    8
    Есть вот такая идея.
    Берем mouseJoy и оптическую мышку. Вынимаем из последней оптический елемент в сборе и перепаиваем его на длинном проводе. Далее берем старый джойстик (или делаем сами рукоятку на двух осях, в инете много инфы на эту тему). Вместо рзисторов, ставим изъятый из мышки элемент со стороны противоположной рукоятке. Под него ставим полусферу, радиусом равным длине от пересечения физических осей джойстика, до конца оптического элемента мышки + еще какое-то расстояние (2-3мм). Полусферу можно выточить из пенопласта, или сделать папьемаше, в качестве формы взяв лампочку по-больше.

    Короче вместо резюков использовать элемент оптической мышки, т.к. он обладает максимальной разрешающей способностью и точностью позиционирования.

    Сам пока все это не проделывал - нет ненужной исправной оптической мышки.
    Хочется услышать мнение общественности по этому поводу.
     
  6. -tyt--

    -tyt-- Well-Known Member

    Joined:
    Feb 5, 2002
    Messages:
    7,615
    Location:
    Ukraine. Kiev
    Классная идея!
    Обязательно делай и расскажи что вышло.
    НЯЗ мелкомягкий оптоджой выполнен по похожему принципу.
     
  7. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    общественность это обсуждала много раз здесь, и особенно много на бухом форуме.
    принцип "оптика на расстоянии" даёт не совсем линейную зависимость позиции джоя от позиции рукоятки. строго говоря, это обратная квадратичная зависимость. хотя, при хорошей механике, точность получается неплохая. хотя для этого лучше иметь порядочную дистанцию, там где график похож на прямую. ;)
     
  8. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    сделай милость, добр человек.
     
  9. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    повторяю принцип -echo-:
    из битого цифрового фотика достаётся матрица, кладётся под рукоятку, внутри которой лазерная указка, пишутся дрова и вуаля - точность ваще запредельная ;)
     
  10. vopros

    vopros Member

    Joined:
    Oct 23, 2005
    Messages:
    15
    ну это смотрякак настроить... :rolleyes: у меня настроено так, что оси и курсор мыши связаны намертво! а сам курсор в Иле слава богу включается командой mouseUse=1
    вот в других играх боюсь такой номер не пройдёт :rolleyes: поэтому и выступаю за приделывание к jmouse какого нибудь своего курсора!!!! на будущее так сказать.... :)
     
  11. Motor Heat

    Motor Heat Member

    Joined:
    Nov 28, 2005
    Messages:
    8
    Значит есть два способа.
    1. Если в DeviceManager присутсвует "Standart Game Port" с сообщением "Не удается определить параметры для этого устройства... код 34...". Идем на вкладку ресурсы, выбираем последний в списке вариант конфигурации, жмем изменить, пишем туда чего-нибудь (у меня 020F-020F и 0201-0201 - работали). Перегружаемся и все рабтает.

    2. При установке драйвера WinXP говорит, что не может определить параметры настройки для устройства, и т.п., но ниже есть кнопочка (в виде ссылки) (1.jpg - 4.jpg) Жмем ее и далее так же как в п.1, только редактировать можно вроде любую конфигурацию.
     

    Attached Files:

    • 1.jpg
      1.jpg
      File size:
      50.3 KB
      Views:
      364
    • 2.jpg
      2.jpg
      File size:
      25.6 KB
      Views:
      366
    • 3.jpg
      3.jpg
      File size:
      34.6 KB
      Views:
      349
    • 4.jpg
      4.jpg
      File size:
      35.7 KB
      Views:
      356
  12. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    пасиба.
    я тут лазил. но:
    1.PCI Bus занимает "0000-0CF7 (внутри которого мой любимый диапазон 0201-0201 для джойстиков)".
    2.настроить для геймпорта что-то кроме 0200-020F невозможно.
     
  13. ---hal

    ---hal Well-Known Member

    Joined:
    Jul 21, 2002
    Messages:
    882
    Location:
    Moscow
    >я тут лазил. но:
    >1.PCI Bus занимает "0000-0CF7 (внутри которого мой любимый диапазон >0201-0201 для джойстиков)".

    не помню на счет стандатров,но имхо было б странно,если было б наоборот .

    >2.настроить для геймпорта что-то кроме 0200-020F невозможно.

    винда ?
     
  14. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    2.винда!

    1.так он говорит, что геймпорт работать не будет, так как I/O Range 200-200 (или 201-201 и так далее до 20F-20F) конфликтует с устройством PCI Bus.
     
  15. Dima

    Dima Well-Known Member

    Joined:
    Aug 14, 2003
    Messages:
    948
    Location:
    Cheboksary
    Hal прав. Exec, у всех этот диапазон занимает PCI шина. Вот как это выглядит на моем буке.
     
    Last edited: Nov 1, 2008
  16. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    а как сделать так, чтобы конфликта не было и gameport работал нормально?
     
  17. Dima

    Dima Well-Known Member

    Joined:
    Aug 14, 2003
    Messages:
    948
    Location:
    Cheboksary
    Попробуй в bios отключить "pnp os" и поствить ядро без ACPI, тогда настройки должны быть разлочены.
     
  18. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    "поставить ядро без acpi" - это я не понимаю.
    я простой программер и моя работа работать на рабочих машинах. я никогда не разбирался в компьютерах, в том как их ставить, налаживать и чинить.

    мне не ясно что сделать, даже если настройки будут разлочены.

    можно подробно рассказать "какую кнопку нажать"?
     
  19. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    глянул на соседнюю персоналку. вы правы. там pci bridge занимает тоже 0000-0cf7.
    но там standard gameport на 0201-0207 конфликтов не имеет :dunno:
     
  20. Dima

    Dima Well-Known Member

    Joined:
    Aug 14, 2003
    Messages:
    948
    Location:
    Cheboksary
    Зайди в "диспетчер устройств" и включи "показать скрытые устройства", глянь не появилось чего нибуть странного, с восклицательными знаками.