| Разработка и ромхакинг > Ромхакинг и программирование |
| Заставить работать световые пистолеты на современных телевизорах |
| (1/5) > >> |
| Segaman:
За подробностями в видео: А если кратко: Картинка на кинескопных телевизорах поступает на экран без задержки и световой пистолет успевает усвоить необходимую для игры информацию на экране. Ну это в тот момент когда экран гаснет, а на экране высвечиваются белые квадраты, обозначающие цель. Так вот на современных устройствах, кадр отрисовывается на экран с задержкой, и именно этот фактор и стал первопричиной неработоспособности данной технологии. И меня посетила мысль. Если проблемы только в задержке, почему бы не сделать в игре поддержку автоматического определения длительности этой самой задержки. Я очень хотел бы заняться воплощением этой идеи в жизнь, но я к сожалению не знаю архитектуры 8 битных консолей от нинтендо. Поэтому я решил донести эту идею для всех тех, кто шарит в этой области и мог бы воплотить эту идею в жизнь. |
| Valet2:
Белый квадрат - это лишь некоторые игры. В более продвинутых отлавливается положение луча, и высчитывается точная координата на экране. |
| UnderCrops:
Тут говорят, если играть на плазме, то будет все ок. |
| SeregaZ:
у Кластера поинтересуйтесь :) https://vk.com/clusterm все знает, на вопросы отвечает. |
| supremacy:
тема старая, работать не будет http://forums.nesdev.com/viewtopic.php?f=9&t=13021 более точно процесс работы светового пистолета описан в этом видео, и там же предложен способ заставить его работать на телевизоре. https://www.youtube.com/watch?v=DzIPGpKo3Ag Задержка сигнала не основная проблема, есть ещё две, как минимум: 1) на современном телевизоре картинка не рисуется построчно, отчего теряется возможность определять координаты на экране. 2) световой пистолет вообще не реагирует на смену тёмного и светлого пятна на экране LCD (не хватает чувствительности фотоэлемента) |
| Arbars:
|
| kerlik:
А на PlayStation 1 как? |
| morskoyzmey:
Идея пропатчить ромы висит в воздухе уже лет 8, как только массово начали появляться LCD телики. Но чет никто не хотел за нее взяться. Недельку поковыряв туторы для чайников (рекомендую, кстати), подумал: "почему бы и нет? наверное это будет как нефиг делать". И начал изучать архитектуру реального проекта. Голый дизасм без рантайм анализа data/code (глупый, чё). Вручную разгребал таблицы переходов. По нескольку раз переосмысливал значение переменных и подпрограмм. Сначала я был очень наивный. Особого бэкграунда по хакингу нет. Только на уровне перегрузки стека со времен универа. Поплакал с того, что нельзя двигать код, из-за тех же таблиц переходов тут и там. Получил озарение, что оказывается часть кода в основном цикле выполняется, а часть в прерывании... :lol: Сперва думал, что достаточно будет добавить задержку в момент черного экрана до появления целей. Как же я ошибался. Потестив первый раз на железе (делал карик на заказ), я понял, что работы до ж...ы :) В итоге пришёл к такой схеме: И вот, месяц спустя, я получил рабочий карик. Пришлось заказывать программатор, чтобы не разориться на тестах. Как оно получилось: Автокалибровки пока нет. Попробую сделать. Есть идеи, вопросы? |
| kingserg:
Ай молодца.) Китайцы точно поставят на поток в соответствующем для них стиле.) Добавлено позже: А ром-то можно потестить?... Хотя... А как, интересно. Световой пистолет к компу не подключить просто так. Добавлено позже: Насчёт калибровки... Может, многоигровка, где разные версии под разную задержку? |
| neoborg:
morskoyzmey, интересно, кинь ром посмотреть На основе какого именно рома делал хак? |
| хемуль:
крутотень! ждемс рум :) |
| Guyver(X.B.M.):
Круто! Игр на пистолет не так много. В теории, можно их все переделать. Если это не очень сложно... |
| morskoyzmey:
--- Цитата: kingserg от 13 Сентябрь 2018, 05:55:01 ---Насчёт калибровки... Может, многоигровка, где разные версии под разную задержку? --- Конец цитаты --- Сейчас калибровка в главном меню, так что это лишнее. --- Цитата: Guyver(X.B.M.) от 13 Сентябрь 2018, 10:50:56 ---Игр на пистолет не так много. В теории, можно их все переделать. --- Конец цитаты --- В теории да :D --- Цитата: neoborg от 13 Сентябрь 2018, 06:34:51 ---На основе какого именно рома делал хак? --- Конец цитаты --- На основе Duck Hunt (JU) [!].nes --- Цитата: kingserg от 13 Сентябрь 2018, 05:55:01 ---Световой пистолет к компу не подключить просто так. --- Конец цитаты --- Без флеш картриджа или кастома не обойтись. Когда работоспособность подтвердят бета тестеры и будет окончательная версия калибровки, карик с этой игрой можно будет приобрести у небезызвестного Руслана. А пока просьба тем, кто хочет потестировать ROM, написать мне на мыло support[X]neslcdmod.ru. Китайцам пока рано давать :cool: Всем спасибо :) |
| supremacy:
--- Цитата: morskoyzmey от 13 Сентябрь 2018, 02:32:10 ---Есть идеи, вопросы? --- Конец цитаты --- Какая у тебя модель телевизора? |
| morskoyzmey:
--- Цитата: supremacy от 13 Сентябрь 2018, 12:52:13 ---Какая у тебя модель телевизора? --- Конец цитаты --- У меня LG Smart TV 42" (на webOS), точную модель сейчас не скажу. На видео тест сначала на нем (включен режим экрана Игры), затем на Samsung Smart TV примерно 28". На последнем задержку пришлось выставить на максимум. |
| supremacy:
Меня, прежде всего, интересует действительно ли это LCD или плазма или OLED. А если это удалось на LCD, то интересует заявленная производителем яркость для матрицы и тип её подсветки (EL, LED, CCFL). |
| morskoyzmey:
--- Цитата: supremacy от 13 Сентябрь 2018, 13:23:56 ---Меня, прежде всего, интересует действительно ли это LCD или плазма или OLED. А если это удалось на LCD, то интересует заявленная производителем яркость для матрицы и тип её подсветки (EL, LED, CCFL). --- Конец цитаты --- Понял. Уточню модели. UPD Модель LG 42LB679V Модель самсунга: UE32F5300AK UPDATE Добавил автокалибровку! Начальное значение задержки равно половине допустимого (=5). Для достаточно быстрых телевизоров, у которых есть режим "Игры", калибровка пройдет в сторону уменьшения задержки. Если запущено на эмуляторе или CRT, то задержка будет = 0 (на CRT правда не проверял). Если игра от выстрела не запускается, значит нужно вручную накрутить задержку и попробовать снова. Почему не сделать сразу большую задержку, чтобы автокалибровка сработала для любого телевизора? Во-первых, большая задержка раздражает :); во-вторых, для больших значений задержки, калибровка может излишне завышать задержку на 1. Лучше вручную найти наилучший вариант. Неточность связана с тем, что отсчет первого кадра не совпадает с началом цикла ожидания света. Видео не снял, потому что фактически ничего не изменилось. Кто хочет потестить ROM, пишите мне на почту support[X]neslcdmod.ru. Никому не откажу. |
| Guyver(X.B.M.):
Можно вместе с ромом приложить маленькую программку для редактирования этой задержки? Так каждый сможет сделать это сам для своего телевизора. К примеру, записывает версию на флешкарик, проверяет её, если мало/много, то добавляет/убавляет... |
| morskoyzmey:
--- Цитата: Guyver(X.B.M.) от 13 Сентябрь 2018, 22:38:38 ---Можно вместе с ромом приложить маленькую программку для редактирования этой задержки? Так каждый сможет сделать это сам для своего телевизора. К примеру, записывает версию на флешкарик, проверяет её, если мало/много, то добавляет/убавляет... --- Конец цитаты --- Проще несколько ромов сделать, наверное. Но вообще автокалибровка и сделана, чтобы все настраивалось автоматом. Так что хватит двух версий. Для быстрых телеков с delay=5 и для медленных телеков с delay=9. Да уж, сам сказал что калибровка не точна на больших задержках... В общем нужно больше тестов. UPD Замечу, что в худшем случае с delay=9 и выстрелом мимо двух уток/тарелок, общее время черного экрана и экрана с целями будет равно 30 кадрам! Это больше половины секунды для PAL :). С такой задержкой во время выстрела можно еще выбирать свою цель) |
| Bugrim:
А подобное можно провернуть для игр с Плейстейшен? А для 100 герцовых ЭЛТ? |
| Навигация |
| Главная страница сообщений |
| Следующая страница |