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

User Tag List

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 86

Тема: Эмулятор 'Etalon Korvet Emulator' - разработка

  1. #11
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ILoveSpeccy, конечно выкладывай. Лучше сразу на github или bitbucket, чтобы можно было форчить и бомбить тебя пулл реквестами
    Больше игр нет

  2. #12
    SaintTurnip
    Гость

    По умолчанию

    Сергей, а вы можете добавить эмуляцию звука дисководов?

  3. #13
    R.I.P.
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от eugeniusz Посмотреть сообщение
    Сергей, а вы можете добавить эмуляцию звука дисководов?
    ой, в теории можно, но я видел только один эмулятор "TRS-80" где такое было
    было забавно первые 10 минут, потом - отключалось.

    ---------- Post added at 17:59 ---------- Previous post was at 17:57 ----------

    Цитата Сообщение от ILoveSpeccy Посмотреть сообщение
    Собрал под виндусом 7 с аллегрой 4.4. Всё работает вроде, только звук на полсекунды запаздывает. И зумм вообще не юзабильный. Остальное вроде норм.
    Единственное исправление с моей стороны, в файле "gui.c" поменял
    Код:
    #include <korvet.h>
    на
    Код:
    #include "korvet.h"
    так как компайлер не мог хидер найти.

    ---------- Post added at 03:00 ---------- Previous post was at 02:53 ----------

    Кстати, мой эмуль корвета, родителем которого является эмулятор Сергея, работает с SDL. Вывод видео через OpenGL с правильным зумом на весь экран. Могу выложить исходники. Эмуль сырой, никаких оптимизаций так как целью было понять как и что устроено. Но клава, видео и звук работают. Могу выложить сырки если кому нужно.
    Можно инструкцию
    типа
    1. скачать mingw из ...
    2. скачать allegro из ...
    3. распаковать в
    взять make file ...

    и на SDL было бы очень полезно глянуть !

  4. #14
    Activist
    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    324
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все, я возвращаюсь к работе над эмулятором сети. Собственно, доделать оказалось не так уж и много, и посидев с утра пару часов в отладчике, я все доделал. Что я реализовал:

    1. Перешел от программного опроса потока (что так портило тебе FPS) к полностью асинхронному вводу данных, по сигналу от ОС. Теперь FPS в твоем любимом турборежиме при пассивной сети не снижается вообще. При активном обмене с сетью немного проседает, но это естественно для однопоточной задачи.

    2. Полностью реализовал поддержку псевдотерминалов. Теперь можно соединять эмулятор с железным корветом через компорт, а также другой копией эмулятора и моей сетевой программой KL через виртуальный терминал.

    3. Самое важное - сделал сохранение лог-файла сетевого обмена. Благодаря этому логу можно посмотреть, как и в каком порядке эмулятор обменивался данными с сетью.

    Теперь в эмуляторе без всяких сбоев работают сетевые программы типа STS, Postman итд. С сетевыми ОС несколько сложнее, тут обсудить надо, но вначале тебе самому стоит попробовать.

    Собственно, я готов внести свои изменения в твой исходный текст. Только вот вопрос - где этот исходный текст последней версии брать? Ты мне 2 варианта присылал, и в этой теме выложил ссылку на репозиторий. Может, у тебя в загашнике еще поновее что-то есть, чтобы мне мартышкиной работой больше не заниматься...

  5. #15
    R.I.P.
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Собственно, я готов внести свои изменения в твой исходный текст.
    Только репозиторий

  6. #16
    Activist
    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    324
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все, я закончил перенос своего кода в вариант эмулятора из репозитория. Пришлось понабивать шишек на ровном месте, но в коце концов все вроде заработало.

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

    _main.c - добавлен разбор конфига, ключей, а также стартовый код и опрос сети.
    serial.c - тут, собственно, всеь мой код и лежит.
    korvet.h - добавлены заголовки сетевых подпрограмм и общих переменных.
    korvet.cfg - добавлены параметры конфигурации сети.

    Теперь о важных изменениях.

    1. В конфиг-файл добавлена новая секция [lan], чтобы не путалось с остальными переменными. В секции пока только 3 параметра - ADDR, DEVICE и LOG, потом может быть еще добавим.

    2. Добавлены ключи командной строки:

    Код:
    -s - имя устройства последовательного порта для эмуляции локальной сети
     -n - адрес РМУ в сети (0 для РМП)
     -l - имя файла сетевого протокола, в случае "-l-" (параметр знак минуса) отказ от создания файла протокола
    Это позволяет запускать несколько копий эмулятора, РМУ и РМП, из одного места, не изменяя файл конфигурации.

    3. Сделан полностью асинхронный ввод-вывод, теперь в турборежиме при пассивной сети FPS держится около 3500. Если сетевое устройство в конфиге не описано, то вызов LAN_poll() вообще не занимает процессорного времени - сразу возвращает управление.

    4. Сделана полная поддержка псевдотерминалов для эмуляции последовательного порта. Теперь можно не только общаться с железным корветом, но и соединить 2 эмулятора между собой. Привожу пример такого запуска.

    Стартуем первый эмулятор.

    Код:
    ./kdbg -n0 -s/dev/ptmx -l server.log -a disk/unsort18.kdi -b disk/MIKRDOS3.KDI
    Последовательный порт /dev/ptmx открыт
    Подчиненный псевдотерминал - /dev/pts/2
    Открыт файл сетевого протокола server.log
    Адрес эмулятора в сети - 0
    Driver: ALSA
    Это у нас будет РМП. В качестве последовательного устройства указываем мультиплексор виртуальных терминалов /dev/ptmx. Будет сформирован лог server.log.
    При старте эмулятор указал, что сформирован подчиненный последовательный порт /dev/pts/2. Эта информация нам нужна для запуска второй копии эмулятора.

    Теперь стартуем второй эмулятор

    Код:
    ./kdbg -n2 -s/dev/pts/2 -l client.log
    Открыт файл сетевого протокола client.log
    Адрес эмулятора в сети - 2
    Driver: ALSA
    Это будет РМУ с адресом 2, сетевой лог сохраняется в client.log. В качестве последовательного порта указываем имя подчиненного виртуального терминала, выданное нам первой копией эмулятора.

    Все, сеть из 2 корветов готова. Можно начинать развлекаться. Я потестировал сеть в программах STS и YP - работает вроде без сбоев в обе стороны.

    Для разбора файлов сетевых логов я написал программку, но ее надо немного облагородить, мне ее стыдно выкладывать в первозданном виде. Как доведу до ума - выложу. А вообще формат лога описан в serial.c.

    Моя программа KL также может взаимодействовать с эмулятором по сети через порт подчиненного виртуального терминала. Но требуется некоторая ее доработка. После доработки выложу в соответствующей теме.

    А, и вот еще. Что это за оптимизацию -O7 ты там придумал? Вообще-то официально такой вообще не существует, а неофициально она эквивалентна -O3. Но даже -O3 использовать не рекомендуется - это экспериментальная оптимизация, можно нарваться на совершенно необъяснимые глюки. Хотя оно и дает примерно +500 к FPS.

    Пока вроде все. Прикладываю архив с измененными файлами.
    Вложения Вложения
    Последний раз редактировалось forth32; 02.06.2014 в 15:14.

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

  8. #17
    R.I.P.
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    обновил версию в репозитории
    исправление ЧБ палитры (первый набросок)
    и обновил вывод на экран, теперь в режиме 2X вывод не черезстрочный а нормальный
    черезстрочный был по причине быстрого фикса и того что вывод 2x жутко тормозил при обновлении всего экрана.
    это тоже в общем то быстрый фикс, но он будет до переделки всего кода

    и пару мелких фиксов в сбросе дампов, но это косметика для отладки.

    forth32, пока твою сеть не включал, не успел с ней поиграть сильно
    и похоже надо будет сделать только в версии для линукса.

  9. #18
    Moderator Аватар для Serebriakov
    Регистрация
    06.04.2013
    Адрес
    г. Могилев, Беларусь
    Сообщений
    253
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    109
    Спасибо Благодарностей получено 
    55
    Поблагодарили
    26 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    forth32, пока твою сеть не включал, не успел с ней поиграть сильно и похоже надо будет сделать только в версии для линукса.
    Это да, как поглядел, там в работе с com сильно линуксозависимый код, но forth32 сделал самое сложное дело - раскопал протокол и логику, так что переписать все под winapi не сложно - кода там не много.
    Если когда-нибудь дойдут руки и этого не сделает кто-то другой раньше, перепишу. Плюс давно есть мысли прикрутить чисто косметические вещи к эмулятору, вроде зеленой и других произвольных палитр, а так же алгоритмы масштабирования пиксельной графики вроде hqx, scale2x и прочие, но это уже после SDL, наверное =)
    Последний раз редактировалось Serebriakov; 09.06.2014 в 02:00.

  10. #19
    R.I.P.
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    Плюс давно есть мысли прикрутить чисто косметические вещи к эмулятору, вроде зеленой и других произвольных палитр, а так же алгоритмы масштабирования пиксельной графики вроде hqx, scale2x и прочие, но это уже после SDL, наверное =)
    Кстати зелёную палитру сделать Совсем просто,
    А вот про всякие hqx - я как-то ими не проникся
    Для игровых платформ - ещё понимаю
    А для компании -как то нет.

    ---------- Post added at 01:15 ---------- Previous post was at 01:10 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    А, и вот еще. Что это за оптимизацию -O7 ты там придумал? Вообще-то официально такой вообще не существует, а неофициально она эквивалентна -O3. Но даже -O3 использовать не рекомендуется - это экспериментальная оптимизация, можно нарваться на совершенно необъяснимые глюки. Хотя оно и дает примерно +500 к FPS.
    Ой, та это осталось ещё со времён pentium3 ;-)
    Вроде было O3 плюс ещё чуть чуть

    Я запускал профайлер, в основном там жрет кривая эмуляция звука/таймера
    Надо совсем переписывать
    И похоже почти все
    Кроме диспетчера памяти и всяких WriteXxx/ReadXxx

  11. #20
    SaintTurnip
    Гость

    По умолчанию

    Сергей, можно вас попросить - сделайте пожалуйста поддержку образов нетипичных размеров. Как я помню, в cp/m есть возможность определить геометрию диска, но при моих попытках эмулятор отказывался работать с образами большими, чем стандартный.

    (я все еще лелею мечту собрать весь интересный софт на четырех образах

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Athletic Land 4 Korvet
    от esl в разделе Корвет
    Ответов: 2
    Последнее: 20.04.2013, 12:48
  2. Разработка под эмулятором
    от Hacker VBI в разделе Программирование
    Ответов: 33
    Последнее: 14.03.2013, 15:11
  3. Разработка ZXOOM
    от Andrew771 в разделе Игры
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  4. Разработка ZXOOM
    от Andrew771 в разделе Графика
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  5. Разработка БК-0101-10
    от CodeMaster в разделе БК-0010/0011
    Ответов: 61
    Последнее: 21.04.2011, 21:13

Ваши права

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