Просмотр полной версии : Игра "Exolon"
про exelon могу сказать, что у меня нет слов!, неужели автор ненашел более разумного способа засинхронезироваться с экраном? если долго в него играть, то всеравно синхронизация сбивается (вернее уплывает), видимо всетаки есть какие то неточности в информации о времени выполнения команд.
Дело было не в синхронизации с экраном. Exolon, на самом деле - не "рекомпиляция", ибо никакой рекомпиляцией не получилось бы добиться приемлемой скорости на Векторе. Это полностью переписанная программа.
Я задействовал аппаратный таймер на ВИ53 в нестандартном режиме. Обычно он использовался для вывода звука, а у меня - просто считал время до синхроимпульса. А поскольку Вектор полностью синхронизирован, то счётчик никогда никуда не "уплывал" на реальном Векторе.
Почему я использовал такой странный механизм вместо стандартной схемы с прерываниями? Да по тем же причинам экономии тактов. Дело в том, что для прорисовки персонажей, чтобы выиграть в скорости, я нестандартно использовал стековый регистр. Устанавливал стек на адрес, откуда, положим, нужно было переслать данные на экран и делал: "pop d", после одной этой команды в 12 тактов имел два регистра (d и e) с данными и инкрементированный счётчик ардеса, окруда брать следующие данные. А если бы прерывания были разрешены, вызов подпрограммы прерываний портил бы стек с данными. И потом, было очень интересно использовать тот же таймер в нестандартном режиме.
Потом, конечно, я придумал немного другое решение, но его реализация не получила широкого распространения, т.к. программа уже "ушла в народ".
Как уже сказали звук там перенесен не AY-шный, а биперный. Я смотрел игру под эмулятором и мне показалось, что ничего не тормозило и звук был нормальный. А если бы я не знал, что эта игрушка запущена под эмулятором Вектора, то я бы не сомневался, что это самый настоящий спектрумовский Exolon - игрушка действительно перенесена идеально, не смотря на тормозной процессор.
Сколько лет прошло, а даже сейчас приятно прочитать положительный отзыв о проделанной работе :-)
Сколько лет прошло, а даже сейчас приятно прочитать положительный отзыв о проделанной работе :-)
Какие люди! "Exolon" - очень качественный порт. Знаменит еще и тем, что заставил эмуляторщиков попотеть над эмуляцией таймера :)
Добавлено через 19 минут
maxkit, еще какой-нибудь софт/игры (кроме Exolon-а) был написан? Может что-нибудь сохранилось в домашних архивах?
Дело было не в синхронизации с экраном. Exolon, на самом деле - не "рекомпиляция", ибо никакой рекомпиляцией не получилось бы добиться приемлемой скорости на Векторе. Это полностью переписанная программа.
Я раньше думал, что для портирования Exolon-а использовалось что-то вроде пакета Макринского для рекомпиляции Z80->ВМ80А плюс, естественно, куча ручной работы по оптимизации кода. Хотелось бы узнать подробности о том, как был создан Exolon, что в нем осталось от оригинала кроме графики и т.д. Его скорость действительно впечатляет.
Я раньше думал, что для портирования Exolon-а использовалось что-то вроде пакета Макринского для рекомпиляции Z80->ВМ80А плюс, естественно, куча ручной работы по оптимизации кода. Хотелось бы узнать подробности о том, как был создан Exolon, что в нем осталось от оригинала кроме графики и т.д. Его скорость действительно впечатляет.
Рассказ об Exolon будет смешным, т.к. это пример неправильной организации труда :-)
О пакете Макринского - ничего не слышал. В те годы никакого интернета не было, все были разрознены. Единственная информация - ежемесячный "листок" из Кишенёва.
Вначале я увидел ZX-Spectrum. Игры на нём произвели впечатление. Затем попалась книжка по нему, где была система команд процессора и организация экрана и портов. Стало обидно, что на Векторе нет таких игр. Долго выбирал, какую бы игру попробовать адаптировать, в итоге выбрал Exolon, как ту, которая мне нравилась более других.
В общем, вначале, как водится, написал на Векторе загрузчик спектрумовских программ с магнитофона. Загрузил, начал ковыряться. Дизассемблера у меня не было, и писать его было лень. Потому, просто распечатал весь код из Монитора-отладчика. В друх форматах: в виде дисассембленого кода и в виде дампа. Многие команды совпадали, а те, что не совпдали - исправлял на бумаге ручкой. Самое сложное было - условные переходы, они на Z-80 были двухбайтовыми (код + смещение), из-за чего мнемоника "сбивалась". В общем, пару недель просидел над правкой "дизассемблированного" кода.
Когда с этим закончил, понял, что "в лоб" переписать - не получится. Просто не хватит скорости. Z-80 вообще более быстр, к тому же имел, ещё и некоторые "быстрые" команды, аналогов которых не было в i8080.
Всё писалось в общей тетради "порциями", которые анализировались, оптимизировались там же. Там же расставлялись и реальные адреса ссылок. В общем - много ненужной работы за неимением нормальных средств разработки. Затем вводилось прямо в мониторе-отладчике. Дисковода у меня тогда не было, потому приходилось работать в не очень комфортных условиях. Ни нормального ассемблера (который потом появился, вместе с дисководом и операционной системой). Всё выглядело так. Я загружал в монитор-отладчик уже написанный код с кассеты. Затем вводил с тетрадки новый "кусок", запускал, тестировал, если всё работало так, как я и предполагал - выгружал на две разные кассеты (на всякий случай) уже новый вариант. Благо, что квазидиск тогда у меня уже был, и монитор-отладчик можно было в "теневой области" запускать.
Старался всё сделать по максимуму. Конечно, можно было что-то упроситить, но я со своим юношеским максимализмом (тогда мне было лет 14) старался не идти на компромисы.
В общем, никогда мне не работалось с таким интересом, как тогда. Учитывая ещё, что делалось всё на чистом энтузиазме. Потом, конечно, я пытался как-то поставить дело на коммерческую основу. Одна организация в Харькове захотела "купить" игру и уверила, что готова купить и последующие. В общем, в результате я им её отдал, даже подписав документ о том, что никому её не буду сам распростарять. В итоге, разумеется, ни одной копейки за это не получил, что и отвернуло меня в конечном итоге от разработки игр.
Дело, конечно, было не в деньгах (ну какой подросток работать ночами из любви к деньгам?), а в обмане. Я ведь, по "контракту" не имел права даже друзьям раздать игру бесплатно. Потом, конечно, поняв суть "сотрудничесва", я всё-таки раздал игру всем, кому хотел. И если бы меня не обманули тогда, продолжал бы работать и дальше бесплатно на тот момент. В общем, ввиду этого всего ещё несколько проектов, которые были готовы наполовину, так и остались недоделанными. А ведь пользователи Вектора могли тогда заполучить и Flying Shark, и Zynaps, и Barbarian, и Freddy Hardest (как ни странно, я работал над ними параллельно, хотел выпустить целый блок игр, как Лебедев). Но - увы, "слесарь - охладел к воротам". В общем, после этого, как и у всех, появился PC и я увлёкся FreeBSD.
Вот такая моя история.
Сейчас было очень приятно найти страницу о Векторе и окунуться в эту атмосферу. Также очень приятно было бы познакомиться с людьми, которые были тогда столпами разработки ПО для него, хотя бы вот с упомянутым Лебедевым, Глеклером, людьми из ПО "Счётмаш", которые адаптировали игры с MSX, и т.д. С несколькими разработчиками я знаком лично (с разработчиком ОС Т-34, например).
Tim0xA, после Exolon'а ни одной законченной игры не выпустил, забросив игры по нескольким причинам. Наполовину сделанными остались Flying Shark, Freddy Hardest, Barbarian, Zynaps. Хотел выпустить их одновременно, как Лебедев. И самое обидное, что все технические сложности уже были решены, даже с Zynaps'ом (вот задался я такой задачей, сделать такой же горизонтальный скроллинг, как там). Но потом просто как-то отошёл от этого.
Занимался ещё вместе с группой харьковских программистов всякой всячиной, типа написания альтернативного ПО для модема (Векторовского), но оно не получило широкого распространения, т.к. потом мы с товарищами ухитрились подключать стандартные ISA-модемы к порту расширения.
Также помогал в работе над альтернативными харьковскими "драйверами устройсвт" - библиотекой в .REL-формате, которая должна была заменить стандартные "драйверы". Потом, помню, написал распаковщик для ZIP-формата, но он работал только с квазидиском.
Насчёт проблем с эмуляторами из-за Exolon'а - прошу прощения, но тогда я просто не думал, что когда-то кто-то будет это ещё и эмулировать. Кстати, уже после выпуска Exolon'а, выяснилось, что в Векторе i8080 работал ещё медленнее, чем написано по документации. Там каждый "цикл" (не путать с "тактом") зачем-то расширялся до 4-х тактов, если даже занимал меньше. Скажем, по документации, команды, выполняющиеся за 5 тактов - на самом деле выполнялись 8. Или те, что выполнялись 10 тактов, на Векторе - 12. А я тогда всё никак не мог понять, почему же музыка в Exolon (она была программной, с помощью "магнитофонного" бита) едва уловимо "фальшивит" (я, как скрипач, слышу), хотя всё было просчитано идеально до такта, согласно документации на i8080.
Вот такая моя история.
Спасибо большое, было очень интересно почитать. История создания "Exolon"-а впечатляет.
А ведь пользователи Вектора могли тогда заполучить и Flying Shark, и Zynaps, и Barbarian, и Freddy Hardest
Мне из перечисленного особенно люб Flying Shark, там замечательный вертикальный скроллинг, хотелось бы увидеть, как его можно было реализовать на Векторе. Очень жаль, что этого не случилось :(
С несколькими разработчиками я знаком лично (с разработчиком ОС Т-34, например).
Хорошо было бы пригласить разработчиков ОС Т-34 на форум пообщаться.
В Харькове еще была такая фирма "Тень", которая выпускала очень хороший софт. Есть связь с "теневыми" разработчиками?
...людьми из ПО "Счётмаш", которые адаптировали игры с MSX
Это точно. У нас с ivagor-ом есть некоторый опыт рекомпиляции программ с MSX на Вектор (http://www.sensi.org/~svo/scalar/categories/15). Я вообщем-то занимался только рекомпиляцией кода с Z80 на ВМ80А, а оптимизацию кода и адаптацию под конкретное железо (и не только для Вектора) делал ivagor. Но в нашем распоряжении есть интернет, эмуляторы, мощный инструментарий. До сих пор диву даюсь, как подобное было возможно сделать в те годы буквально "на коленках" или "с тетрадкой, ручкой, монитором-отладчиком и без дисковода". Воистину, фантастика.
Мне из перечисленного особенно люб Flying Shark, там замечательный вертикальный скроллинг, хотелось бы увидеть, как его можно было реализовать на Векторе. Очень жаль, что этого не случилось :(
Там всё достаточно просто. На Spectrum'e всё, происходившее на экране в этой игре, рисовалось в некоторой области памяти, а потом всё это пересылалась в экранную область, чтобы спрайти не "мигали" при перерисовке. Поскольку игра была, по сути, монохромной, на Векторе всё это совершенно замечательно реализовывалось путём рисования в теневой плоскости экрана и дальнейшим поочерёдным переключением экранных плоскостей.
Хорошо было бы пригласить разработчиков ОС Т-34 на форум пообщаться.
В Харькове еще была такая фирма "Тень", которая выпускала очень хороший софт. Есть связь с "теневыми" разработчиками?
Разработчики ОС Т-34 - это и есть "Тень", а именно - Сергей Терентьев. Я знаком с ним лично, напишу ему об этом форуме.
Это точно. У нас с ivagor-ом есть некоторый опыт рекомпиляции программ с MSX на Вектор (http://www.sensi.org/~svo/scalar/categories/15). Я вообщем-то занимался только рекомпиляцией кода с Z80 на ВМ80А, а оптимизацию кода и адаптацию под конкретное железо (и не только для Вектора) делал ivagor. Но в нашем распоряжении есть интернет, эмуляторы, мощный инструментарий. До сих пор диву даюсь, как подобное было возможно сделать в те годы буквально "на коленках" или "с тетрадкой, ручкой, монитором-отладчиком и без дисковода". Воистину, фантастика.
Значит, действительно правда то, что программы для Вектора разрабатывались не на самом Векторе? А чем вы пользовались, если не секрет? Тогда этот вопрос интересовал чрезвычайно. Я понимал, что так вот, кустарным способом, как делал я, работать неправильно, но как "правильно" - тогда было непонятно.
А вообще, думаю, всё дело в увлечённости и энтузиазме. Если человеку интересно, он способен на многое.
Там каждый "цикл" (не путать с "тактом") зачем-то расширялся до 4-х тактов, если даже занимал меньше.
Известно почему, надо же еще и экран сканировать и память обновлять. Такты жалко конечно, но такие времена были.
Значит, действительно правда то, что программы для Вектора разрабатывались не на самом Векторе?
Как делались адаптации с MSX в те годы - я сам хотел бы узнать :)
А чем вы пользовались, если не секрет?
Я доработал рекомпилятор Валерия Бостана "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-редактор.
Известно почему, надо же еще и экран сканировать и память обновлять. Такты жалко конечно, но такие времена были.
Да, это понятно, но не всегда нужно было до 4-х тактов расширять. Мы в Харькове даже перепрошивали м/с РТ5, чтобы "освободить" такты, но идея не получила широкого распространения. Всё-таки, нестандартный Вектор получался после этого. А некоторые программы (кажется, из Кирова), отказывались запускаться. Там какая-то "хитрая" система декодирования была при запуске, которая, похоже, была чувствительна к синхронизации.
Может быть они поэтому так и сделали? Иначе очень сложно было считать тактики. Вообще невелика была бы потеря, да только в 8080 уж очень много циклов занимают обидные для такого расклада 5 тактов.
Мы в Харькове даже перепрошивали м/с РТ5, чтобы "освободить" такты, но идея не получила широкого распространения. Всё-таки, нестандартный Вектор получался после этого.
Речь идет наверное о РЕ3. Кстати, это интересная идея. Таким образом можно было бы получить нечто вроде турбо-режима, а проблему несовместимости обойти переключателем между стандартной и турбированной ПЗУ (или разместить обе прошивки в ПЗУ большей емкости и переключаться между банками, что более корректно).
Может быть они поэтому так и сделали? Иначе очень сложно было считать тактики. Вообще невелика была бы потеря, да только в 8080 уж очень много циклов занимают обидные для такого расклада 5 тактов.
Просто их далеко не всегда нужно считать до одного. На том же ZX-Spectrum - невозможно до такта вычислить (ну, или, возможно, но не тривиальным сложением), и ничего. Разумеется, "недочёты" в схеме были, но в целом - отличная была машина. Правда, в СССР всегда приходилось догонять, а так, среди отечественных разработок, равных Вектору и так не было. И потом, я не представляю, кто бы в СССР взялся разрабатывать какой-нибудь, скажем ANTIC, как для Atari, так что спасибо и на том.
Речь идет наверное о РЕ3. Кстати, это интересная идея. Таким образом можно было бы получить нечто вроде турбо-режима, а проблему несовместимости обойти переключателем между стандартной и турбированной ПЗУ (или разместить обе прошивки в ПЗУ большей емкости и переключаться между банками, что более корректно).
Да, возможно. Просто за эти годы что-то стёрлось из памяти. То что "Р" - точно. И опытный образец точно работал, и по скорости - точно выигрывал. Но там та же история, что и с заменой процессора. В Харькове в 90-х почти все уважающие себя "Вектористы" были с процессором ВМ1, только вот писать под него код - опять же не имело смысла, т.к. остальные не смогли бы его запускать.
В Харькове в 90-х почти все уважающие себя "Вектористы" были с процессором ВМ1, только вот писать под него код - опять же не имело смысла, т.к. остальные не смогли бы его запускать.
Я давно уже ищу реальный ВМ1, может есть надежда раздобыть его в Харькове у кого-нибудь? Мы тут недавно эмуляцию ВМ80А добили http://zx.pk.ru/showthread.php?t=9826 Вывели на чистую воду эмуляторщиков-халтурщиков всеми мыслимыми и немыслимыми тестами ;) Хотелось бы исследовать ВМ1, чтобы получить его корректную модель симуляции.
Я давно уже ищу реальный ВМ1, может есть надежда раздобыть его в Харькове у кого-нибудь? Мы тут недавно эмуляцию ВМ80А добили http://zx.pk.ru/showthread.php?t=9826 Вывели на чистую воду эмуляторщиков-халтурщиков всеми мыслимыми и немыслимыми тестами ;) Хотелось бы исследовать ВМ1, чтобы получить его корректную модель симуляции.
Я, как и обещал, написал письмо Сергею, возможно, он сможет чем-то помочь в плане ВМ1.
Как делались адаптации с MSX в те годы - я сам хотел бы узнать :)
Я доработал рекомпилятор Валерия Бостана "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-редактор.
Спасибо, очень интересно. Просто удивительно, что на Векторе сейчас появляются новые программы. Хотя, у меня у самого время от времени появляется желание написать что-нибудь для того старого железа на старом ассемблере.
Спасибо, очень интересно. Просто удивительно, что на Векторе сейчас появляются новые программы. Хотя, у меня у самого время от времени появляется желание написать что-нибудь для того старого железа на старом ассемблере.
Ностальгия это называется, но с другой стороны может и хорошо, что она появляется - нужно отдушину себе давать...
P.S. Я вон за целый день так с компьютерным железом натра%юсь, что к PC дома подходить противно.... До тошноты...
P.S.S. По сути - до Валерки Бостана я в принципе могу достучаться, если надо, так же как и попробую Юру Макринского выцепить в очередной заезд в Киш.. Вопрос только когда это будет...
ЗюЫюЫю Теекс, а эмулятор у меня все так же не живет... Обломъ-с
Ностальгия это называется, но с другой стороны может и хорошо, что она появляется - нужно отдушину себе давать...
Да, пожалуй. Разработка игр меня всегда увлекала. Но сейчас такое время, что одному разрабатывать конкурентноспособные игры практически невозможно. В те годы человек мог как-то и графику сам нарисовать, и программу написать. А сейчас подходы изменились, программисты уже почти не программируют а "собирают" из готовых "кусков", нужна команда, и т.д.
Кое что из остатков, находящихся в релизном состоянии. Версия EXOLONа с автоподстройкой под клоны вектора.
Кое что из остатков, находящихся в релизном состоянии. Версия EXOLONа с автоподстройкой под клоны вектора.
Попробовал EXOLON под i8085. С какого-то уровня, вроде с 3-го жизни перестали уменьшаться. Оно так и должно быть?
С какого-то уровня, вроде с 3-го жизни перестали уменьшаться. Оно так и должно быть?
Только с 3го уровня? Странно, это бессмертная версия и жизни вобще не должны уменьшаться (делал "как для себя", а я не готов к хардкору в аркадах). Попробовал в EMU и VV - не уменьшаются. Может какая то определенная версия эмулятора имеет особенности и в ней почему то жизни уменьшаются даже в бессмертном варианте EXOLONа?
---------- Post added at 19:41 ---------- Previous post was at 19:37 ----------
Пожалуй мне надо было упомянуть в readme, что версия бессмертная.
Только с 3го уровня?
Вот сейчас уже точно не скажу, но показалось что на первом уровне жизни уменьшались, хотя возможно что и нет.
А версия без бессмертия с поддержкой всех процов будет?
А версия без бессмертия с поддержкой всех процов будет?
Тогда уж надо бы версию с отключаемыми читами и заставкой, наверно я такую сделаю.
А вобще с использованием квазидиска (или для 6128) можно было бы сделать (я не про себя, это просто мысли вслух) улучшенный вариант EXOLONа - задействовать все 4 плоскости, посчитать заранее (а не в рилтайме) сдвиги спрайтов, прикрутить музыку и эффекты для АY.
Тогда уж надо бы версию с отключаемыми читами и заставкой, наверно я такую сделаю.
Это было бы здорово! Насчёт отключения заставки, правда не уверен, всё-же она придаёт некий шарм и напоминает о преемственности. Неплохо было-бы иметь несколько уровней сложности, когда вначале даётся, скажем 10, 20 и 30 жизней.
А вобще с использованием квазидиска (или для 6128) можно было бы сделать (я не про себя, это просто мысли вслух) улучшенный вариант EXOLONа
6128, насколько я могу понять - вообще рулёзная машинка для игр. Очень жаль, что она вышла таким малым тиражом и не получила широкого распространения. Ей бы ещё один проц в параллель, и был бы игровой супермонстр.
В любом случае, сдаётся мне, что на 6128 возможно было-бы даже нечто подобное Принцу Персии сделать. В цветах и красотах. Только это реально туча труда чтобы было хоть более-менее плавно.
А вообще, здорово было бы замутить что-то типа Dune-II для Вектора. Ну пусть не прямой порт, а навеянное. Прелесть в том, что для игр такого типа скорость перерисовки игрового поля не так критична как для уровневых аркад. Но это тоже всё не про себя, а "мысли вслух".
PS. Уже по 3му разу переписываю физику и гравитацию в роботах и всё недоволен.
Это было бы здорово! Насчёт отключения заставки, правда не уверен, всё-же она придаёт некий шарм и напоминает о преемственности. Неплохо было-бы иметь несколько уровней сложности, когда вначале даётся, скажем 10, 20 и 30 жизней.
Тут я неудачно выразился. Хотел сказать с (отключаемыми читами) и (заставкой). Заставку я имел в виду картинку со спека. Не оригинальную, с планетами, а, кажется, польскую, там где крутой космодесантник (есть ее облагороженная обработка под вектор, но не знаю где лежит). Насчет выбора количества жизней я как то не очень проникся, это вряд ли.
Кое как добавил пару читов в автофиксовый EXOLON. Заставочную картинку все же не стал прилеплять.
Заменил распаковщик на быструю версию b2m, но чтобы выпендриться я ее еще микроскопически ускорил.
blackinwoman
20.12.2017, 00:08
ivagor, maxkit,
а что за прикол у Вектора с клавиатурой, я пробовал разные версии данной игры и если нажимать РУСЛАТ и стрелки перемещения то игра подвисает или выходит в меню, если перезапустить БЛК+СБР, то музыка играет, но игру уже не запустить ... Это общеизвестный баг Вектора или что то может быть полудохлое на плате ?
Это общеизвестный баг Вектора
По-моему это общеизвестная особенность этой игры.
Сначала нажать РУС/ЛАТ, будет заставка без анимации но с музыкой. Теперь РУС/ЛАТ надо подержать, может быть долго. Тогда музыка кончится и в меню заиграют звездочки. И там уже можно нажать 1 и начнется игра.
blackinwoman
20.12.2017, 20:34
svofski, потестировал еще раз, в версии размещенной выше, нажатие на курсорную клавишу вниз вешает игру ... с чем это может быть связано ?
blackinwoman, а в других версиях как? Реала у меня, к сожалению, нет. В моем эмуляторе работают все версии, нажатие клавиши вниз приседает героя.
blackinwoman
20.12.2017, 20:53
еще тест перестал запускаться
http://sensi.org/scalar/ware/621/
точнее рисует заставку, а далее крашится с мусором на экране, опять же при нажатии клавиши ВК
память тестируется без сбоев
- - - Добавлено - - -
а в других версиях как?
ну удается пройти несколько шагов и сбрасывается в меню
Может быть с вашим Вектором не все идеально? В категории test (http://sensi.org/scalar/categories/test/) есть разные тесты памяти, таймера и комбинированные.
blackinwoman
20.12.2017, 21:12
svofski, как все сложно, может действительно битая память попалась в верхних адресах, но этот тест не показывает ошибок
http://sensi.org/scalar/ware/555/
вот этот http://sensi.org/scalar/ware/648/
начинает заполнять память 1 и к верхним адресам на экране появляется мусор, как бы еще понять, как он показывает битую микросхему ...
blackinwoman
21.12.2017, 00:58
похоже дело не в памяти, а в чем то еще типа ВИ53 или порта клавиатуры ...
почитав тему про отладку эмуляции ВИ53 и запустив тесты
http://sensi.org/scalar/ware/650/
возник вопрос, в тесте i82532 должен на бипер идти звук ?
во всех остальных звук есть, в этом только щелчок при запуске
Там несколько разных тестов. Звуки в них явления побочные, потому что они все были созданы для уточнения поведения счетчиков в ВИ53. Сам я на реале их не гонял, но подозреваю, что в них должны быть слышны какие-то щелчки или даже низкочастотный рокот. С программной точки зрения, если картинки совпадают с теми, что на фотках в архиве, проблем быть не должно.
Exolon чувствителен к таймеру, он им отслеживает строку, которая в настоящий момент сканируется. Так что если с ВИ53 проблемы, Exolon может вести себя странно.
начинает заполнять память 1 и к верхним адресам на экране появляется мусор, как бы еще понять, как он показывает битую микросхему ...
Если речь про "пробегающую помеху" при проверке старших адресов, то это нормально. Можно сравнить с эмулятором - на реале как в эмуляторе или иначе?
Насчет таймера - exolon еще может странно среагировать на проблемы с таймером, но тест устройств - вряд ли.
Может лучше D30 ("системную" ВВ55) проверить?
blackinwoman
21.12.2017, 13:46
ivagor,
смысл такой что при нагреве что то деградирует в Векторе и засирается шина, от этого и ошибки памяти в тесте http://sensi.org/scalar/ware/648/ , почему только в нем, а с заводским тест прогоном все нормально, дело в том что если клавиатура не опрашивается, т.е. ВВ55 не программируется, то все работает без проблем ...
может быть конечно это микросхема шинного формирователя, я делал эксперименты с охлаждением микросхемы и вроде бы была зависимость, т.к. эффект плавающий, иногда проще и быстрее просто поменять микросхемы, чем сидеть над платой часами ...
да теперь я понял насколько люди были правы по рассказам про мучения ремонта и обслуживания советских компов, где из за деградирующих специальных микросхем приходилось тратить уйму времени на поиск неисправности ... хоть в спектрумы собраны на рассыпухе, там полегче с диагностикой ...
Я слышал, что ВВ55 имеют дурную репутацию. Может правда есть смысл ее поменять на свеженькую.
- - - Добавлено - - -
А кстати, что если приделать к ВВ55 активное охлаждение? Хороший радиатор на термопасту и вентилятор. Период полураспада увеличится, или нет?
blackinwoman
21.12.2017, 15:52
А кстати, что если приделать к ВВ55 активное охлаждение? Хороший радиатор на термопасту и вентилятор. Период полураспада увеличится, или нет?
нет, я проверял, не хочу время тратить впустую на проверки уже, проще по схеме поменять
TomaTLAB
21.12.2017, 16:13
ВВ55 если работают, то работают. Но любят дохнуть от любого чиха (особенно если наружу во внешний мир торчат) и тогда начинают мозги канифолить.
Были у нас как-то стенды с ISA платами АЦП от "Руднев-Шиляев", так они там и горели пачками, пока все на буржуйские КМОП на заменили.
дело в том что если клавиатура не опрашивается, т.е. ВВ55 не программируется, то все работает без проблем
Если на экране что-то видно, значит ВВ55 D30 программировали - на ней установка видеорежима, скролл, номер цвета палитры/бордюр
blackinwoman
21.12.2017, 17:45
Если на экране что-то видно, значит ВВ55 D30 программировали - на ней установка видеорежима, скролл, номер цвета палитры/бордюр
ах вот оно что, но я судил по 20 ноге, там был или лог 0 и тогда все работало или импульсы и тогда все накрывалось
А что такое у нее на 20 ноге?
blackinwoman
21.12.2017, 18:21
А что такое у нее на 20 ноге?
ряд клавиатурный, идет на шлейф, ну и на остальных ногах идущих на шлейф, факт идет опрос
20я нога D30 - это бит 2 порта B
на чтение - это один из битов текущей выбранной линейки клавиатуры
на запись - один из битов номера палитры/бордюра
Ладно, хозяин похоже настроен решительно =) Подождем результатов замены.
blackinwoman
21.12.2017, 20:03
замена дала эффект, но не полностью :
во первых чип друго завода - греется меньше, да и прошолый грелся не сильно
во вторых хоть теперь можно поиграть в exolon
в третьих при нажатии на плату в тесте показали ошибки, тоесть либо дорожка треснула, либо дело не в В55А или просто так совпало ... надо тестировать дальше
попутно вопрос по квазидиску, там единый стандарт был или разные ни с чем не совместимые ? проще говоря в combodevice чем потестировать диск, заводским тестом его не видит, хотя AY работает
попутно вопрос по квазидиску, там единый стандарт был или разные ни с чем не совместимые ? проще говоря в combodevice чем потестировать диск, заводским тестом его не видит, хотя AY работает
Квазидиск вроде как Кишиневский стандарт, реализации на местах может аппаратно малость отличались, но программно одно и тоже. Омский вариант только под свой какой-то ДОС делался.
В Combodevice квазидиск Техпрогоновский тест должен проходить нормально и всякие kdtest, kdtest2 тоже без проблем.
blackinwoman
21.12.2017, 21:46
В Combodevice квазидиск Техпрогоновский тест должен проходить нормально и всякие kdtest, kdtest2 тоже без проблем.
у меня они не запускаются нормально, может быть что по адресации конфликтуют с 32кб ПЗУ ?
у меня они не запускаются нормально, может быть что по адресации конфликтуют с 32кб ПЗУ ?
Нет, у меня тоже на 32 кБайт ПЗУ переделано. Как подсоединено? Кабелем или разъем в разъем?
blackinwoman
22.12.2017, 00:36
разъем в разъем
разьем в разьем
я плис проверял, не проверял на плате логику пока
засирание шины данных я вроде победил
Напишите маркировку ПЛИС, статОЗУ и регистра. Где плату брали? Из моих тиражей (без шелкографии или с ней) или последующие от инициативных товарищей? Лучше сразу фото и желательно фотки что на экране от kdtest, kdtest2, техпрогона.
blackinwoman
22.12.2017, 17:20
Напишите маркировку ПЛИС
epm7128slc84-15n
статОЗУ
as6c4008-55pcn
регистра
555ир23
Где плату брали?
где смог найти
http://zx-pk.com/forum/viewtopic.php?f=7&t=1588&hilit=combodevice
Лучше сразу фото и желательно фотки что на экране от kdtest,
http://saveimg.ru/thumbnails/22-12-17/4c8163c8632357b8f4f4c246f36f527d.jpg (http://saveimg.ru/show-image.php?id=ef4b0423e0d7c6d46ae0f07e9b269cdd)
kdtest2
заполняется сеткой, потом синий экран
техпрогона
пишет модуль не найден
blackinwoman
23.12.2017, 00:34
в combodevice сигнал CAS с разьема Вектора не используется ? с Векторной РЕ3 он идет всегда в лог 1 и никакого сигнала там нет, это нормально ?
что за сигнал БЛК на 38 ноге разьема ? тоже идет с этой РЕ3 и тоже в лог 1
Можно попросить Модератора отцепить от данной темы сообщения с последнего абзаца сообщения #49 в профильную тему про Combodevice
http://zx-pk.ru/threads/22217-combodevice.html
в combodevice сигнал CAS с разьема Вектора не используется ? с Векторной РЕ3 он идет всегда в лог 1 и никакого сигнала там нет, это нормально ?
CAS не используется. На РЕЗ (D37) делаются CASы для четырех линеек основного ОЗУ и для ВУ (квазидиска). То что сигнал в 1, это нормально при отсутствии обращения к Квазидиску.
что за сигнал БЛК на 38 ноге разьема ? тоже идет с этой РЕ3 и тоже в лог 1
БЛК идет не с РЕ3, а на РЕ3 и как раз управляет выдачей CAS на ВУ.
БЛК должен формироваться самим ВУ (в частности Combodevice) при обращении в программах к адресам, куда подставляется квазидиск.
Посмотри БЛК с ПЛИС вообще в ноль когда-нибудь падает при запуске прог, обращающихся к квазидиску? На статОЗУ сигналы OE, WE, CS что из себя представляют?
blackinwoman
24.12.2017, 00:27
Syntal, вопрос на засыпку, а kdtest
http://sensi.org/scalar/ware/619/
как себе ведет без платы combodevice в слоте ?
у меня так же, как и с платой, т.е. мерцает экраном
оказалось когда нету обмена с портом квазидиска и БЛК не работает, так и должно быть
разобрался, это я с 32к ПЗУ перестарался, была сопля под дополнительными ногами пзу и сигнал БЛК был всегда подвязан к +5
разобрался, это я с 32к ПЗУ перестарался, была сопля под дополнительными ногами пзу и сигнал БЛК был всегда подвязан к +5
Теперь все тесты пашут?
blackinwoman
24.12.2017, 12:26
Теперь все тесты пашут?
тест квазидиска да, AY работает, остальное я пока не знаю как проверить
Музычку в эксолоне можно было сделать лучше, например так (через таймер). Причем это намного проще, чем потеть над оптимизацией биперного плеера, который все равно на 100% соответствовать оригиналу не сможет.
ivagor, спасибо! Наконец-то я услышал, как она должна звучать. Оригинал (в смысле Векторовский) я всегда в панике вырубал как можно скорее. Я добавлю к архиву в картотеку?
Спасибо на добром слове :) Раз такой вариант устраивает не только меня, значит надо попробовать вставить его в игрушку. Надеюсь до конца недели сделаю, может даже завтра, тогда можно будет добавить в картотеку сразу законченное изделие. А если не получится (или я резко займусь чем-то другим), тогда можно будет и "демонстрацию" в картотеку поместить. Т.е. лучше немного подождать.
Заменил в версии с фиксом и читами (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=568330&viewfull=1#post568330) биперную музыку на таймерную.
ivagor, Exolon не инициализирует 8255. После стандартного загрузчика в CW практически стопудово лежит $88, но вообще никто же не сказал, что он загружается из стандартного загрузчика. Там может и $00 быть, а тогда РУС/ЛАТ не определяется.
Да, надо поправить для полного счастья. Только 00 в 00 не проблема, эксолон его сам туда записывает(после первой заставки, перед музыкой), оригинальный так и много раз (во время музыки и параллельно смотрит порт 1 на предмет РУС/ЛАТ) :) Вот если в РУС записать что-то вроде 80h, то будет веселее. Но за все время жизни этой игрушки с 93 никто не написал о проблемах связанных с невозможностью ее запустить, т.е. на практике ничего страшного. Хотя можно написать специальную досовскую запускалку игрушек, которая коварно установит неправильный режим ВВ55 :)
- - - Добавлено - - -
Кстати, там же еще и палитра программируется до инициализации ВВ55. Т.е. самый злой прикол - запрограммировать перед запуском эксолона старшую половину C на вывод, остальное - на ввод.
Но за все время жизни этой игрушки с 93 никто не написал о проблемах связанных с невозможностью ее запустить, т.е. на практике ничего страшного.
Я ее запускал всегда нажатием F12, то есть БЛК+СБР, вместо предлагаемого РУС/ЛАТ. Но твоя версия по сбросу не запускается.
Проблема в том, чтобы покинуть эту самую первую заставку, которая перед музыкой. Он опрашивает РУС/ЛАТ, а порты запрограммированы на вывод. Отчасти это проблема моего эмулятора, который не пытается исполнить код загрузчика перед тем, как запустить ROM.
Предлагаю разделить вопросы инициализации ВВ55, возможности рестарта и работоспособности в v06x.
Рестарт через БЛК+СБР у меня не предусмотрен, т.к. автор его не рекомендовал в данной игрушке и описал штатные способы рестарта через комбинации клавиш. Пара вариантов оригинального exolonа (с названиями exolon.rom) удачно ресетится с первого экрана в твоем эмуляторе, т.к. их распаковщик прописывает адреса 0-2. Добавлю это и в модифицированной версии на всякий случай. Exolond.com и exolonl.rom по сбр+блк корректно не рестартуют.
Подробнее по работоспособности в v06x. Запустили
v06x.exe --rom EXOLON.ROM
нажали F12, ждем, когда проиграет музычку (т.к. на РУС/ЛАТ реакции нет). Появились звезды, жмем 1, начинается игровой процесс. При первом выстреле пушки вылетаем в меню. Этот только у меня так? Проблема в моем компе, ос или в старой версии эмулятора?
Подробнее по работоспособности в v06x. Запустили
v06x.exe --rom EXOLON.ROM
нажали F12, ждем, когда проиграет музычку (т.к. на РУС/ЛАТ реакции нет). Появились звезды, жмем 1, начинается игровой процесс. При первом выстреле пушки вылетаем в меню. Этот только у меня так? Проблема в моем компе, ос или в старой версии эмулятора?
У меня так же. Скорее всего еще какие-то тонкости 8255 недоделаны.
Музычку в эксолоне можно было сделать лучше, например так (через таймер)
Можно нескромно спросить - а исходники планируется выкладывать на всеобщее обозрение? :v2_blush:
Или, хотя бы, общий принцип работы?
Насколько я понимаю, ценой большой загрузки процессора (на заставке он всё равно по большей части простаивает) биперная музыка позволяла делать звуковые эффекты более сложные, нежели можно выжать из 8253 (пример - игры Zynaps и Dark Fusion (https://www.youtube.com/watch?v=oYopnpLGVDw) на ZX-Spectrum, хотя насчёт последней я не уверен, что там не AY...)
исходники планируется выкладывать на всеобщее обозрение?
Исходник таймерного проигрывателя? Там все совершенно стандартно, никаких эффектов - берем делитель, пишем в таймер, ждем и так по кругу. Такие исходники вроде неоднократно публиковались в векторовских изданиях.
Суперкрутые спековские биперные проигрыватели, типа savage (https://www.youtube.com/watch?v=6AVWgrD9_1M) (Part 1 Music (https://www.youtube.com/watch?v=6AVWgrD9_1M&t=304s) пожалуй моя любимая спековская биперная музыка из детства), chronos (https://www.youtube.com/watch?v=u-D24A_N4d4) не представляется возможным перенести на вектор с приемлемой скоростью.
Но у таймера свои фишки, талантливый музыкант/программист мог бы выжать из него такое, что в свою очередь невозможно будет повторить на бипере спека.
Lethargeek
25.01.2019, 18:23
Dark Fusion на ZX-Spectrum, хотя насчёт последней я не уверен, что там не AY
бипер там, причем "двухбитный", о существовании которого всё время говорили большевики говорил блаккат :)
(хотя вероятнее, что немного разный звук на d3/mic и d4/ear это случайность)
Обновил модернизированную версию (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=996003&viewfull=1#post996003). Добавил инициализацию ВВ55. Возможность ресета тоже добавил, но все же рекомендую использовать предусмотренный автором рестарт через УС+СС+РУС/ЛАТ.
- - - Добавлено - - -
svofski, посмотрел бегло io.h
1. Если писать в порт 0, то мы запишем значение в CW, независимо от того, MS это или BSR.
2. При чтении порта 1 проверяется бит 3 CW (про бит 0 и нижнюю половину думаю можно пропустить) и в зависимости от него в старшую половину выдается либо записанное в порт значение либо реальное состояние клавиш и магнитофонного входа.
Как я понял, у тебя получается, что при записи 0 или 1 (т.е. BSR) в порт 0 мы меняем CW. А при чтении порта 1 смотрим бит 3 CW - там 0, и выдаем старшую половину PC - там тоже все нули (после смены режимов в обработчике). Т.е. якобы УС+СС+РУС/ЛАТ нажаты - и вылетаем в меню.
ivagor, спасибо! Обновил эмулятор.
А вот теперь, когда музыка играется таймером, возникает вопрос: зачем сначала слушать музыку, а потом любоваться звездочками, если можно слушать музыку, любуясь звездочками? ;)
Про звезды с музыкой я думал, в спековском ay со звездами играет. Но надо еще поразбираться, пока нет желания. Может созрею одновременно на звезды и ay. И через таймер ay-ковский музон будет круче, чем биперный.
Музычку в эксолоне можно было сделать лучше, например так (через таймер). Причем это намного проще, чем потеть над оптимизацией биперного плеера, который все равно на 100% соответствовать оригиналу не сможет.
После преодоления звукового барьера на специалисте мне захотелось опровергнуть это свое утверждение. Жирный многокилобайтный плеер с развернутыми циклами на векторе догнал (и даже совсем чуть-чуть обогнал) спековский оригинал по скорости основного цикла, т.е. по диапазону вверх. Но обогнал не так сильно, как на специалисте, высокие ноты все равно неточные (как и на спеке). И тогда я решил транспонировать вниз на полоктавы (где низкие ноты более точные) - вот такой вариант мне понравился, можно слушать. Все ноты (как для спеца) я не пересчитывал, но парочку подкорректировал.
Исходник прилагаю. Там есть параметр DownTune, который определяет, на сколько полутонов транспонировать вниз. Можно побаловаться в интервале от 0 до 7. Но скорее всего придется корректировать ноты для нормального проигрывания созвучий. Такой вот местами почти хорошо темперированный эксолон.
У каждого эмулятора свои плюсы и минусы, для бипера лучший - v06x. Там звук какой-то даже слишком рафинированный, иногда кажется что это таймер, где же грязь, скрежет и шипение.
- - - Добавлено - - -
Кстати, хотя векторовский плеер получился медленнее специалистовского (т.к. у нас нет отображения портов на память + векторовские тормоза), зато освободился один регистр. Сложно сказать, для чего его можно использовать, но он есть.
Вот тут должны возникать споры о корректности исполнения биперной музыки 80-х в современной темперации. Должны появляться аутентичные исполнители итд.
Несомненно. Аналогии с барочной музыкой прослеживаются.
1. Например ля в эксолоне чуть заниженная (как и весь строй). Хотя кто-то может сказать что наоборот - завышенная, а я смотрю не с той стороны. Только официальные ноты помогут рассудить этот спор.
2. Вибрато не используется.
- - - Добавлено - - -
3. Самое аутентичное звучание будет только на векторе где-нибудь так 1991 года выпуска.
Только официальные ноты помогут рассудить этот спор.
тут надо изучать именно оригинал на с64.
мне попадалась (сходу не нашёл) утилита под win которая играя sid на выходе даёт дамп с нотами для каждого канала
Можно попробовать подойти к вопросу "какие ноты" без иронии, серьезно. Но C64 я не потяну. Глянул спековский AY. Там ноты вполне четкие, но отличающиеся от бипера. Если брать первые ноты заставки, то в бипере что-то в районе соль-диезов малой и второй октав. А в AY (если брать только 2 голоса, 3го в бипере нет) фа малой и второй октав. Т.е. музыку транспонировали для адаптации к конкретному устройству звукоизвлечения. Таблицы нот для бипера и AY имеют разные диапазоны. У AY самая низкая нота в таблице - ля-диез большой октавы, а у бипера в мелодии встречаются и более низкие ноты.
Теоретически wav с музыкой C64 можно попробовать посмотреть в звуковом редакторе на предмет определения нот, но думаю для практики в этом нет особого смысла. Хотя для истории было бы интересно знать.
Исходник таймерного проигрывателя? Там все совершенно стандартно, никаких эффектов - берем делитель, пишем в таймер, ждем и так по кругу. Такие исходники вроде неоднократно публиковались в векторовских изданиях.
Но таким образом мы можем манипулировать только частотой (и, возможно, скважностью) генерируемого таймером меандра, верно? То есть, никаких огибающих, обертонов, и никаких шумовых эффектов таким образом не получишь?
Правда, здесь вспоминается Rise Out (https://www.youtube.com/watch?v=dQ82jbYHnaA), но не факт, что в ней "ритм-секция" играется полностью на таймере, а не с привлечением бипера.
Но у таймера свои фишки, талантливый музыкант/программист мог бы выжать из него такое, что в свою очередь невозможно будет повторить на бипере спека.
Так вот это же и самое интересное - что можно выжать из таймера такого, что невозможно повторить на бипере, и что, при этом, звучало бы интересно?
Навскидку, в голову приходит только грамотно распорядиться полифонией, но ИМХО апогей в этом плане уже был достигнут в плеере Сергея Новикова (Fatax, Eraser).
Но таким образом мы можем манипулировать только частотой (и, возможно, скважностью) генерируемого таймером меандра, верно? То есть, никаких огибающих, обертонов, и никаких шумовых эффектов таким образом не получишь?
Да, конечно. В биперном проигрывателе эксолона ничего такого (эффектов) и нет.
Так вот это же и самое интересное - что можно выжать из таймера такого, что невозможно повторить на бипере, и что, при этом, звучало бы интересно?
Навскидку, в голову приходит только грамотно распорядиться полифонией, но ИМХО апогей в этом плане уже был достигнут в плеере из семейства игр Fatax.
У таймера заметно более широкие возможности по диапазону в сочетании с точностью + все это на 3 голоса без проблем + проигрыватель можно разместить в обработчике прерываний (и параллельно что-то делать другое) + бипер можно использовать для ударных/шумовых эффектов.
Fatax (и другие игры с музыкой Новикова) - это исторический пример использования на векторе частотного вибрато и биений для придания звучанию окраски, колорита. Теперь есть примеры такого рода и покруче: AYковые мелодии через "эмулятор AY" (таймер+бипер) и последние достижения SegaBoyя. vinxru еще вроде подобную музычку делал.
Кстати, я уже писал в теме про музыку, но могу повторить, что у векторовского таймера есть преимущество по диапазону и относительно AY. Хотя AY по другим возможностям заметно круче.
последние достижения SegaBoyя.
Спасибо, очень любопытно! Вот такую годноту бы и на Вектор... но, как я понял, SegaBoy использует аппаратные доработки, чтобы получить возможность управлять не только частотой, но и амплитудой сигнала. Причём, насколько могу судить, схемотехника этих наработок переносится на "Вектор" практически 1-в-1 - возможно, только дешифрацию адреса придётся сделать по-другому, т.к. в Векторе нет DMA, на готовом сигнале CS которого "паразитирует" оригинальная схема.
Первый вариант castlevania SegaBoyя я переносил на вектор (и не только на вектор), можно и поздние варианты (и другие мелодии) перенести, только надо найти мотивацию, технических сложностей там нет. Они и без управления громкостью звучат хорошо.
- - - Добавлено - - -
А с управлением громкостью можно на AY.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot