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

User Tag List

Страница 1 из 9 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 84

Тема: Игра "Exolon"

  1. #1
    Junior Аватар для maxkit
    Регистрация
    15.04.2009
    Адрес
    Kharkov
    Сообщений
    17
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Игра "Exolon"

    Цитата Сообщение от Ramiros Посмотреть сообщение
    про exelon могу сказать, что у меня нет слов!, неужели автор ненашел более разумного способа засинхронезироваться с экраном? если долго в него играть, то всеравно синхронизация сбивается (вернее уплывает), видимо всетаки есть какие то неточности в информации о времени выполнения команд.
    Дело было не в синхронизации с экраном. Exolon, на самом деле - не "рекомпиляция", ибо никакой рекомпиляцией не получилось бы добиться приемлемой скорости на Векторе. Это полностью переписанная программа.
    Я задействовал аппаратный таймер на ВИ53 в нестандартном режиме. Обычно он использовался для вывода звука, а у меня - просто считал время до синхроимпульса. А поскольку Вектор полностью синхронизирован, то счётчик никогда никуда не "уплывал" на реальном Векторе.

    Почему я использовал такой странный механизм вместо стандартной схемы с прерываниями? Да по тем же причинам экономии тактов. Дело в том, что для прорисовки персонажей, чтобы выиграть в скорости, я нестандартно использовал стековый регистр. Устанавливал стек на адрес, откуда, положим, нужно было переслать данные на экран и делал: "pop d", после одной этой команды в 12 тактов имел два регистра (d и e) с данными и инкрементированный счётчик ардеса, окруда брать следующие данные. А если бы прерывания были разрешены, вызов подпрограммы прерываний портил бы стек с данными. И потом, было очень интересно использовать тот же таймер в нестандартном режиме.

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

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

  3. #2
    Junior Аватар для maxkit
    Регистрация
    15.04.2009
    Адрес
    Kharkov
    Сообщений
    17
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Как уже сказали звук там перенесен не AY-шный, а биперный. Я смотрел игру под эмулятором и мне показалось, что ничего не тормозило и звук был нормальный. А если бы я не знал, что эта игрушка запущена под эмулятором Вектора, то я бы не сомневался, что это самый настоящий спектрумовский Exolon - игрушка действительно перенесена идеально, не смотря на тормозной процессор.
    Сколько лет прошло, а даже сейчас приятно прочитать положительный отзыв о проделанной работе :-)

  4. #3
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от maxkit Посмотреть сообщение
    Сколько лет прошло, а даже сейчас приятно прочитать положительный отзыв о проделанной работе :-)
    Какие люди! "Exolon" - очень качественный порт. Знаменит еще и тем, что заставил эмуляторщиков попотеть над эмуляцией таймера

    Добавлено через 19 минут
    maxkit, еще какой-нибудь софт/игры (кроме Exolon-а) был написан? Может что-нибудь сохранилось в домашних архивах?
    Последний раз редактировалось Tim0xA; 15.04.2009 в 13:41. Причина: Добавлено сообщение

  5. #4
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от maxkit Посмотреть сообщение
    Дело было не в синхронизации с экраном. Exolon, на самом деле - не "рекомпиляция", ибо никакой рекомпиляцией не получилось бы добиться приемлемой скорости на Векторе. Это полностью переписанная программа.
    Я раньше думал, что для портирования Exolon-а использовалось что-то вроде пакета Макринского для рекомпиляции Z80->ВМ80А плюс, естественно, куча ручной работы по оптимизации кода. Хотелось бы узнать подробности о том, как был создан Exolon, что в нем осталось от оригинала кроме графики и т.д. Его скорость действительно впечатляет.
    Последний раз редактировалось Tim0xA; 13.10.2009 в 12:20. Причина: Сортировка по темам

  6. #5
    Junior Аватар для maxkit
    Регистрация
    15.04.2009
    Адрес
    Kharkov
    Сообщений
    17
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    Я раньше думал, что для портирования Exolon-а использовалось что-то вроде пакета Макринского для рекомпиляции Z80->ВМ80А плюс, естественно, куча ручной работы по оптимизации кода. Хотелось бы узнать подробности о том, как был создан Exolon, что в нем осталось от оригинала кроме графики и т.д. Его скорость действительно впечатляет.
    Рассказ об Exolon будет смешным, т.к. это пример неправильной организации труда :-)

    О пакете Макринского - ничего не слышал. В те годы никакого интернета не было, все были разрознены. Единственная информация - ежемесячный "листок" из Кишенёва.

    Вначале я увидел ZX-Spectrum. Игры на нём произвели впечатление. Затем попалась книжка по нему, где была система команд процессора и организация экрана и портов. Стало обидно, что на Векторе нет таких игр. Долго выбирал, какую бы игру попробовать адаптировать, в итоге выбрал Exolon, как ту, которая мне нравилась более других.

    В общем, вначале, как водится, написал на Векторе загрузчик спектрумовских программ с магнитофона. Загрузил, начал ковыряться. Дизассемблера у меня не было, и писать его было лень. Потому, просто распечатал весь код из Монитора-отладчика. В друх форматах: в виде дисассембленого кода и в виде дампа. Многие команды совпадали, а те, что не совпдали - исправлял на бумаге ручкой. Самое сложное было - условные переходы, они на Z-80 были двухбайтовыми (код + смещение), из-за чего мнемоника "сбивалась". В общем, пару недель просидел над правкой "дизассемблированного" кода.

    Когда с этим закончил, понял, что "в лоб" переписать - не получится. Просто не хватит скорости. Z-80 вообще более быстр, к тому же имел, ещё и некоторые "быстрые" команды, аналогов которых не было в i8080.

    Всё писалось в общей тетради "порциями", которые анализировались, оптимизировались там же. Там же расставлялись и реальные адреса ссылок. В общем - много ненужной работы за неимением нормальных средств разработки. Затем вводилось прямо в мониторе-отладчике. Дисковода у меня тогда не было, потому приходилось работать в не очень комфортных условиях. Ни нормального ассемблера (который потом появился, вместе с дисководом и операционной системой). Всё выглядело так. Я загружал в монитор-отладчик уже написанный код с кассеты. Затем вводил с тетрадки новый "кусок", запускал, тестировал, если всё работало так, как я и предполагал - выгружал на две разные кассеты (на всякий случай) уже новый вариант. Благо, что квазидиск тогда у меня уже был, и монитор-отладчик можно было в "теневой области" запускать.

    Старался всё сделать по максимуму. Конечно, можно было что-то упроситить, но я со своим юношеским максимализмом (тогда мне было лет 14) старался не идти на компромисы.

    В общем, никогда мне не работалось с таким интересом, как тогда. Учитывая ещё, что делалось всё на чистом энтузиазме. Потом, конечно, я пытался как-то поставить дело на коммерческую основу. Одна организация в Харькове захотела "купить" игру и уверила, что готова купить и последующие. В общем, в результате я им её отдал, даже подписав документ о том, что никому её не буду сам распростарять. В итоге, разумеется, ни одной копейки за это не получил, что и отвернуло меня в конечном итоге от разработки игр.

    Дело, конечно, было не в деньгах (ну какой подросток работать ночами из любви к деньгам?), а в обмане. Я ведь, по "контракту" не имел права даже друзьям раздать игру бесплатно. Потом, конечно, поняв суть "сотрудничесва", я всё-таки раздал игру всем, кому хотел. И если бы меня не обманули тогда, продолжал бы работать и дальше бесплатно на тот момент. В общем, ввиду этого всего ещё несколько проектов, которые были готовы наполовину, так и остались недоделанными. А ведь пользователи Вектора могли тогда заполучить и Flying Shark, и Zynaps, и Barbarian, и Freddy Hardest (как ни странно, я работал над ними параллельно, хотел выпустить целый блок игр, как Лебедев). Но - увы, "слесарь - охладел к воротам". В общем, после этого, как и у всех, появился PC и я увлёкся FreeBSD.

    Вот такая моя история.

    Сейчас было очень приятно найти страницу о Векторе и окунуться в эту атмосферу. Также очень приятно было бы познакомиться с людьми, которые были тогда столпами разработки ПО для него, хотя бы вот с упомянутым Лебедевым, Глеклером, людьми из ПО "Счётмаш", которые адаптировали игры с MSX, и т.д. С несколькими разработчиками я знаком лично (с разработчиком ОС Т-34, например).

  7. Эти 6 пользователя(ей) поблагодарили maxkit за это полезное сообщение:

    abelenki (23.04.2020), Cooper (27.10.2023), crackintosh (12.06.2021), Oleg N. Cher (10.06.2020), parallelno (31.08.2022), shapipovo (03.06.2020)

  8. #6
    Junior Аватар для maxkit
    Регистрация
    15.04.2009
    Адрес
    Kharkov
    Сообщений
    17
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Tim0xA, после Exolon'а ни одной законченной игры не выпустил, забросив игры по нескольким причинам. Наполовину сделанными остались Flying Shark, Freddy Hardest, Barbarian, Zynaps. Хотел выпустить их одновременно, как Лебедев. И самое обидное, что все технические сложности уже были решены, даже с Zynaps'ом (вот задался я такой задачей, сделать такой же горизонтальный скроллинг, как там). Но потом просто как-то отошёл от этого.
    Занимался ещё вместе с группой харьковских программистов всякой всячиной, типа написания альтернативного ПО для модема (Векторовского), но оно не получило широкого распространения, т.к. потом мы с товарищами ухитрились подключать стандартные ISA-модемы к порту расширения.
    Также помогал в работе над альтернативными харьковскими "драйверами устройсвт" - библиотекой в .REL-формате, которая должна была заменить стандартные "драйверы". Потом, помню, написал распаковщик для ZIP-формата, но он работал только с квазидиском.

    Насчёт проблем с эмуляторами из-за Exolon'а - прошу прощения, но тогда я просто не думал, что когда-то кто-то будет это ещё и эмулировать. Кстати, уже после выпуска Exolon'а, выяснилось, что в Векторе i8080 работал ещё медленнее, чем написано по документации. Там каждый "цикл" (не путать с "тактом") зачем-то расширялся до 4-х тактов, если даже занимал меньше. Скажем, по документации, команды, выполняющиеся за 5 тактов - на самом деле выполнялись 8. Или те, что выполнялись 10 тактов, на Векторе - 12. А я тогда всё никак не мог понять, почему же музыка в Exolon (она была программной, с помощью "магнитофонного" бита) едва уловимо "фальшивит" (я, как скрипач, слышу), хотя всё было просчитано идеально до такта, согласно документации на i8080.

  9. #7
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от maxkit Посмотреть сообщение
    Вот такая моя история.
    Спасибо большое, было очень интересно почитать. История создания "Exolon"-а впечатляет.
    Цитата Сообщение от maxkit Посмотреть сообщение
    А ведь пользователи Вектора могли тогда заполучить и Flying Shark, и Zynaps, и Barbarian, и Freddy Hardest
    Мне из перечисленного особенно люб Flying Shark, там замечательный вертикальный скроллинг, хотелось бы увидеть, как его можно было реализовать на Векторе. Очень жаль, что этого не случилось
    Цитата Сообщение от maxkit Посмотреть сообщение
    С несколькими разработчиками я знаком лично (с разработчиком ОС Т-34, например).
    Хорошо было бы пригласить разработчиков ОС Т-34 на форум пообщаться.

    В Харькове еще была такая фирма "Тень", которая выпускала очень хороший софт. Есть связь с "теневыми" разработчиками?

    Цитата Сообщение от maxkit Посмотреть сообщение
    ...людьми из ПО "Счётмаш", которые адаптировали игры с MSX
    Это точно. У нас с ivagor-ом есть некоторый опыт рекомпиляции программ с MSX на Вектор (http://www.sensi.org/~svo/scalar/categories/15). Я вообщем-то занимался только рекомпиляцией кода с Z80 на ВМ80А, а оптимизацию кода и адаптацию под конкретное железо (и не только для Вектора) делал ivagor. Но в нашем распоряжении есть интернет, эмуляторы, мощный инструментарий. До сих пор диву даюсь, как подобное было возможно сделать в те годы буквально "на коленках" или "с тетрадкой, ручкой, монитором-отладчиком и без дисковода". Воистину, фантастика.

  10. #8
    Junior Аватар для maxkit
    Регистрация
    15.04.2009
    Адрес
    Kharkov
    Сообщений
    17
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    Мне из перечисленного особенно люб Flying Shark, там замечательный вертикальный скроллинг, хотелось бы увидеть, как его можно было реализовать на Векторе. Очень жаль, что этого не случилось
    Там всё достаточно просто. На Spectrum'e всё, происходившее на экране в этой игре, рисовалось в некоторой области памяти, а потом всё это пересылалась в экранную область, чтобы спрайти не "мигали" при перерисовке. Поскольку игра была, по сути, монохромной, на Векторе всё это совершенно замечательно реализовывалось путём рисования в теневой плоскости экрана и дальнейшим поочерёдным переключением экранных плоскостей.

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    Хорошо было бы пригласить разработчиков ОС Т-34 на форум пообщаться.

    В Харькове еще была такая фирма "Тень", которая выпускала очень хороший софт. Есть связь с "теневыми" разработчиками?
    Разработчики ОС Т-34 - это и есть "Тень", а именно - Сергей Терентьев. Я знаком с ним лично, напишу ему об этом форуме.

    Цитата Сообщение от Tim0xA Посмотреть сообщение
    Это точно. У нас с ivagor-ом есть некоторый опыт рекомпиляции программ с MSX на Вектор (http://www.sensi.org/~svo/scalar/categories/15). Я вообщем-то занимался только рекомпиляцией кода с Z80 на ВМ80А, а оптимизацию кода и адаптацию под конкретное железо (и не только для Вектора) делал ivagor. Но в нашем распоряжении есть интернет, эмуляторы, мощный инструментарий. До сих пор диву даюсь, как подобное было возможно сделать в те годы буквально "на коленках" или "с тетрадкой, ручкой, монитором-отладчиком и без дисковода". Воистину, фантастика.
    Значит, действительно правда то, что программы для Вектора разрабатывались не на самом Векторе? А чем вы пользовались, если не секрет? Тогда этот вопрос интересовал чрезвычайно. Я понимал, что так вот, кустарным способом, как делал я, работать неправильно, но как "правильно" - тогда было непонятно.

    А вообще, думаю, всё дело в увлечённости и энтузиазме. Если человеку интересно, он способен на многое.
    Последний раз редактировалось maxkit; 15.04.2009 в 17:07.

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

    По умолчанию

    Там каждый "цикл" (не путать с "тактом") зачем-то расширялся до 4-х тактов, если даже занимал меньше.
    Известно почему, надо же еще и экран сканировать и память обновлять. Такты жалко конечно, но такие времена были.
    Больше игр нет

  12. #10
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от maxkit Посмотреть сообщение
    Значит, действительно правда то, что программы для Вектора разрабатывались не на самом Векторе?
    Как делались адаптации с MSX в те годы - я сам хотел бы узнать

    Цитата Сообщение от maxkit Посмотреть сообщение
    А чем вы пользовались, если не секрет?
    Я доработал рекомпилятор Валерия Бостана "MSX->PC" таким образом, чтобы он преобразовывал коды Z80 в ВМ80А, заменяя отсутствующие в ВМ80А команды аналогами-макросами. В разработке макросов мне активно помогал ivagor. Работа была начата еще в 2000 году, потом был 8-летний перерыв и что-то вдруг снова заставило нас вернуться к этой теме уже в 2008 году. Рекомпилятор был доведен до ума и наконец-то был получен первый результат - рекомпилированный код игры MSX "Tank Battalion". Работоспособность кода проверялась в эмуляторе BlueMSX. Фактически эта была та же игра для MSX, но уже без уникальных Z80 команд. Далее этот файл взял ivagor, добавил к нему свои процедуры эмуляции MSX BIOS + V9918, оптимизировал и в итоге мы получили знаменитые танчики на Векторе http://www.sensi.org/~svo/scalar/ware/2/.
    Т.е. весь набор инструментов: рекомпилятор, эмуляторы MSX и В06Ц, ассемблер с дизассемблером, HEX-редактор.
    Последний раз редактировалось Tim0xA; 15.04.2009 в 17:38.

Страница 1 из 9 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Дипломы за участие в "Твоя игра-3"
    от axor в разделе События
    Ответов: 14
    Последнее: 27.03.2008, 11:45
  2. "твоя игра" - каким быть?
    от scl^mc в разделе Разный софт
    Ответов: 42
    Последнее: 25.03.2007, 16:01
  3. Призы конкурса "Твоя игра-2004"
    от axor в разделе Игры
    Ответов: 12
    Последнее: 25.05.2005, 14:17
  4. Результаты "Твоя игра-2004"
    от axor в разделе Игры
    Ответов: 23
    Последнее: 21.05.2005, 19:23

Ваши права

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