Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: Проигрыватель прохождения записей игр на реальной Dendy

  1. #1
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,933
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    115 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проигрыватель прохождения записей игр на реальной Dendy

    Во многих эмуляторах есть возможность записывать и, впоследствии проигрывать, прохождения игр. Суть сего действа проста - в файл пишутся все нажатия на кнопки в каждый момент времени. Это не видео-файл, для его "воспроизведения" требуется сначала загрузить образ игры, а потом эмулятор просто повторяет нажатия на кнопки джойстика, тем самым повторяя действия игрока. Такие файлы, как правило, имеют небольшой размер.

    Пошло еще со времен, когда всяких ютюбов еще не было, а посмотреть прохождение той или иной игры было интересно. И вот я подумал сделать проигрыватель данных файлов в реальный NES, пускай чертова железяка работает

    Немного загуглив, я узнал, что идея мне не первому в голову пришла. Например, есть некий PC NES transfer cable v1.30 by sepi. Представляет из себя кабель LPT->джойстик с парой микросхем логики, позволяет вроде проигрывать файлы от Nestopia и играть просто с клавиатуры компа. Минусы: а) LPT б) софт под MS-DOS в) сорцов софта нет.

    Поэтому гуглим дальше техническую сторону вопроса:
    Во первых форматов много, но есть софтина, позволяющая конвертировать из одного формата в другой. Зовется nesmock . GPL, сорцы доступны. Пригодится в будущем.

    Дальше самый имхо простой формат fm2 от эмулятора FCEUX Представляет по сути текстовый файл (хотя может быть и бинарным), где по-фреймово записываются нажатые кнопки. Например,
    Код:
    |0|R.....B.|........||
    |0|R.....BA|........||
    Первый фрейм - нажаты Right и кнопка B. Второй фрейм - нажаты Right, B, A. и тд. Вроде просто все.

    Аппаратно - маленький PIC с прикрученной SD-картой, торчащий в разъеме джойстика. Так мне видится...

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Но как синхронизировать фреймы? Скажем, при записи START был нажат в 982й фрейм от рождества Христова от сброса. Как нажать его в тот же 982й при воспроизведении? Одним эмулятора джойстика не обойтись, как мне кажется.
    А попасть нужно именно точно, иначе могут поплыть всякие привязанные ко времени вещи, самое неприятное - генераторы псевдослучайных чисел.

    На ZX не зря внутри RZX-файла хранится снапшот самой игры, сделанный в момент начала записи, чтобы исключить все возможные рассинхроны.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  4. #3
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,933
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    115 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Но как синхронизировать фреймы? Скажем, при записи START был нажат в 982й фрейм от рождества Христова от сброса. Как нажать его в тот же 982й при воспроизведении?
    Ну во-первых, на разъеме джойстика есть питание +5V, таким образом включать девайсину можно одновременно с включением дендика. Дальше, запускается игра с катриджа, показывает заставку, где потом нужно, как правило, нажать СТАРТ. До этого никакие кнопки на гейпаде не нажимаются, и в файле-записи идут пустые фреймы. Пускай СТАРТ будет нажат немного позже, чем он был нажат игроком записывающем прохождение, ну допустим на 2-3 секунды. Но когда он (старт) будет нажат - от этого времени пойдет точный синхрон.

    Тут другое меня волнует - чтение с SD-карты небольших блоков (128 или 256 байт, допустим) будет жрать приличное время на простом контроллере. Как бы в это время не получилось простоя в выдачи очередного байта в NES. Хорошо было бы считать весь файл сразу в память, но тогда нужна внешняя память...

  5. #4
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    И вот я подумал сделать проигрыватель данных файлов в реальный NES, пускай чертова железяка работает
    Непросто это будет реализовать.

    1) В эмуляторах новая информация от джойстиков приходит один раз за фрейм в строго определенное время, а на реальной Денди - в произвольное время.

    2) В играх могут использоваться различные генераторы случайных чисел, зависящие в том числе от растактовки конкретного железа.

    3) Если эмулятор не 100% точен по тактам процессора и всей остальной периферии, то записанное на нем видео так же разьедется на реальном железе.

  6. #5
    Master Аватар для Ramiros
    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    954
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    71
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На джойстике есть еще сигнал "запись данных в регистр" и "клок/сдвиг", надо привязываться к этим двум сигналам, тогда будет синхронно работать. и лучше на контроллере еще и регистр сдвига сэмулировать, тогда можно вообще без джойстика обойтись.
    только учтите, что эти сигналы в приставке формируются програмно (обычно в момент прерывания), и могут менять как скважность, так и интервал.
    тут еще надо разобраться что в эмуляторах в качестве синхры используется (скорее всего тот же сигнал "записи данных в регистр".
    Здесь можно скачать актуальные версии Virtual Vector (VV)

  7. #6
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все эти проблемы уже обсуждались много раз. Нет никакой информации о сбросе. Нет никакой информации фазе PPU. Напомню, что из-за разницы в тактовых частотах, алигнмент CPU к PPU имеет 4 фазы. Нет никакой информации о фрейме (не все игры сканируют джой по VBlank'у). Самый точный вариант - это в гнезде картриджа, но никак не в гнезде джойстика.

  8. #7
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,933
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    115 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Но ведь latch и clock выдает сама денди, по нему и отдавать данные. Можно например с помощью аппаратного SPI Slave, как мне видится. Интервалы подогнать опытным путем.... Я думаю все-же попробовать, чего я теряю...
    Вот только с чтением с SD-карты не могу придумать, ведь будет тормозить в момент чтения блоков. Либо внешнюю память прикручивать, либо взять какой нить жирный NXP LCP1768 со встроенной SRAM дофига. Но это уже из пушки по воробьям.

  9. #8
    Veteran Аватар для vfiuchcikicshuusrch
    Регистрация
    01.07.2013
    Адрес
    г. Иваново
    Сообщений
    1,029
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Tronix, посмотри их осциллографом, поймешь почему они для этого не подходят)
    я буквально вчера смотрел. долго тупил (ну это у меня от природы).

  10. #9
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И latch и clock это программно генерируемые сигналы, являющиеся битами в портах $4016/$4017

  11. #10
    Master Аватар для Ramiros
    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    954
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    71
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В чем проблема? по Latch читаем новое значение из памяти/файла, по Clock выдаем дендику.
    Здесь можно скачать актуальные версии Virtual Vector (VV)

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Игры и их прохождения
    от Slider в разделе Игры
    Ответов: 4
    Последнее: 11.12.2013, 14:57
  2. с реальной касеты загрузить прогу в эмуль
    от LBishop1 в разделе Для начинающих
    Ответов: 7
    Последнее: 21.05.2011, 12:08
  3. Муз.Проигрыватель для Symbian 9.x
    от Darkman007 в разделе Музыка
    Ответов: 13
    Последнее: 19.09.2008, 21:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •