ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 16 окт 2018, 06:16

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
СообщениеДобавлено: 14 ноя 2016, 12:52 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
[quote="MARAT_BEST"].... ждем спецификацию нового формата .

Формат прост, как двери. Но хочу сначала переговорить с Целиковым, может он согласится добавить его в "Башкирию" и будет иметь замечания.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 дек 2017, 18:52 
Не в сети

Зарегистрирован: 18 май 2016, 19:55
Сообщений: 28
[quote="Zelya"]Формат прост, как двери. Но хочу сначала переговорить с Целиковым, может он согласится добавить его в "Башкирию" и будет иметь замечания.

А что за формат такой ?
Если есть ЧЁТКОЕ описание я бы тоже добавил в свой эмуль. Описание можно посмотреть ?

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 дек 2017, 19:56 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Формат очень прост. Начало - это понлноценный образ SAV. Эмуялтор грузит его, как обычно, но при этом нужно установить некий внутренний счетчик тиков эмуляции в ноль. После SAV'а дописывается массив всех изменений управляющих устройств.
Каждый элемент состоит из 16 байт. Первые 8 - это long значение тиков процессора, от начала записи. Эмулятор должен сверять это занчение со своим счетсиком.
Следующий байт - тип устройства ввода.
Пока, используется только: 1 - клавиатура и 255 - конец записи.
Остальные 7 байт кодируют, что, собственно изменилось. Для клаваитуры используется только два байта. Первый - номер полуряда клавиатуры (0-7 - основная клава, 8-11 - расширенная). Второй - его состояние (8 бит, на каждую клавишу). Соответсвтенно, отслеживаются все изменения, как нажатие клавиши, так и ее отпускание.

Вот и все. Эмуль, как только счетчик дойдет но нужной метки, изменяет состояние порта клваиатуры. Когда доходит до 255, то либо остановка, либо перезагрузка (как вариант, можно предложить игроку продолжить игру).


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 дек 2017, 20:49 
Не в сети

Зарегистрирован: 18 май 2016, 19:55
Сообщений: 28
Я по моему думал когда-то о таком (или о подобном), но это всё слишком сложно и заморочливо! Ты представляешь как это всё реализовать то ?!... начиная с того, что надо записывать "скрипт" (назовём его "скрипт"), потом останавливать и сохранять, далее при загрузке твоего формата в какой-то эмуль блокировать клавиатуру, блокировать еще что-то например "крутилку скорости", если она есть (изменение частоты) и т.д. далее счётчики тактов как-то чтобы были согласованы у всех эмулятором (ведь они плюсуют не +1, а +4, +7 и т.д. согласно тактам команды КР580) ну пусть даже и обнуляются с начала... но всё равно.... не нравится мне это всё... и скорее всего хрен это будет реализовано в реале!
И ради чего это всё?! Чтобы демонстрация была ?

Я вот, что хочу предложить, тем более что когда-то делал пробы. Пойти по принципу, создать и утвердить формат "Видео-ПК-01", т.е каждый кадр состоит из 16483 байтов и значение порта "видео" (порт с2 насколько я помню) частота и т.д., каждый следующий кадр ксорится с предыдущим, как правило будет "много нулей" которые легко кодируються в "флаг нулей и колво нулей" (2-4 байта) и так далее. Формат видео будет получатся достаточно экономный, во всяком случае по сравнению с АВИ, МП4 и т.д. и вот этот формат можно дописывать в игрушку как видео демонстрацию. Далее при открытии формата и обнаружении видео, активируется кнопка "демо" или предлагает пользователю "смотреть демо или играть" как-то так. Но для начала надо утвердить форматы "кадр-пк-01" и "видео-пк-01" и т.д. да и вообще будут ли желающие этим заниматься ? т.е реализовавать свои эмули чтобы была такая возможность и единый "видео-пк-01" стандарт, вот в чём вопрос.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 дек 2017, 21:16 
Не в сети

Зарегистрирован: 18 май 2016, 19:55
Сообщений: 28
Знаешь, если ты всё таки убеждён в правильности своего решения. То почему бы не реализовывать его проще без всяких там счётчиков тактов и сравнения их...
Когда пишешь "скрипт" (демо):
1.точка отсчёта какая-то чёткая по адресу и состояним портов и регистров
2. сохраняешь начальное значение портов
ПРИ ОБРАЩЕНИИ К КАКОМУ-ТО ПОРТУ, ТОТ ПОРТ (его значение) И СОХРАНЯЕШЬ в "базу измениний портов"!

в режиме "воспроизведения" -
ПРИ ОБРАЩЕНИИ К КАКОМУ-ТО ПОРТУ, ТОТ ПОРТ (его значение) "ПОДСОВЫВАЕШЬ "ТО ЧТО НУЖНО из "базы измениний портов"!

Естественно всё что изменяет порты (клавиатура) должно быть "блокировано"! Они должны быть полностью подконтрольны ТОЛЬКО "скрипту".
Проще выражаясь это всё тупо перехват нужного порта в момент обращения к нему и подсовывание его в момент обращения при воспроизведении! Ну должно как часики работать!Пробовать надо это всё.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 дек 2017, 21:24 
Не в сети

Зарегистрирован: 18 май 2016, 19:55
Сообщений: 28
вот еще раз перечитал...
[quote="Zelya"]Соответсвтенно, отслеживаются все изменения, как нажатие клавиши, так и ее отпускание.

ну это лишнее. Не факт что когда работает программа она "запрашивает" нажатия и отжатия т.е. что в это время в программе будут IN и OUT. А вот когда она "лезет" к "IN" и "OUT" - вот это и нужно перехватывать и подсовывать! Больше ведь ничего кроме "IN" и "OUT" не влияет на ход выполнения программы ?! "Ветки" (переходы) выполнения программ (игрушек) меняет ведь только "IN" и "OUT" от которых зависит всё ? так ведь ?

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 дек 2017, 13:53 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
[quote]ПРИ ОБРАЩЕНИИ К КАКОМУ-ТО ПОРТУ, ТОТ ПОРТ (его значение) И СОХРАНЯЕШЬ в "базу измениний портов"!

Игры обращаются к порту сотни и тысячи раз в секунду. Это не вариант.

[quote]ну это лишнее. Не факт что когда работает программа она "запрашивает" нажатия и отжатия т.е. что в это время в программе будут IN и OUT.
Программа запрашивает состяние, а дальше уже определяет что нажато и что делать. Без отжатия кнопка будет "залипшей".

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 дек 2017, 14:14 
Не в сети

Зарегистрирован: 18 май 2016, 19:55
Сообщений: 28
[quote="Zelya"]Игры обращаются к порту сотни и тысячи раз в секунду. Это не вариант.

номер порта/ значение/ кол-во обращений к порту до изменения его значения
$C0/ 34/ 4`200`000`000 // занимает 1+1+4 байта!
Ну если мало 4`200`000`000 обращений
далее еще такую же строку пишешь
$C0/ 34/ 4`200`000`000 //
после 4`200`000`000 обращений читает строку с изменённым значением
$C0/ 44/ 2`233`764`432 // и опять "держит" на порте значение 44 аж 2`233`764`432 раз обращения к порту!
Вдумайся внимательно! Просто это всё надо очень хорошенько продумать - как вести базу изменений портов !
а если еще дополнить "лёгкое сжатие" подобное в моём формате SasLVE2 - то всё вообще будет супер!

Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3, 4

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


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

Найти:
Free counters!
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB