Вход

Просмотр полной версии : Exolon для ПК Специалист



CityAceE
22.01.2019, 05:30
Да, ivagor сделал это! Теперь на Специалисте есть Exolon - скачать
(https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828)
Монохромная версия:

https://pic.maxiol.com/images2/1590979311.90460257.exolon21.png https://pic.maxiol.com/images2/1590979333.90460257.exolon22.png

4-х цветная версия:

https://pic.maxiol.com/images2/1590979386.90460257.exolon41.png https://pic.maxiol.com/images2/1590979407.90460257.exolon42.png

4-х цветная версия, запущенная на 8-ми цветном компьютере:

https://pic.maxiol.com/images2/1590979498.90460257.exolon51.png https://pic.maxiol.com/images2/1590979523.90460257.exolon52.png

8-ми цветная версия:

https://pic.maxiol.com/images2/1590979559.90460257.exolon81.png https://pic.maxiol.com/images2/1590979579.90460257.exolon82.png

16-ти цветная версия для ПК Специалист-MX:

https://pic.maxiol.com/images2/1590979622.90460257.exolonf1.png https://pic.maxiol.com/images2/1590979640.90460257.exolonf2.png

Рассказ (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=194983&viewfull=1#post194983) о процессе адаптации автора версии игры для Вектор-06Ц, которая легла в основу версии для ПК Специалист.

А вот с чего всё начиналось:

Посмотрите на эти скриншоты, снятые из эмулятора ПК Специалист Emu80 (ищите exolon.rks во вложении):

https://pic.maxiol.com/images/1548124336.3254906935.exolon18.png https://pic.maxiol.com/images/1548124378.3254906935.exolon28.png

Нравится? Вот и мне тоже! А теперь чуть подробнее.

Специалист (в варианте ЛИК (https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BA_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C %D1%8E%D1%82%D0%B5%D1%80))) был моим первым компьютером. Я и до сих пор бережно храню его. Недавно отдав дань памяти, я написал эмулятор Специалиста на языке Python (https://zx-pk.ru/threads/29897-spycialist-emulyator-pk-spetsialist-na-python.html). Но это лишь подстегнуло ещё больший интерес к платформе, вытащив наружу из памяти мои старые идеи. Когда я был владельцем только лишь Специалиста, я с завистью поглядывал на такие хиты ZX Spectrum’а, как Batty и Exolon. Совершенно не разбираясь в программировании, тогда мне казалось, что такие игры попросту не реальны на Специалисте. В итоге приходилось довольствоваться тем, что было. А было совсем не много, да и качество этого оставляло желать лучшего. Но спустя годы, стало понятно, что даже на Специалисте можно было воплотить многое из того, выходило на ZX Spectrum. Проблема была в том, что попросту некому было всё это писать.

Вообще, до сих пор моей заветной мечтой является возможность поиграть в Batty на Специалисте. Но наработок в этой области вообще нет. Видимо, не так много людей испытывают такие же чувства к этой игре. Зато с Exolon’ом всё в порядке. Благодаря благословению автора и упорству esl у нас имеются полные исходные тексты игры (https://zx-pk.ru/threads/24083-nuzhno-exolon-code-source.html?p=758275&viewfull=1#post758275), готовые к портированию куда угодно. Помимо собственно наличия исходников Exolon’а, к портированию игры на Специалист предрасполагают следующие факторы:


Игра не использует прерывания
Игра не использует процедур ПЗУ
Код написан так, что портирование на другую платформу не вызывает проблем. Автор в своё время переносил Exolon на Amstrad CPC и это заняло у него всего несколько дней вместе с рисованием новой графики.


Как я себе представляю этапы переноса Exolon’а на Специалист с учётом современных средств разработки:


Переписываем процедуры вывода графики, опроса клавиатуры и вывода звука под Специалист. При этом отлаживаем всё под эмулятором Специалиста с процессором Z80.
Избавляемся от специфических инструкций Z80, заменяя такие инструкции конструкциями, состоящими из инструкций Intel 8080, либо полностью переписывая процедуры.


Мне кажется, что серьёзных проблем возникнуть не должно. Возможно, может не хватить быстродействия. Однако порт Exolon’а для ПК Вектор-06Ц (http://sensi.org/scalar/ware/405/) говорит о том, что КР580ВМ80А, работающий на частоте 2 MHz, вполне способен переварить это дело.


https://www.youtube.com/watch?v=GTXcP9Hu50s

На моём Специалисте была лишь однобитная чёрно-белая графика и мне приходилось лишь облизываться на статьи в Моделисте-Конструкторе, где описывался контроллер цветности, вначале 4-х цветный, а потом 8-ми цветный. Поэтому я подумал, что Exolon на Специалисте вполне мог бы быть чёрно-белым. Но потом мне стало любопытно, а что же там с цветами на Специалисте? Для этого я решил написать загрузчик Спектрумовских картинок в Специалист. Но, во-первых, у меня не было средств разработки под Специалист. А, во-вторых, мнемоники i8080 мне сейчас уже почти ни о чём не говорят. Собственно, долго думать не пришлось. В качестве компилятора я задействовал привычный мне кросс-ассемблер Z80 SjASMPlus (https://zx-pk.ru/threads/447-sjasmplus-z80-kross-assembler.html) и настроил всё так, чтобы после компиляции я получал готовый к загрузке в эмулятор Специалиста файл c расширением RKS. Конечно, приходится быть предельно внимательным и чётко понимать какие инструкции есть у i8080, а каких нет. Так, можно совершенно машинально вместо JP LABEL написать JR LABEL, а потом долго искать почему правильно написанная программа благополучно скомпилировалась, но не работает на эмуляторе.

Спектрумовские картинки на экране Специалиста впечатлили. Несмотря на серьёзные ограничения в цветах и метод их отображения, многие картинки со Спектрума выглядят практически так же. Судите сами:

https://pic.maxiol.com/images/1548124560.3254906935.exolon21.png https://pic.maxiol.com/images/1548124585.3254906935.exolon24.png https://pic.maxiol.com/images/1548124378.3254906935.exolon28.png

Даже чётырёх-цветная графика выглядит неплохо!

С графикой поэксперементировал. Дальше решил попробовать звук, а вместе с ним и адаптацию кода Z80 к i8080. Для экспериментов я выбрал sound_beeper_music.asm из пакета исходников Exolon.

И вот тут у меня случился затык. Я уткнулся в нехватку регистров, команд и быстродействия. В итоге мне всё-таки удалось заставить Специалист хоть как-то воспроизводить мелодию из Exolon’а, но происходит это ооооочень медленно. Чтобы услышать мелодию так, как она звучит на Спектруме, нужно включить в эмуляторе Специалиста режим максимальной скорости:

https://pic.maxiol.com/images/1548124835.3254906935.emu80.png


Это происходит, во-первых, из-за того, что сам процессор Специалиста работает почти вдвое медленнее Z80. А, во-вторых, я конвертировал процедуру, что называется «в лоб» с ужасно тормозной конструкцией заменяющей команду EX AF,AF’. Чтобы всё зазвучало как нужно, требуется переписать плеер с чистого листа. А то, что i8080 способен потянуть эту мелодию подтверждает порт Exolon’а на Вектор-06Ц (см. видео). Да, там мелодия играет чуть медленнее, но при этом она играет почти как же, как в оригинале.

Написание такого плеера может явиться интересной задачей для скучающих спектрумовских кодеров. Процедура проигрывания довольно короткая, но при этом очень критичная ко времени исполнения. Задача вполне себе тянет на, так любимый многими, этюд. К тому же всё написано в привычной для спектрумистов мнемонике Z80.

Всё необходимое для решения задачи (компилятор, настроенные файлы и исходники) приложено к этому сообщению. Вам остаётся лишь скачать и распаковать это, запустить exolon.bat и получить на выходе exolon.rks, который можно загрузить в эмулятор Специалиста. А самую свежую версию эмулятора Специалиста можно взять здесь (https://zx-pk.ru/threads/27488-emu80-v-4.html).

Ещё на всякий случай упомяну, как формируется звук на Специалисте. Чтобы динамик зазвучал, необходимо с определённой частотой чередовать запись чисел #0A и #0B в ячейку по адресу #FF03 (на самом деле в любую ячейку по маске #F803). Вообще, за вывод звука отвечает только один нулевой бит, но системный загрузчик для вывода звука засылает в порт не #00 и #01, а именно #0A и #0B. Я не стал разбираться с чем это связано.

В приложении к этому сообщению вы найдёте демку exolon.rks, которая выводит две картинки из игры Exolon и воспроизводит две «мелодии» оттуда же. Смена картинки вместе мелодией осуществляется нажатием на любую кнопку.

Ну а для тех, кому интересно покопаться внутри, я прилагаю исходный текст с компилятором - exolon_src.zip. Не судите строго мой код - там оптимизировать и оптимизировать. Но зато всё работает так, как было задумано.

P.S. Заменил exolon.rks во вложении на вариант с плеером от ivagor - там музыка играет почти как в оригинале.

ivagor
22.01.2019, 08:27
CityAceE, насчет звука. За звук отвечает 5й бит порта C ВВ55 (FF02), можно и в него напрямую писать для получения звука. Но корректнее как раз программировать его через регистр управляющего слова (FF03):
Ah=1010b=(5<<1)+0 - записываем 0 в 5й бит C
Bh=1011b=(5<<1)+1 - записываем 1 в 5й бит C

ivagor
22.01.2019, 17:55
Задача для спектрумистов, но я все же попробую. Взял за основу векторовскую версию, с которой давно разбирался, и сильно переделал под специалист. Получилось не идеально, но слушать (особенно если абсолютного слуха нет) можно. В спектрумовском оригинале, честно говоря, тоже не все ноты точные, но там, конечно, лучше.

tnt23
22.01.2019, 20:04
ivagor, я правильно понимаю, что оно рассчитано на доступ к портам как памяти? что куда копнуть для альтернативных систем, где бипер доступен через out?

Простите меня, я слоупок.

goodboy
22.01.2019, 20:07
В спектрумовском оригинале, честно говоря, тоже не все ноты точные
изначально Nick Jones создал мелодию на/под c64, а дальше уже примерно адаптировали

ivagor
22.01.2019, 20:58
tnt23, в векторовском эксолоне с outами, с ними чуть хуже получается, меньше диапазон в высокую область.

- - - Добавлено - - -

На всякий случай уточню, что когда писал про неточности нот в спековской версии, я говорил о биперном варианте музыки, не об AY.

CityAceE
23.01.2019, 06:00
Задача для спектрумистов, но я все же попробую.
Иван, в очередной раз спасибо! А спектрумистам, похоже, уже вообще ничего не нужно...

Перевёл мнемонику в привычную мне (z80) и добавил твой плеер в свои исходники. Теперь получилась почти что полноценная дема для Специалиста уровня начала 90-х. Только бегущей строки не хватает :) А так и картинки почти, как на Спектруме, и музыка почти, как на Спектруме.

Готовый к загрузке в эмулятор файл ищите в первом сообщении данной темы, а исходники прикреплены к этому сообщению. В целях экономии места, я не стал добавлять в архив SjASMPlus. Кому нужно, смогут его взять из исходников, прикреплённых к первому сообщению.

ivagor
23.01.2019, 07:01
Пару моментов вчера забыл написать.
1. Для выхода в монитор при проигрывании можно нажать F1-F11 (и еще какую-то клавишу, надо посмотреть раскладку клавиатуры специалиста)
2. Данный плеер будет неправильно работать на z80, т.к. в одном месте используется проверка флага четности после инкремента. Это не проблема, просто особенность, т.к. для z80 можно или использовать оригинальный плеер или написать более быстрый.

- - - Добавлено - - -

Еще хочу написать, что смог быстро отреагировать только потому, что раньше разбирался с векторовским эксолоном.

CityAceE
23.01.2019, 07:17
Ещё раз перечитал историю создания векторовской версии Exolon'а. Видимо, не так просто будет его адаптировать к Специалисту. И похоже, что лучше всего при адаптации как раз опираться на версию Вектора - там хотя бы учтены тормоза i8080. Но с другой стороны, там для синхронизации используется таймер, который отсутствует в Специалисте.


Еще хочу написать, что смог быстро отреагировать только потому, что раньше разбирался с векторовским эксолоном.
Посмотрим, вдруг кто-то всё-таки примет вызов и сумеет сделать ещё лучше! ;)

ivagor
23.01.2019, 09:12
У векторовского эксолона для определения текущего положения луча используется таймер, а таймер перед этим привязывается к лучу с помощью прерывания. Но это в основном связано именно с векторовскими особенностями, что опрос клавиатуры и программирование палитры можно делать только в определенные интервалы времени относительно развертки. А автор захотел еще стек использовать для рисования и запрещает прерывания.
Т.е. если не на векторе, то таймер и прерывания не критичны.

ivagor
23.01.2019, 21:24
Разогнать основной цикл проигрывателя (и соответственно расширить вверх диапазон воспроизводимых нот) вряд ли получится, а вот сократить и подравнять побочные ветки можно. Правда нужно будет больше памяти. Реализация этого подхода - версия V2, в которой (по крайней мере должно быть) меньше посторонних призвуков и обертонов.
Также не могу не поделиться своеобразной версией V2weird, которая хуже первого варианта и V2 по скорости основного цикла/диапазону, но (по крайней мере мне) было интересно подтвердить на практике, что так тоже можно. Там освободились 2 регистра, которые можно использовать или для ускорения реинициализации счетчиков каналов или для ускорения внешнего цикла длительности (сам бы я выбрал 1й вариант).
Плюс эти версии могут работать на z80, хотя для гладкости на z80 их надо слегка подтюнинговать.

- - - Добавлено - - -


Разогнать основной цикл проигрывателя (и соответственно расширить вверх диапазон воспроизводимых нот) вряд ли получится
Когда еще раз взглянул на V2, то заметил, что получится заметно разогнать/расширить диапазон, да еще и немного сократить размер. V2 удалил, V2weird оставил в качестве курьеза.

CityAceE
24.01.2019, 02:51
Обновил exolon.rks в первом сообщении с новым плеером от ivagor.

ivagor
24.01.2019, 07:14
Вчера прикинул - основной цикл V3 на орионе (8080 на 2.5 МГц) догонит и даже немного перегонит оригинал (z80 3.5 МГц).
Насчет Pause - если играть только 2 штатные мелодии, то эту процедуру можно убрать, пауз там нет. А если даже писать свои мелодии с паузами, то ее можно и нужно оптимизировать, сведя к простому калиброванному циклу.

ivagor
25.01.2019, 19:43
Если не ориентироваться на применение проигрывателя в программе, а смотреть на него как на отдельную задачу, то получается офигенный результат. Развернул циклы - избавился от внутреннего счетчика. Убрал все балластные команды (теперь основной цикл и без них ровный). Основной цикл ускорился настолько, что стал быстрее цикла спековского проигрывателя. Пришлось пересчитать периоды нот. Плата за все это - всего то 10 Кб памяти.
Кода Максима Китченко здесь уже совсем нет. В V3 была пауза, которая не использовалась.

goodboy
25.01.2019, 19:53
Развернул циклы - избавился от внутреннего счетчика.
...
Плата за все это - всего то 10 Кб памяти
в первых плейерах мелодии хранились вообще сразу в виде частот (даже не выбирались из таблицы)
хранение мелодии в виде байткода появилось чуть позже.
возможно и тут можно применить такой подход

ivagor
25.01.2019, 20:03
Проблема была в том, что медленность основного цикла не позволяла играть высокие ноты этой мелодии, а теперь основной цикл достаточно (и даже более чем) быстрый.
Хранение нот в виде частот чуть-чуть ускорит проигрывание, но на диапазон извлекаемых звуков не повлияет. При необходимости ускорить проигрывание проще делить длительности на какую-то константу.

jerri
26.01.2019, 23:25
как это работает?
спец вроде чб?

fifan
27.01.2019, 08:05
как это работает?
спец вроде чб?

Специалист цветной.

jerri
27.01.2019, 21:43
fifan, как цвета задаются?

balu_dark
27.01.2019, 23:50
fifan, как цвета задаются?

В регистр ВВ55 кладется 3 бита цвета. все записываемые в экран после этого точки будут окрашены в соответствующий цвет. тоест запулил в порт зеленый цвет - потом рисуешь все точки которые должны быть зелеными . поменял цвет на красный - прорисовываешь все красные. итд. Если не ошибаюсь - цвет идет на 8 бит полоску. PAPER в обычном специалисте не используется, только в МХ (Fifan: подправил - просто МХ, МХ2 - это совмещение std и MX).

fifan
28.01.2019, 08:13
Смотрите описание контроллера цвета (http://www.spetsialist-mx.ru/index3.html) (низ страницы).

jerri
28.01.2019, 11:06
Смотрите описание контроллера цвета (http://www.spetsialist-mx.ru/index3.html) (низ страницы).

Бро, мне вот эти вот полосочки и квадратики с циферками как китайская грамота.
код цвета то куда писать? и как он выглядит?

HardWareMan
28.01.2019, 11:38
jerri, сказали на прошлой странице. Для стандарта это системный ППА, биты порта PC6/PC7 для 5-ти цвета или биты порта PC4/PC6/PC7 для 8-ми цвета. Для МХа есть регистр цвета, содержащий INK и PAPER.

CityAceE
28.01.2019, 12:46
код цвета то куда писать? и как он выглядит?
Записываем код цвета в ячейку #FF02 и все последующие записанные байты в экранное ОЗУ будут этого цвета до тех пор, пока в #FF02 не будет записан другой цвет. Погашенные пиксели всегда чёрного цвета.

Коды цветов:



; Числовые значения для цветов Специалиста
black equ #d0
blue equ #c0
red equ #50
magenta equ #40
green equ #90
cyan equ #80
yellow equ #10
white equ #00

fifan
28.01.2019, 16:07
Вот установка цвета, взято с программы SpetsBrowser:

ld a, #80 ; голубые символы на чёрном фоне
ld (#f802), a ; занос кода цвета для STD

ivagor
17.04.2020, 17:05
Более-менее разобрал векторовский эксолон и его не получится малой кровью адаптировать на специалист, не хватит памяти. В принципе некоторые резервы есть, можно использовать часть экрана (как в jet set), можно упаковать уровни и временно распаковывать перед рисованием очередного уровня (например на экран). И придется часть буферов перенести, а то на специалисте они как раз попадают в экран. Ну и скорость будет очень умеренная. На MX портануть гораздо реальнее, если не нужны трудности, то лучше сразу ориентироваться на него.

CityAceE
17.04.2020, 17:48
В принципе некоторые резервы есть, можно использовать часть экрана (как в jet set), можно упаковать уровни и временно распаковывать перед рисованием очередного уровня (например на экран).
Ну это же не проблема! Там на экране достаточно свободной памяти. Если я ничего не путаю, то две непрерывных области по 2 кб получается по бокам. Плюс верх и низ, неверное, как-то можно задействовать под мелочь, например, под спрайты длиной до 32-х байт. Ну и распаковка по мере необходимости - её даже не Спектруме используют регулярно.


На MX портануть гораздо реальнее, если не нужны трудности, то лучше сразу ориентироваться на него.
Я бы, конечно, хотел иметь работающий вариант для стандартного Специалиста.

ivagor
18.04.2020, 10:52
Уточню показания для протокола. Векторовский эксолон все же впритык подходит для специалиста (с умеренным количеством хак) и даже цвет можно сделать почти бесплатно. Если оставить служебные области как есть, то экран будет сдвинут вправо почти до упора. Если перенести пару буферов, то можно сделать экран по центру. Неприятный момент - по бокам экрана, если радикально не менять распределение памяти, попадают изменяемые служебные области и там постоянно будет что-то меняться и мельтешить. С использованием 8цветного режима это можно скрыть черным цветом (как делал в модификации jetset, может и раньше на специалисте так делали).
Про скорость показания не меняю, она будет очень умеренная.

CityAceE
18.04.2020, 11:06
Векторовский эксолон все же впритык подходит для специалиста (с умеренным количеством хак) и даже цвет можно сделать почти бесплатно.
Отличные новости!


Неприятный момент - по бокам экрана, если радикально не менять распределение памяти, попадают изменяемые служебные области и там постоянно будет что-то меняться и мельтешить.
Я думаю, что на ч/б версии это можно будет пережить. Либо со временем можно будет поменять разбивку памяти и поместить в экран статичные участки кода.


Про скорость показания не меняю, она будет очень умеренная.
Не очень ясно почему при том же процессоре, что и в Векторе, скорость будет ниже? Но даже если и ниже, всё равно игра стоит свеч!

ivagor
18.04.2020, 11:26
Не очень ясно почему при том же процессоре, что и в Векторе, скорость будет ниже?
Векторовская версия сама по себе не чемпион по скорости, а специалист еще процентов на 20 медленнее вектора. Это я прикидываю уже с учетом векторовского торможения, не просто сравниваю частоты процов. Немного оптимизировать можно, но вряд ли получится видимый невооруженным взглядом эффект.

- - - Добавлено - - -

Еще очень мелкий момент. Со звуком с одной процедуркой надо еще будет подумать, как адаптировать. Хотя в векторовской версии биперный звук, но в одном случае он с участием таймера.

CityAceE
18.04.2020, 11:32
Со звуком с одной процедуркой надо еще будет подумать, как адаптировать.
Раз ты уже сделал такой крутой проигрыватель мелодии из Exolon'а, то уверен, что и с этой процедурой у тебя всё получится. В конце концов, всегда можно подглядеть в исходники от Spectrum-версии - там таймер точно не было :)

ivagor
18.04.2020, 12:07
В конце концов, всегда можно подглядеть в исходники от Spectrum-версии - там таймер точно не было
Таймера там не было, но там был z80 с регистром R. Скорее всего замена на LFSR даст сходный эффект.

- - - Добавлено - - -

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

zx_
18.04.2020, 15:40
ви53 можно в специалисте звучок
как вариацию, для sp580
в линевском новом-старом специалисте тож есть ви53

ivagor
19.04.2020, 15:39
Наверно можно похвастаться, сделал предварительную lite версию (без цвета, без звука и со стартовым экраном от векторовской версии). Удалось убрать все буферы с экрана, мусора нет даже без цвета. Теперь два варианта развития событий - или доделаю или, если долго будет лежать, выложу как есть.

CityAceE
19.04.2020, 16:07
А как бы увидеть эту промежуточную версию? :)


Теперь два варианта развития событий - или доделаю или, если долго будет лежать, выложу как есть.
Обязательно нужно доделывать!

ivagor
19.04.2020, 16:14
Похоже окончательная версия визуально будет выглядеть как предварительная, цвета не будет. В статике цвет получился "бесплатный", как я имел неосторожность писать ранее, а в динамике портится и из векторовского прототипа просто переделать восставновление испорченных цветов не получится. Но нет худа без добра, окончательная версия стала ближе.
Пока выкладывать предварительную не хочу, но если затяну, то выложу, как обещал.

CityAceE
19.04.2020, 16:35
цвета не будет
Утро вечера мудренее. Поспишь, глядишь и светлая мысль посетит, как прикрутить бесплатно, ну или почти бесплатно, цвет. В любом случае, уже есть от чего отталкиваться. И это просто замечательно!

Ждём хоть какую-нибудь версию!

ivagor
19.04.2020, 17:51
Звук сделал, осталось поправить надписи на стартовом экране.
Вопрос - выкладывать бессмертную версию или с нормальным уменьшением жизней? Мне самому нравится бессмертная, выход в меню для желающих есть по нажатию клавиш.

- - - Добавлено - - -

Собственно результирующий EXOLON для Специалиста.
CityAceE, спасибо за начало темы, мотивацию и поддержку! И всем кто поддерживал явно и неявно - спасибо!

UPD 30.05.2020: Последние версии здесь (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828)

fifan
19.04.2020, 18:05
А цвета нет? Если есть, то как запустить в цвете? У меня в emu не получается.

ivagor
19.04.2020, 18:10
А цвета нет?
Как я уже писал

окончательная версия визуально будет выглядеть как предварительная, цвета не будет

Shumadan
19.04.2020, 19:06
ivagor, спасибо. Поиграл в эмуляторе. Прошло несколько экранов, каких либо косяков не заметил. Отсутствие цвета для меня не критично, если что подключу к Спецу зеленый моник)

zx_
19.04.2020, 19:52
ivagor, вот так
спасибо

fifan
19.04.2020, 20:46
цвета не будет
Жаль.

SYR-ALEX
19.04.2020, 21:00
Жаль конечно , что без цвета . Запускал на Специалист-М , ЭРИК и СЯБР . Полёт нормальный . На СЯБРе пробовал с разными процами и на разных частотах - работает . На ЭРИКе и СЯБРе (в TURBO) скорость заметно выше . Т.е. есть потенциал для цвета ;)

jerri
19.04.2020, 21:27
ivagor, а знаменитый баг Рафаеля в этой версии пофиксен?

goodboy
19.04.2020, 22:40
прыжок за границы экрана ?

CityAceE
20.04.2020, 04:28
Собственно результирующий EXOLON для Специалиста.
Это просто волшебство какое-то! Я не верю своим глазам! Жаль только, что данная конверсия случилась не 30 лет назад... Но лучше поздно, чем никогда. Результат потрясающий! И скорость вполне себе. Огромное спасибо за проделанную работу!


выкладывать бессмертную версию или с нормальным уменьшением жизней?
С бесконечными жизнями нет возможности заполнять таблицу рекордов и не услышать мелодию Game Over :( Гораздо круче было бы оставить фирменный чит ZORBA. Тем более, что управление всё равно только от клавиатуры. Я бы изменил второй пункт меню на REDEFINE KEYS и дал бы пользователю возможность задавать клавиши, в том числе и ZORBA ;)


цвета не будет
Там во что сейчас упирается? В быстродействие, в нехватку памяти, или во что-то ещё? Очень хотелось бы цвет :) Если цветная игра будет тормозить, то можно было бы в главном меню его отключать.

Иван, расскажи, пожалуйста, хотя бы вкратце как проходил процесс адаптации.

P.S. Добавил ссылку на игру со скриншотами в первый пост.

P.P.S. Эх, вот если бы ещё кто-то Batty со Спектрума перенёс... Batty - вторая игра, которой мне на Специалисте не хватало и не хватает до сих пор. Там точно можно было бы "бесплатный" цвет организовать. Там кода мало и половина памяти даже в Спектруме пустует. Навскидку технических проблем не должно возникнуть. Но для неё нет ни исходников, ни ранних конверсий на КР580ВМ80А.

ivagor
20.04.2020, 07:59
ivagor, а знаменитый баг Рафаеля в этой версии пофиксен?

прыжок за границы экрана ?
Проверял на этом экране (https://spectrumcomputing.co.uk/forums/viewtopic.php?t=1280#p18498) прыжком как на gifке, все было нормально.

С бесконечными жизнями нет возможности заполнять таблицу рекордов. Гораздо круче было бы оставить фирменный чит ZORBA. Тем более, что управление всё равно только от клавиатуры. Я бы изменил второй пункт меню на REDEFINE KEYS и дал бы пользователю возможность задавать клавиши, в том числе и ZORBA
Тут я разочарую, в векторовской версии редактирование клавиш и таблица рекордов вырезаны. Теоретически можно их реставрировать из спековской версии, но мне это не очень интересно.

Там во что сейчас упирается? В быстродействие, в нехватку памяти, или во что-то ещё?
Да, это две основные причины. Память скорее всего удастся освободить, хотя ее осталось очень мало (но уж если ее использовать, то имхо лучше для цвета, чем для редактирования клавиатуры и рекордов). А вот с быстродействием тяжело. Более-менее реален компромиссный вариант, при котором тайлы разноцветные, а спрайты - одноцветные. Но и для него надо сильно переделывать вывод спрайтов. Для турбо-клонов, которые упомянул SYR-ALEX это реалистично, а для классики, на мой взгляд - не очень.
У этой проблемы могло бы быть очень простое аппаратное решение и даже не одно. Или возможность чтения в регистр из памяти цвета (как было сделано в клоне Радуга) или отключаемая блокировка записи в память цвета. Тогда "бесплатный" цвет уже был бы, но история не имеет сослагательного наклонения и все такое.

- - - Добавлено - - -

Еще можно немного оптимизировать вывод спрайтов, но вряд ли ускорение будет заметно невооруженным глазом.

- - - Добавлено - - -


вот если бы ещё кто-то Batty со Спектрума перенёс
Присоединяюсь, а я бы тогда на вектор (ну и может еще куда-нибудь) портанул.
Кстати, векторовского эксолона вполне реально портануть, причем с цветом (пусть и с описанным компромиссным) и на другие советские ретрокомпы: Корвет, Орион-128, ПК8000(slow version)/8002. Это не исчерпывающий список, просто то, что вспомнилось в первую очередь.

- - - Добавлено - - -


как проходил процесс адаптации.
Сначала долго (по моим меркам несколько дней - это долго) копал векторовский эксолон, выясняя где какие процедуры (частично он был уже разобран много лет назад, но там копал очень выборочно). Дизассм спековского эксолона (esl, он не увидит, но спасибо ему) весьма помог, хотя части процедур нет в векторовской версии (и наоборот), а часть вещей реализована иначе.
Потом решился и за один день (если не считать заранее портированной музыки) адаптировал для специалиста. Процесс я "запротоколировал" и могу даже привести список этапов:
1. Перенос буферов за пределы экрана специалиста
2. Убил цвет спрайтов и тайлов + аналогично cls.
3. Убрал outы. На этом моменте игрушка перестала запускаться на векторе. Добавил опрос клавиатуры Специалиста и этот вариант впервые попробовал на специалисте (в emu).
4. Перевернул вывод тайлов и спрайтов и отцентровал экран.
5. Добавил цвет, разочаровался, что легкой победы не будет.
6 (на базе п. 4, не п. 5). Адаптировал звук.
7. Откорректировал тексты на стартовом меню и запаковал.
Начал утром, закончил вечером. Но, повторюсь, без многодневной подготовки такой сравнительно шустрый финальный рывок был бы невозможен.

- - - Добавлено - - -


не услышать мелодию Game Over
В эмуляторе можно войти в отладчик и заменить байт по адресу 41D6 с 00 на 3D, тогда жизни будут уменьшаться и дело дойдет до Game Over.

CityAceE
20.04.2020, 10:38
Проверял на этом экране прыжком как на gifке, все было нормально.
Подтверждаю:
https://pic.maxiol.com/images2/1587367178.90460257.exolonivagor.gif http://sky.relative-path.com/zx/misc/Exolon%20Crash%20Bug.gif


Теоретически можно их реставрировать из спековской версии, но мне это не очень интересно.
Жаль! Хотелось бы, конечно, иметь максимально приближенный вариант к оригиналу.


Но и для него надо сильно переделывать вывод спрайтов.
Ну может быть со временем всё-таки вернёшься к этому проекту и доделаешь? ;) А вообще поделись информацией о том, в каких местах требуется знать, какой цвет точки находился на экране? Это не очень очевидно, так как даже ты вначале думал, что можно будет обойтись малой кровью.


Присоединяюсь, а я бы тогда на вектор (ну и может еще куда-нибудь) портанул.
Думаю, что для подобной работы нужна серьёзная мотивация. А таких людей на форуме скорее всего нет. Если заняться адаптацией Batty сегодня, то, вероятно, на первом этапе нужно будет всё дизассемблировать. А имея исходный код, уже потом не сильно сложно будет перенести игру на весь парк платформ i8080. Возможно, стоит скооперироваться с коллегами из соседних разделов для получения дизассемблера, чтобы в конечном итоге иметь игру для целого ряда платформ.


Процесс я "запротоколировал" и могу даже привести список этапов
Спасибо за эту информацию! Очень познавательно. Как я понимаю, ты вносил правки прямо по живому коду, не имея полного дизассемблера игры?


5. Добавил цвет, разочаровался, что легкой победы не будет.
А хоть одним глазком можно на этот забракованный вариант посмотреть?


Начал утром, закончил вечером.
Капец! Вот это скорость, даже делая скиду на все подготовительные работы!


В эмуляторе можно войти в отладчик и заменить байт по адресу 41D6 с 00 на 3D, тогда жизни будут уменьшаться и дело дойдет до Game Over.
А может можно хотя бы горячую клавишу в главное меню добавить?

ivagor
20.04.2020, 10:57
поделись информацией о том, в каких местах требуется знать, какой цвет точки находился на экране? Это не очень очевидно, так как даже ты вначале думал, что можно будет обойтись малой кровью.
Скорее я практически не думал про цвет до последнего момента, поэтому так получилось.
Что касается мест связанных с цветом, то я бы выделил 7950h (часть моей хаки для спрайтов, а старшая часть смещения для вывода спрайта, на основе которой генерировал цвет спрайтов, по адресу 01A5) и адреса 3B15, 3B66, 3BAD, 3C05 и 3C65 - здесь устанавливается цвет тайлов.


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


ты вносил правки прямо по живому коду, не имея полного дизассемблера игры?
Да, я хакал код и параллельно правил/доделывал дизассм. Дизассм не полный, но по выводу на экран, клавиатуре и звуку там 100% есть (ну и почти все остальное тоже).


А может можно хотя бы горячую клавишу в главное меню добавить?
Если буду доделывать что-то еще, то добавлю, но ради одной этой штуки не хочется.

jerri
20.04.2020, 19:53
ivagor, нет. Просто у Рафаеля есть замедление при малом количестве обьектов на экране. Чтобы скорость сильно не плавала.
Но скорость плавает, потому что он забыл уменьшать замедлялку при добавлении обьектов. Как то так.

ivagor
20.04.2020, 20:18
В спековской версии с замедлением ошибка только наполовину, он забыл увеличивать счетчик спрайтов 16x16, а счетчик 8x8 правильный. В векторовской и специалистовской версии оба счетчика увеличиваются правильно, только уменьшена (т.к. быстродействие меньше) амплитуда замедления, а замедление 8x8 так вобще срабатывает только если на экране совсем нет маленьких спрайтов.

ivagor
21.04.2020, 18:16
Примерно продумал сравнительно простой вариант добавления цвета тайлов. Но нужны дополнительная память и скорость. Если все же делать, то подходящих целевых платформы две: условный MX-турбо и Эрик.
Эрик по памяти и быстродействию вполне подходит, но его штатная графика для эксолона не очень, а эрик со стандартным восьмицветом слишком уникальный на данный момент, хотелось бы что-то более массовое.
В качестве условного MX-турбо мог бы выступить Сябр или MX2, но я не очень понял - сколько в реальности их турбо-вариантов и с какими характеристиками? Во всех MX2 есть режим 2.5 МГц? Есть ли >1 Сябра с процессорной платой >2 МГц (и с маппером MX или MX2)?
Может еще есть какие-то Специалисты-турбо?

zx_
21.04.2020, 18:34
можно и обычный специалист турбировать , 2,5 мгц
в глубине веков было такое, Barsic писал

CityAceE
22.04.2020, 01:39
Но нужны дополнительная память и скорость.
Для цветной версии можно задействовать 4 Кб экранной памяти по бокам от изображения, закрасив их чёрным. Собственно, как ты и предлагал.
Что касается быстродействия, то тут уж ничего не попишешь: или цвет, или скорость. Главное, не блокировать запуск цветной версии на моделях без турбо. В идеале - сделать выбор в главном меню игры.

ivagor
22.04.2020, 06:27
Для цветной версии можно задействовать 4 Кб экранной памяти по бокам от изображения, закрасив их чёрным.

Главное, не блокировать запуск цветной версии на моделях без турбо.
Для простого в реализации варианта нужно 8 Кб дополнительной памяти одним куском (т.е. блокировка запуска на стандарте получилась бы автоматом). Можно в принципе обойтись и 4 Кб в двух кусках и даже меньшими объемами памяти, но каждая уступка на этом пути означает усложнение программы (=>уменьшение желания ее делать) и уменьшение скорости.
Возможно все это (турба и супер-специалисты с дополнительной памятью) от лукавого, и просто эксолон ждет новых героев, которые смогут сделать быстрый и влезающий в стандарт цветной вариант.

zx_
22.04.2020, 11:43
да , наверное ,чтото писать под супер специалист нет смысла
натягивание на глобус

как про меня , - очень рад чернобелой версии
такое увидеть на специалисте - уже считай прожил не зря)

Lethargeek
22.04.2020, 22:12
Да, это две основные причины. Память скорее всего удастся освободить, хотя ее осталось очень мало (но уж если ее использовать, то имхо лучше для цвета, чем для редактирования клавиатуры и рекордов). А вот с быстродействием тяжело. Более-менее реален компромиссный вариант, при котором тайлы разноцветные, а спрайты - одноцветные. Но и для него надо сильно переделывать вывод спрайтов. Для турбо-клонов, которые упомянул SYR-ALEX это реалистично, а для классики, на мой взгляд - не очень.
У этой проблемы могло бы быть очень простое аппаратное решение и даже не одно. Или возможность чтения в регистр из памяти цвета (как было сделано в клоне Радуга) или отключаемая блокировка записи в память цвета. Тогда "бесплатный" цвет уже был бы, но история не имеет сослагательного наклонения и все такое.
но почему? вроде как чтобы получить раскраску как в спектрум-версии, включая спрайты, хватит массива 32x22 нибла (то есть 352 байта); неужели проверять в массиве цвет сложнее, чем из порта?

NEO SPECTRUMAN
23.04.2020, 00:40
Но скорость плавает, потому что он забыл уменьшать замедлялку при добавлении обьектов. Как то так.
тоесть
оно тормозит больше чем на самом деле?
а есть покошенная версия?

ivagor
23.04.2020, 06:28
но почему? вроде как чтобы получить раскраску как в спектрум-версии, включая спрайты, хватит массива 32x22 нибла (то есть 352 байта);
Как я написал далее

Можно в принципе обойтись и 4 Кб в двух кусках и даже меньшими объемами памяти, но каждая уступка на этом пути означает усложнение программы (=>уменьшение желания ее делать) и уменьшение скорости.
Если кто-то сделает быструю цветную версию с маленьким буфером атрибутов, то это будет очень круто. И дело, кстати, не только в чистой скорости, но еще желательно бы сохранить построчный вывод спрайтов, чтобы их разрывы, когда на них попадает луч, были менее заметны. Но тут противоречие, т.к. в быстрой версии на основе небольшого буфера атрибутов оптимально по скорости выводить познакоместно.

- - - Добавлено - - -


оно тормозит больше чем на самом деле?
Там, где мало спрайтов 16x16, спековский эксолон тормозит меньше, чем задумывал автор.

Lethargeek
23.04.2020, 06:49
Как я написал далее
Можно в принципе обойтись и 4 Кб в двух кусках и даже меньшими объемами памяти, но каждая уступка на этом пути означает усложнение программы (=>уменьшение желания ее делать) и уменьшение скорости.
но при этом почему-то названа решением проверка цвета через порт, которая тоже не бесплатна, тоже "усложняет и уменьшает", вот я и удивился, разницы с массивом дб немного

ivagor
23.04.2020, 07:00
но при этом почему-то названа решением проверка цвета через порт, которая тоже не бесплатна, тоже "усложняет и уменьшает", вот я и удивился, разницы с массивом дб немного
Если речь про это мое утвержднние

У этой проблемы могло бы быть очень простое аппаратное решение и даже не одно. Или возможность чтения в регистр из памяти цвета (как было сделано в клоне Радуга) или отключаемая блокировка записи в память цвета. Тогда "бесплатный" цвет уже был бы, но история не имеет сослагательного наклонения и все такое.
то здесь не говорится о проверке цвета через порт. Процу в описанных случаях не нужно знать/проверять цвет, все было бы сделано аппаратно и "бесплатно". "Чтение в регистр (как было сделано в клоне Радуга)" это чтение из памяти цвета не в регистр процессора, а в аппаратный регистр, из которого потом будет запись обратно в память цвета.

Lethargeek
23.04.2020, 09:31
то здесь не говорится о проверке цвета через порт. Процу в описанных случаях не нужно знать/проверять цвет, все было бы сделано аппаратно и "бесплатно". "Чтение в регистр (как было сделано в клоне Радуга)" это чтение из памяти цвета не в регистр процессора, а в аппаратный регистр, из которого потом будет запись обратно в память цвета.
так это даже вредно для эксолона

вот смотри, на экране существует три типа тайлов:
1) "переднего плана" - спрайты рисовать в них нельзя совсем
2) "заднего плана" - можно рисовать спрайты, но без изменения атрибута
3) "пустые" - можно рисовать цветные спрайты с изменением атрибута
(то есть условно пустые, где из фона только звёздочки-точки белые)

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

ivagor
23.04.2020, 09:47
Я писал про упрощенный цвет, абзацем выше

Более-менее реален компромиссный вариант, при котором тайлы разноцветные, а спрайты - одноцветные.
При этом то, что

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

Lethargeek
23.04.2020, 12:33
давало бы бесплатное чтение цветов тайлов,
которое в данном случае может только помешать, потому что нужный цвет уже выбран, и необязательно совпадает


и последующая запись не меняла бы цвет, т.е. спрайты не портили бы цвет тайлов.
так они как раз должны "портить" - там, где это разрешено атрибутной картой

ivagor
23.04.2020, 12:44
Lethargeek, я написал про свой вариант, в котором практически бесплатно получались цветные тайлы, а спрайты были бы без "своих" цветов, а ты пишешь про свой, в котором, как я понимаю, хочешь чтобы у спрайтов были "свои" цвета, как на спеке. Никто ведь не против, реализуй свой вариант.

CityAceE
23.04.2020, 13:25
Никто ведь не против, реализуй свой вариант.
Иван, а может вы объединитесь? Без твоей помощи всё равно никто ничего не сделает. Если бы ты дал какие-то процедуры, над которыми нужно помозговать, то может быть дело и сдвинулось бы с мёртвой точки.

ivagor
23.04.2020, 13:47
Думаю, что любой программист, который сможет придумать хороший вариант вывода спрайтов в эксолоне сможет и разобраться в том, что есть. Ключевой момент - наличие желания, с этим основная проблема.

zx_
23.04.2020, 14:05
всегда думал , что в специалисте цвет ничего не весит , в силу реализации
тоесть раскраска чб ничуть не тормозила игру

речь о первой реализации , где пять цветов
а не пследующих наворотах

CityAceE
24.04.2020, 12:31
ivagor, а ты мог бы, хотя бы в общих чертах, поделиться как ты себе представляешь добавление цвета, если у тебя будет много памяти и мегагерц? То есть для чего тебе большой буфер и т.д.?

Я пытаюсь прикинуть алгоритм и у меня вырисовывается только вариант с параллельной записью цвета в буфер, чтобы всегда можно было узнать какого цвета пиксель на экране. Для Спектрумовской графики максимально может понадобиться 768 байт, а минимально, конечно, в ущерб скорости - 384. При выводе графики сверху вниз столбцами по 8 пикселей, нужно будет записывать код цвет только один раз на 8 байт. То есть спрайт 8х8 - это максимуму 4 записи цвета, а 16х16 - 9.

ivagor
24.04.2020, 13:41
Я пытаюсь прикинуть алгоритм и у меня вырисовывается только вариант с параллельной записью цвета в буфер, чтобы всегда можно было узнать какого цвета пиксель на экране.
Да, я уже почти доделал такую версию для MX. Только у меня буфер атрибутов 8 Кб, чтобы быстрее выводить спрайты. Тайлы выводятся редко, а спрайты постоянно. Все равно, конечно, сильно тормозит.

о есть спрайт 8х8 - это максимуму 4 записи цвета, а 16х16 - 9.
Это если полностью переделать вывод спрайтов на познакоместный, я на это не решился и оставил построчный вывод.

CityAceE
24.04.2020, 14:08
я уже почти доделал такую версию для MX.
Отличные новости!


Это если полностью переделать вывод спрайтов на познакоместный, я на это не решился и оставил построчный вывод.
Работа, конечно, серьёзная, но мне кажется, что по сравнению со всем остальным достаточно несложная. А спрайты можно быстро скриптом на PC конвертировать - главное точно знать их расположение. Уверен, что ты с этим легко справишься, но если вдруг на это не будет времени/желания, то я с удовольствием готов помочь.

ivagor
24.04.2020, 14:57
Перетасовать исходные спрайты - не проблема. Спасибо за предложение по конверсии, но я при необходимости это в самой игрушке могу сделать.

Работа, конечно, серьёзная, но мне кажется, что по сравнению со всем остальным достаточно несложная.
На мой взгляд это самое сложное в конверсии эксолона. Не то, что это какая-то совершенно непонятная или высокоинтеллектуальная вещь, но там надо все продумать и сделать аккуратно и внимательно. Может когда-нибудь, но не сейчас. Концептуально более-менее все представляю, но вот делать это нет желания.
Ну и при познакоместном выводе, как я уже писал, при попадании луча на спрайт разрывы будут сильнее заметны/более неприятны на вид.

CityAceE
24.04.2020, 15:40
Концептуально более-менее все представляю, но вот делать это нет желания.
Да, я понимаю. Без желания ничего не получится...


Ну и при познакоместном выводе, как я уже писал, при попадании луча на спрайт разрывы будут сильнее заметны/более неприятны на вид.
Ты, помнится, предлагал вариант синхронизации с лучом, когда перед запуском основной программы, пользователь сначала вручную совмещает элементы на экране и потом, опираясь на эту полученную константу, выводятся последующие экраны с минимальным тирингом или вовсе без него.

ivagor
24.04.2020, 15:47
вариант синхронизации с лучом, когда перед запуском основной программы, пользователь сначала вручную совмещает элементы на экране и потом, опираясь на эту полученную константу, выводятся последующие экраны с минимальным тирингом или вовсе без него.
Это чисто спортивная штука, под нее надо делать и тюнинговать всю программу с нуля.

Lethargeek
24.04.2020, 17:58
Я пытаюсь прикинуть алгоритм и у меня вырисовывается только вариант с параллельной записью цвета в буфер, чтобы всегда можно было узнать какого цвета пиксель на экране.
а зачем нужно знать, какого цвета пиксель НА ЭКРАНЕ? это лишнее конкретно для эксолона

и да, в оригинале походу нет синхронизации с лучом вообще

ivagor
24.04.2020, 18:09
Тормозной (на 2 МГц) эксолон с цветом для MX (также в архиве rks для MX2). Недостатки кроме тормознутости:
1. Цвет спрайтов белый или "прозрачный"
2. Цвета тайлов немного урезаны
Тормознутость можно побороть турбой, например в emu80 есть такой готовый конфиг. В emu можно добавить мегагерцев руками (а можно не добавлять, работать будет).
Из доработок - вынес в меню включение/выключение чита на бессмертие.
Скорость даже в рамках выбранного подхода можно было увеличить тупо развернув все процедуры вывода спрайтов (я развернул только 8x8), но мне хотелось, чтобы основная программа поместилась в память обычного специалиста. За рамками 48 Кб используется только буфер атрибутов.
Новые баги игрового процесса тут вряд ли появятся, а вот баги расцвечивания могут вылезти, тестировал пока мало.

Upd 25.04.2020: добавил файл рамдиска для emu80 (просто для коллекции, удобнее грузить cpu)
Upd2: добавил образ дискеты
UPD 30.05.2020: Последние версии здесь (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828)

CityAceE
25.04.2020, 03:49
Тормозной (на 2 МГц) эксолон с цветом
Иван, огромное спасибо за то, что всё-таки сделал, хоть и не хотел! :)

К сожалению, я посмотреть эту версию так и не смог. До сего момента я имел дело только с обычной версией Специалиста. И у меня возникли проблемы с запуском игры на MX под Emu80. Всё, что я вижу, это только вот такой экран:

https://pic.maxiol.com/images2/1587775557.90460257.123.png

При попытке запуска PROGRAM.EXE компьютер на какое-то время задумывается, а потом перерисовывает тот же экран.

Зато я запустил RKS-версию на обычной конфигурации и смог оценить тормоза. Должен сказать, что если при такой скорости будет цвет, то играбельность всё ещё сохранятеся!

Titus
25.04.2020, 05:02
Тормозной (на 2 МГц) эксолон с цветом для MX (также в архиве rks для MX2). Недостатки кроме тормознутости:
А для 4-х и 8-тицветных специалистов версии не будет?

- - - Добавлено - - -

Побыстренькому сделал в своем эмуляторе Специалиста помимо 4 и 8-цветных режимов, еще и 16-цветный от MX. Правда, пока только с цветом чернил, без поддержки цвета бумаги.
Но почему-то глючит цвет в игре. Видно, что цвета правильные, но не портится только то, что рисуется однократно, обьекты фона.

Можно в двух словах описать, как реализован цвет?

https://pic.maxiol.com/images2/1587780030.1504841820.screenshot007x.png

ivagor
25.04.2020, 06:40
Запуск эксолона совершенно не отличается от запуска любой другой программы для MX в формате cpu+i80 или для MX2 в формате rks.
Простейшие варианты:
1. В emu (http://bashkiria-2m.narod.ru/) запускаем конфиг SpecialistMX (или в emu80 (https://zx-pk.ru/threads/27488-emu80-v-4.html) выбираем платформу Specialist-MX или Specialist-MX Turbo (Z80) ) и дропаем в окно эмулятора файл exolon.cpu из папки MX. В emu (но не в emu80!) можно даже запустить любой другой конфиг при старте эмулятора, при дропе cpu он все равно переключится на MX
2. В emu запускаем конфиг SpecialistMX2. Вводим команду R, появляется диалог выбора файла, выбираем exolon.rks из папки MX2. Когда загрузится запускаем командой G


Можно в двух словах описать, как реализован цвет?
Никаких хитростей у меня нет. По картинке можно предположить, что в эмуляторе есть какие-то проблемы при чтении или записи в область памяти C000-EFFF (там по адресам C000-DFFF хранится копия атрибутов), но я не уверен, это надо тестировать.

- - - Добавлено - - -


А для 4-х и 8-тицветных специалистов версии не будет?
Этот вариант не получится переделать, т.к. нужно озу по адресам C000-EFFF

- - - Добавлено - - -


Видно, что цвета правильные
При правильной работе ГлавГерой (Vitorc?) был бы белый.

ivagor
25.04.2020, 11:16
При попытке запуска PROGRAM.EXE компьютер на какое-то время задумывается, а потом перерисовывает тот же экран.
Если есть желание загрузить в RAM-диск и оттуда запустить, то надо загружать файл cpu, не i80. Пробовал в emu80: стартуем MX, он ждет ввода даты, загружаем exolon.cpu (Alt-L или через меню или через иконку на тулбаре), жмем Enter, появится каталог RAM-диска с PROGRAM.EXE, запускаем (наводим на файл и жмем Enter).

- - - Добавлено - - -

Еще способы запуска в emu:
1. Запускаем любой конфиг. File>Open>выбираем тип файлов AVSh files (*.cpu, *.mon)>загружаем exolon.cpu, запустится автоматом
2. Можно перекинуть файлы cpu и i80 в каталог с emu и стартовать с указанием файла в командной строке
EMU.exe exolon.cpu

- - - Добавлено - - -

Для emu80 я перечислил не все варианты загрузки, про них можно почитать в меню Помощь>Справка по платформе...

- - - Добавлено - - -

Добавил (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1059353&viewfull=1#post1059353) файл рамдиска для emu80, при большом желании можно запустить с него. Стартуем MX, видим приглашение ввода даты, загружаем ramdisk (Alt-E или в меню Файл>Загрузить RAM-диск...), жмем Enter, появится каталог диска, наводим на EXOLONMX и запускаем (Enter).

- - - Добавлено - - -

Добавил (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1059353&viewfull=1#post1059353) образ дискеты. Стартуем эмулятор MX (emu или emu80), появилось приглашение ввести дату, выбираем образ диска ExolonMX.odi в дисковод (удобнее иконкой на тулбаре, в emu80 - A, в emu - 1), жмем Enter и попадаем в RAMFOS, жмем F6 и загружается дискета. Курсором влево переходим на панель дискеты, наводим на EXOLONMX.EXE, жмем F6, появляется запрос *Run*? - жмем Enter и игра запускается.

CityAceE
25.04.2020, 12:43
ivagor, большое спасибо! Удалось запустить и самый первый вариант в двух эмуляторах простым перетаскиванием файла.

Цветная версия реально впечатляет! Очень и очень круто! Тормоза незначительны и простительны. Если такая же скорость будет возможна и на обычном Специалисте, то, однозначно, игра стоит свеч!

Конечно, несоответствие цвета в некоторых местах бросается в глаза, но в целом это никак не портит впечатление от игры. Результат, безусловно, очень впечатляет! Ещё раз большое спасибо за эту изумительную конверсию! Сейчас добавляю ссылку на файлы и скриншоты в первый пост.

Titus
25.04.2020, 13:50
Никаких хитростей у меня нет. По картинке можно предположить, что в эмуляторе есть какие-то проблемы при чтении или записи в область памяти C000-EFFF (там по адресам C000-DFFF хранится копия атрибутов), но я не уверен, это надо тестировать.
Так она еще и читается в MX?

Лучше просто кратко опиши структуру и принцип работы видопамяти в MX, и я так сделаю.

ivagor
25.04.2020, 14:17
Так она еще и читается в MX?
Нет, не читается

Описание можно посмотреть на сайте fifanа тут (http://www.spetsialist-mx.ru/index8.html) или сразу по распределению памяти тут (http://www.spetsialist-mx.ru/index18.html). Хотя распределение памяти возможно даже продуктивнее смотреть в конфиге emu. Ну и бронейбойный вариант, перед которым ничто не устоит - посмотреть исходники emu80.

Titus
25.04.2020, 14:49
Нет, не читается
Лучше, скажи, как она работает, чем как она не работает) Ты же написал под нее программу, значит знаешь, как работает.
Я смотрел сайт fifan'а, но там описание скорее для железячников, чем для программистов.
Там не нашел описание работы цветного экрана.

- - - Добавлено - - -

Я кажется понял. Ты используешь дополнительное (относительно стандартного Специалиста) ОЗУ в области 0xC000. А у меня там находится ПЗУ.

- - - Добавлено - - -

Добавил ОЗУ с 0xC000, цвет заработал нормально, за исключением того, что персонаж красный, а не белый)

ivagor
25.04.2020, 15:02
цвет заработал нормально, за исключением того, что персонаж красный, а не белый
В emu и emu80 все нормально (белый).

Titus
25.04.2020, 15:03
Все получилось)
Спасибо)

p.s.: Просто не хотелось делать поддержку MX целиком, а хотелось запустить игру)

https://pic.maxiol.com/images2/1587816156.1504841820.screenshot009.png

fifan
25.04.2020, 16:06
Я смотрел сайт fifan'а, но там описание скорее для железячников, чем для программистов.
Там не нашел описание работы цветного экрана.
Искать нужно лучше. Ниже таблица с данными кода цвета, а код цвета пишется в порт цвета FFF8H. Вот описание со страницы (http://www.spetsialist-mx.ru/index23.html): "Код цвета записанный в контроллер (цвета) постоянно хранится в нём. При записи информации в экранную область памяти, код цвета из регистров порта параллельно записываются в ОЗУ".

http://www.spetsialist-mx.ru/images/colortable2.png

Titus
25.04.2020, 16:07
Искать нужно лучше. Ниже таблица с данными кода цвета, а код цвета пишется в порт цвета FFF8H. Вот описание со страницы (http://www.spetsialist-mx.ru/index23.html): "Код цвета записанный в контроллер (цвета) постоянно хранится в нём. При записи информации в экранную область памяти, код цвета из регистров порта параллельно записываются в ОЗУ".

http://www.spetsialist-mx.ru/images/colortable2.png
Это я как раз видел, и сделал еще вчера.
Мне были непонятны другие нюансы работы MX. Но их уточнил ivagor, и все получилось.

fifan
25.04.2020, 16:11
Последняя цветная версия игры прекрасно работает в эмуляторе emu. Большое спасибо автору за проделанную работу! Переписываю программу на SD карту и попробую на Сябре в различных режимах.

zx_
25.04.2020, 16:11
у fifan сайт лабиринт и сайт ловушка
что-то там найти непросто
авторская работа, что тут скажешь

b2m
25.04.2020, 16:23
у fifan сайт лабиринт
Да, меню у него, конечно, это что-то. Догадаться, что оно на каждой страничке разное - непросто. Нестандарт. Только истинный ценитель ПК Специалист найдёт всё.

Titus
25.04.2020, 16:33
у fifan сайт лабиринт и сайт ловушка
что-то там найти непросто
авторская работа, что тут скажешь

Соглашусь.

- - - Добавлено - - -


Да, меню у него, конечно, это что-то. Догадаться, что оно на каждой страничке разное - непросто. Нестандарт. Только истинный ценитель ПК Специалист найдёт всё.
И с этим тоже)

Сайт полезный, но искать надо внимательно)

HardWareMan
25.04.2020, 18:13
Да не, нормально там всё. Вот например, ищите вы МХ2. На главной МХ2 нет, только МХ. Ну логично же, что он будет там? Тыкаете на МХ и сразу же появляется ссылочка на МХ2. :) По большому счёту, там более-менее релевантно инфа находится. На главной - оригинальный спец из МК. А всё остальное - уже по ссылочкам.

CityAceE
26.04.2020, 10:06
ivagor, я никак не успокоюсь! :) Я правильно понимаю, что для обеспечения той же скорости на обычном Специалисте банально не хватает ОЗУ? А если использовать место по бокам ZX-экрана, закрашенное в чёрный цвет? А если ZX-экран прижать к краю, чтобы появились непрерывные 4 КБ после #9000?

Уже сейчас этот порт является самой крутой монохромной игрой для ПК "Специалист" (на втором месте у меня Down to Earth (можно было бы и получше раскрасить), а на третьем Jet Set Willy), но при наличии цвета для стандартного Специалиста эта игра стала бы абсолютным чемпионом. Пока что среди цветных игр в моём личном топе находится игра "Цветные линии" от vinxru, которая максимально использует цвет.

ivagor
26.04.2020, 10:32
Я правильно понимаю, что для обеспечения той же скорости на обычном Специалисте банально не хватает ОЗУ?
Примерно так, по крайней мере на текущем этапе моего осмысления. Но нужно все же 8.75 Кб, или хотя бы 8 и все одним куском.
По поводу выложенного цветного варианта для MX. Его можно считать иллюстрацией того, как выглядел бы эксолон в цвете на обычном специалисте (поэтому я для программы не использовал память >32 Кб) при наличии у него одной из фич, про которые писал - или возможности отключать запись в память цвета или возможности читать в аппаратный регистр из памяти цвета (и записывать из регистра). И скорость при этом была бы как у ч/б версии.
Если подумать, то специально для MX лучше бы сделать иначе. Заменяем большой буфер атрибутов на теневой буфер экрана (маленький буфер атрибутов и так есть). Рисуем в теневом буфере и по мере необходимости познакоместно(!) копируем на основной экран, сверяясь с маленьким буфером атрибутов. При этом и спрайты можно было бы сделать цветными и избежать купюр в цвете тайлов. Скорость скорее всего была бы близка к выложенной цветной версии (т.е. медленно), зато цвет был бы почти полный и разрывы спрайтов практически незаметны.
Цветную версию для классики детально не продумывал.


Jet Set Willy
Минутка саморекламы, восьмицвет (https://zx-pk.ru/threads/9666-spetsialist-rekompilyatsiya.html?p=959726&viewfull=1#post959726) для классики, полноцвет (https://zx-pk.ru/threads/9666-spetsialist-rekompilyatsiya.html?p=961377&viewfull=1#post961377) для MX.

zx_
26.04.2020, 10:54
при наличии у него одной из фич, про которые писал - или возможности отключать запись в память цвета или возможности читать в аппаратный регистр из памяти цвета (и записывать из регистра). И скорость при этом была бы как у ч/б версии

требует расшифровки фраза
схемка классического цвета
http://www.spetsialist-mx.ru/schemes/ColorController1.png

описание
http://www.spetsialist-mx.ru/Docs/mk1990_08.djvu

такой цвет не тормозит чб
может в эмулях криво реализовано ?

ivagor
26.04.2020, 11:03
zx_, в эмуляторах все нормально, просто мне было бы проще сделать цвет в эксолоне с небольшими дополнительными аппаратными возможностями.

zx_
29.04.2020, 20:51
ivagor, проще сделать цвет в эксолоне с небольшими дополнительными аппаратными возможностями.

вот еслиб схемку
былобы - хочешь цветной эксолон, припаяй доработку !

)

кста с sp580 такая же фигня была , и многие делали вплоть до сейчас


а так можно схемку и с автором эмуля попросить допилить по схемке
он делал уже так )

ivagor
29.04.2020, 21:03
Можно сказать, что примерно так и получилось. Как я понимаю, MX в свое время был доработкой обычного специалиста с использованием дополнительной платы и кучи порезов на основной плате.
А эмулятор emu80 при наличии большого желания можно и самостоятельно допилить. У меня такого большого желания нет, есть ч/б версия для стандарта, есть цветная для MX. Пусть цветная не идеальна, но она работает. Может со временем кто-нибудь созреет на цветную для стандарта.

ivagor
30.04.2020, 11:25
Фантазия на тему того "как могло бы быть". Можно было очень просто получить запрет записи в память цвета в 4(5) цветной схеме. Если на вход 3 (/WE) РУ3 подать ИЛИ двух сигналов - "старого" с D21/3 и с D44/13 (т.е. управлять разрешением/запрещением записи через бит порта системной ВВ55). Схему отключения пзу в крайнем случае можно было бы сделать как в восьмицвете, но лучше как в современных специалистах по факту записи процессором. Если выбирать между подобной доработкой и восьмицветом, то большинство наверняка выбрало бы 8 цветов, а трудности программистов пусть решают они сами.

ivagor
02.05.2020, 10:09
Переделал цветную версию с MX для стандартного специалиста с восьмицветом (визуально они идентичны). Вывод тайлов чуть быстрее, вывод спрайтов 8x8 чуть медленнее. Лучше бы наоборот, т.к. при наличии на экране спрайтов 8x8 будет тормозить несколько сильнее MXной версии. В качестве бонуса сюда перешло и включение/выключение чита в меню. Для стандарта без цвета рекомендую первую версию (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1058177&viewfull=1#post1058177), она и побыстрее и не мусорит на ч/б экране (на цветном специалисте мусора в цветной версии не будет видно).
На этом я скорее всего завершаю марафон версий для Специалиста, но надеюсь история на этом не закончится и кто-нибудь сделает еще более цветные и быстрые варианты.

- - - Добавлено - - -

Проверил в emu80 - поскрипывает. В emu все нормально и мне кажется это правильно, причина скрипа в emu80 для меня пока не очевидна.

- - - Добавлено - - -

Причина скрипа в emu80 похоже следующая - в нем слышно магнитофонный выход, который по совместительству еще и один из битов восьмицвета. В emu магнитофонный выход не озвучивается. Бипер на отдельном бите и только его слышно в emu. На мой взгляд желательно в emu80 предусмотреть отключение звука магнитофона, все же это потенциальная проблема для любой цветной программы, не только для эксолона.

Последняя цветная версия здесь (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1060980&viewfull=1#post1060980)

CityAceE
02.05.2020, 10:26
Это просто праздник какой-то! :) Превосходная конверсия! И ведь даже особенно не тормозит!

Иван, а детали не озвучишь? Как удалось добиться? Уже понятно, что использовал экран под буфер и закрасил его в чёрный. А остальное?

Но треск да, есть в emu80 :( Теперь уже будем Pyk просить сделать фикс...

И что касается INFINITE LIVES, логично было бы всё-таки сделать их отключенными по умолчанию.

ivagor
02.05.2020, 11:27
За "превосходную" спасибо, но что не тормозит я не соглашусь, все же при наличии спрайтов на экране тормоза могут быть серьезные (хотя для казуалов типа меня это скорее плюс).

Иван, а детали не озвучишь? Как удалось добиться? Уже понятно, что использовал экран под буфер и закрасил его в чёрный. А остальное?
Ты все озвучил, добавить нечего - буфер цветов урезал в 8 раз (по сравнению с версией для MX) и переместил в экран под черную заливку.

Но треск да, есть в emu80
По схеме специалиста (http://www.spetsialist-mx.ru/schemes/Spetsialist.png) вижу, что биты 5 и 7 порта C системной ВВ55 не объединяются и идут соответственно на "звук" и "зап. маг". Если в каких-то версиях специалиста при наличии цвета эти биты объединяют и подают на динамик или на объединенный звукомагнитофонный выход, то могу только передать их авторам пламенный привет.

И что касается INFINITE LIVES, логично было бы всё-таки сделать их отключенными по умолчанию.
Тут я исходил из собственных казуальных предпочтений. Если еще раз буду доделывать/переделывать, то сделаю конечные жизни по умолчанию.

- - - Добавлено - - -

Еще некоторые могут предложить решить проблему скрипа в emu80 программно. Это возможно, если ограничиться 5(4) цветами в одном из двух вариантов:
Вариант 1: черный фон, белый, желтый, фиолетовый, красный - нельзя спрятать мусор на экране под черный цвет
Вариант 2: черный фон, голубой, зеленый, синий, маскирующий черный - можно спрятать мусор на экране под черный цвет
На мой взгляд это довольно грустные варианты по сравнению с 8 цветами.

ivagor
02.05.2020, 17:39
Раньше не замечал, оказывается в спековском оригинале есть баг (особенность?) - спрайты перекрашивают фоновые звезды в свой цвет. В векторовской версии такого нет.

zx_
02.05.2020, 19:05
ivagor, как могло бы быть". Можно было очень просто получить запрет записи в память цвета в 4(5) цветной схеме. Если на вход 3 (/WE) РУ3 подать ИЛИ двух сигналов - "старого" с D21/3 и с D44/13 (т.е. управлять разрешением/запрещением записи через бит порта системной ВВ55).

может попросить автора эмуля такое смоделировать?
уж больно интересно

ivagor
02.05.2020, 20:29
zx_, к счастью исходник emu80 доступен, можно сделать все что угодно (в разумных пределах). Но на практике каждый будет делать то, что интересно ему.
Про "нищенскую запрещалку" могу сказать, что скорость была бы как у ч/б версии, цвета как в emu80 при включении 4х цветного режима (только без мусора сверху). Ну и нужно игрушку под это адаптировать, а я теперь, при наличии 8 цветной версии для стандарта, не хочу.

Насчет звука в emu80. В Specialist.cpp в строке
m_tapeSoundSource->setValue(((value & 0x20) >> 5) + ((value & 0x80) >> 7));
надо убрать (или закомментить) второе слагаемое и пересобрать, тогда в эксолоне будет нормальный звук. Но это просто грубая временная хака, надеюсь Pyk сделает выключатель на тулбаре или в конфигурационном файле.

- - - Добавлено - - -

В Specialist.cpp достаточно изменить всего одну строку
вместо
m_colorBuf[addr] = m_color;
сделать
if ((m_color&0x10)==0) m_colorBuf[addr] = m_color&0xC0;
и на тулбаре включить 4х цветный режим

ivagor
03.05.2020, 08:11
И все же попробовал сделать цветные спрайты (свободная память на этом практически кончилась). Идеально не получилось, но не буду перечислять недостатки, возможно кому-нибудь будет интересно их найти и описать. Если эта версия не устраивает, то есть черно-белая (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1058177&viewfull=1#post1058177)

Upd 04.05.2020 - Доработанная версия
1. Ускорил вывод всех типов спрайтов (тайлы тоже выводятся чуть-чуть быстрее).
2. Теперь спрайт главного героя не мигает, если он не двигается.
3. Спрайты врагов теперь могут быть почти любого цвета (кроме синего и черного), а не только белые, красные и зеленые. Выглядит повеселее.
4. На MX2 включается восьмицветный режим.
5. Неоднозначное решение - отключил выравнивающее торможение. На мой взгляд при имеющемся соотношении производительности специалиста и требований эксолона не до тормозов, пусть скорость плавает (она и так плавает), но игрушка хотя бы часть времени ведет себя бодро.
6. Вернул стволам пушек оригинальный желтый цвет.

Upd 05.05.2020
1. Добавил "переливающиеся" тайлы (лампочки на зеленых воротах, в телепорте, в "маяках", "энергетическая стена") и спрайты (молния между шарами).
2. Добавил дополнительные цвета спрайтов 8x8.
2.1. Теперь цветные объекты будут разлетаться на все цвета, а не только на белый, красный и зеленый.
2.2. Цвета выхлопа ракеты (гранаты) и "шума" при телепортировании теперь более богатые, а не только белый и красный.

Upd 06.05.2020
1. Выстрел ракеты (гранаты) главного героя и "спрайтовый шум" при телепортации теперь тормозят в 2 раза меньше (без учета и независимо от п.2.).
2. Немного ускорил все процедуры вывода спрайтов.
3. Сделал интеллектуальное выравнивающее торможение.

UPD 30.05.2020: Последние версии здесь (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828)

CityAceE
03.05.2020, 08:48
Мне показалось, что эта версия медленнее, чем предыдущие. Тем не менее удалось дойти до 31-й зоны и слить на прессах там 6 последних жизней :)
Из недостатков остаются несоответствующие кое-где цвета и тиринг на спрайте астронавта.

ivagor
03.05.2020, 08:55
несоответствующие кое-где цвета
Речь про стволы пушек (белые вместо желтых)? Это осознанное решение. Или еще что-то?

CityAceE
03.05.2020, 09:18
Или еще что-то?
Как минимум, синие вертикальные вставки в телепортах вместо белых в оригинальной игре.
Ну и отсутствие мерцающего цвета: летящие ракеты, треугольники в арке на первом экране, молния между шарами в конце уровня. Наверное, где-то ещё. Но оно понятно: на Спектруме нужно всего один байт атрибутов поменять, а на более медленном Специалисте необходимо целое знакоместо перерисовывать.

ivagor
03.05.2020, 09:50
Как минимум, синие вертикальные вставки в телепортах вместо белых в оригинальной игре.
Ну и отсутствие мерцающего цвета
В телепортах на спеке (и векторе) тоже "мерцающий" цвет, вместо него на специалисте везде синий. В векторовской мерцание/переливы сделаны изменением палитры, в специалистовской я не стал реставрировать на базе спековской, и так тормозит.
Про мерцающую летящую ракету я не уверен, что правильно понял. Если это про "гранаты", которые пускает главгерой, то они в последней версии все же немного переливаются, правда в данном случае только два цвета, белый и красный (в векторовской версии - три, на спеке не помню).
Еще могу добавить про цвета - нет деления на яркие/обычные оттенки цветов. И у специалиста нет таких цветов и в векторовской версии они не выводились, хотя внутри частично остались, можно было версию для MX сделать поцветнее.

- - - Добавлено - - -

Уточню насчет переливающихся цветов.
1. У части тайлов (лампочки на стартовой конструкции, вставки в телепортах, ...) они в векторовской версии делались изменением палитры, и это я не восстанавливал.
2. У части тайлов (выхлоп из дюз космического корабля, взорвашиеся мины, ...) переливы есть.
3. У спрайтов переливы разве что у ракет/гранат выпускаемых главгероем, и с оговоркой о двух цветах они есть. Еще переливы у спрайтов на спеке - "электростатический разряд" между шарами, в векторовской и специалистовской версии тут стабильный зеленый.

Pyk
03.05.2020, 14:27
Но треск да, есть в emu80 Теперь уже будем @Pyk просить сделать фикс...
Проблему понял, что-нибудь придумаю...

ivagor
04.05.2020, 17:34
Устранил основные недостатки версии с цветными спрайтами (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1060980&viewfull=1#post1060980). Можно сказать очистил карму, а то после предыдущего варианта было немного стыдно (он скорее был экспериментальный).

ivagor
04.05.2020, 21:12
Достиг катарсиса вернув оригинальные желтые стволы пушек.

Titus
04.05.2020, 21:31
Устранил основные недостатки версии с цветными спрайтами. Можно сказать очистил карму, а то после предыдущего варианта было немного стыдно (он скорее был экспериментальный).
После переделки стал странно работать в моем эмуле (https://zx-pk.ru/threads/28891-emulyator-spetsialista-emustudio.html), хотя все остальные цветные игры для 4-х и 8-цветных режимов у меня работали нормально.
А в эксолоне окрашивается в цветное только то, чего касается персонаж.

ivagor
05.05.2020, 06:09
Это потому что один из элементов ускорения (не единственный) - переход в большинстве процедур на запись в порт цвета с использованием out. Для реалов (кроме возможно эрика, но там и штатного восьмицвета нет), emu и emu80 это нормальный рабочий вариант.

ivagor
05.05.2020, 17:34
Все же доделал (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1060980&viewfull=1#post1060980) переливающиеся тайлы и спрайты. Частично они уже были (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1060994&viewfull=1#post1060994), теперь полностью.
В итоге реализованы практически все визуальные эффекты оригинального эксолона, кроме градаций яркости у цветов (их нет у специалиста).

Titus
05.05.2020, 19:51
Это потому что один из элементов ускорения (не единственный) - переход в большинстве процедур на запись в порт цвета с использованием out.
Разве порт цвета работает еще и через OUT? Где можно прочесть про это?

ivagor
05.05.2020, 20:15
1. В специалисте слово состояния ВМ80 не используется, т.е. если, например не отлавливать код команды (а в специалисте так не делают), то нельзя отличить обращение к памяти от обращения к порту. Значит out 0FEh для специалиста - это более короткая и быстрая альтернатива sta 0FEFEh. mov m,a/stax d/ stax b еще лучше, но не всегда есть свободная пара регистров.
2. Из-за неполной дешифрации любое обращение в область F800-FFFF попадет в системную ВВ55. А по младшим двум битам выбирается порт, в данном случае это порт C.
Схему специалиста можно посмотреть или в моделисте-конструкторе 1987/2, стр. 20-21 или на сайте fifana (http://www.spetsialist-mx.ru/index.html), или здесь (http://emuverse.ru/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D 1%81%D1%82/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%81%D1%82-%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D 1%82%D0%BE%D1%80_87/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_% D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1 %80%D0%B0).

Titus
05.05.2020, 21:12
Ты крут) Ни в одной программе на Специалисте не видел обращения к памяти посредством OUT. Иначе бы они просто не работали в моем эмуляторе.

- - - Добавлено - - -

И, кстати, финальная версия получилась довольно шустрая, хотя и в цвете.

ivagor
05.05.2020, 21:51
Да ладно, это придумали программисты древности. Возможно в специалистовских программах есть примеры использования out не для цвета, а, например, для звука или для клавиатуры (кажется я что-то такое припоминаю, но не уверен).

- - - Добавлено - - -

Спасибо, я старался :)

- - - Добавлено - - -

На всякий случай все же напишу про скорость. Когда много спрайтов - тормозит очень жестко, но тут принципиально проблему решит только быстрый процессор. Не то что совсем нельзя ускорить, но ускорить в разы точно не получится.

CityAceE
06.05.2020, 09:44
В итоге реализованы практически все визуальные эффекты оригинального эксолона
Невероятно, даже переливы цвета при таком быстродействии тебе удалось сделать! Огромное спасибо за проделанную работу! Результат просто фантастический! Скорость игры, как правильно заметили, стала выше. Правда, и её неравномертность сейчас более заметна. Но, тем не менее, игра сохранила свою играбельность. Теперь это однозначно абсолютно самая красивая, технически продвинутая и вообще самая-самая игра для ПК Специалист. Ах, если бы такой шедевр появился бы на этой платформе в 1987 году...


кроме градаций яркости у цветов (их нет у специалиста).
Градации яркости - это такая мелочь, их отсутствие даже не заметно. До идеала не хватает разве что таблицы рекордов и фирменной ZORBA с переназначением клавиш... Но, как я понимаю, на это нет ни памяти, ни желания. Но кто знает? Ты, помнится, и цвет не хотел делать - говорил, что памяти и желания нет ;)

ivagor
06.05.2020, 17:39
Вчера уже в последний момент доделал многоцветный выхлоп ракеты/гранаты и телепортацию по спековскому образцу и не успел разобраться и убрать лишнюю теперь векторовскую эмуляцию этой штуки. Разобрался, убрал и сейчас выстрел ракеты/гранаты и телепортация стали в 2 раза быстрее, что вполне заметно и очень здорово.
Сделал "интеллектуальную" тормозилку, гораздо более корректную чем в версиях для спека и вектора. Она учитывает и маленькие и средние спрайты на экране, каждый тип со своим весом и лишнего не тормозит. Максимальная скорость уменьшилась, но уменьшилось и плавание скорости.
Очень надеюсь, что это (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1060980&viewfull=1#post1060980) финальная версия. На редактирование клавиатуры и таблицу рекордов не замахиваюсь, но если найдутся ошибки - постараюсь исправить.

По поводу эксолона для специалиста в 1987. Точную дату выхода оригинала не знаю, но обзор в CRASH (http://www.crashonline.org.uk/43/index.htm) датирован августом 1987. Публикация описания и схемы специалиста в моделисте-конструкторе в начале 1987. Т.е. чисто теоретически очень толковый и мотивированный программист, имеющий доступ к спеку, к новейшим играм и к специалисту мог за полгода успеть портировать, но как мы знаем, этого не произошло. И это была бы черно-белая версия.
В 1988 - 4(5) цветная, причем если делать как я, то с мусором на экране. Тут дело даже не только в объеме памяти под буфер атрибутов, он и в памяти есть в "спековской" раскладке, но важна организация и выбранный мною вариант еще и сильно упрощает и ускоряет доступ. Т.е. специально под 4(5) цвет я бы скорее всего не стал делать, в лучшем случае версию с одноцветными/"прозрачными" спрайтами.
А восьмицветная версия была возможна не раньше второй половины 1990.

goodboy
06.05.2020, 18:00
а `скафандр` в этой версии берётся так-же ?

ivagor
06.05.2020, 18:07
Вопрос наверно с подвохом, но способ взятия скафандра стандартный - в кабинке при нажатии клавиши вверх.

goodboy
06.05.2020, 18:17
подвоха нет (просто раньше не все знали про скафандр)
ещё вспомнил что в обзоре на игру был скриншот со спрайтами которых нет в финальной версии,
пока искал (и не нашёл) наткнулся на статью про создание игры
https://ia800307.us.archive.org/BookReader/BookReaderImages.php?zip=/17/items/sinclair-user-magazine-069/SinclairUser_069_Dec_1987_jp2.zip&file=SinclairUser_069_Dec_1987_jp2/SinclairUser_069_Dec_1987_0068.jp2&scale=5.222496909765142&rotate=0
оказывается вся графика делалась в ArtStudio, но на AtariST

ivagor
06.05.2020, 18:57
Теперь я знаю, что авторское название "зеленых подбрасывателей" - пневматические молоты.
Если кому интересны технические детали - максимальный FPS (без тормозилки) был бы 35, с текущей тормозилкой - 20 FPS. Я про нее (тормозилку) написал достаточно пафосно, но в сухом остатке то, что она лучше предыдущих вариантов, хотя и не идеальна. Но лучше.

- - - Добавлено - - -

Для желающих увидеть какой-то определенный уровень, но жалеющих на это время. Ставим в отладчике бряк на 1FF2. Когда будет переход в следующую зону (немного мрачно получилось) нас выкинет в отладчик и можем ввести желаемый номер в регистр A.

- - - Добавлено - - -

Для сравнения цифры по максимальному FPS спековской версии: с тормозилкой 29 FPS, без - 54-55 FPS.

goodboy
06.05.2020, 19:00
нашёл скриншот с непонятным существом (и это уже обсуждали на форуме)
https://ia600904.us.archive.org/BookReader/BookReaderImages.php?zip=/1/items/YourSinclair37Jan89/YourSinclair/YourSinclair19-Jul87_jp2.zip&file=YourSinclair19-Jul87_jp2/YourSinclair19-Jul87_0011.jp2&scale=7.051915945611866&rotate=0
ещё и про жанр написано - scrolling shoot`em up

Titus
06.05.2020, 19:14
нашёл скриншот с непонятным существом (и это уже обсуждали на форуме)
https://ia600904.us.archive.org/Book...11866&rotate=0
ещё и про жанр написано - scrolling shoot`em up

Очень похожа на перерисованную обезьяну, которая топает ногами перед игрой 'Three weeks in paradise'.

ivagor
06.05.2020, 19:41
В черно-белой версии (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1058177&viewfull=1#post1058177) максимальный FPS без торможения был бы 41-42, с (векторовской) тормозилкой - 21-22 FPS.

- - - Добавлено - - -

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

- - - Добавлено - - -

Максимальные скорости наверно не так интересны, вот цифры для загруженной (но не самой суровой) зоны 113 (https://youtu.be/BcE459z-rhY?t=1556)
Спектрум - 13 FPS
Специалист - около 7 FPS
По тактам не сильно уступает, основной проигрыш за счет разницы в тактовых частотах

zx_
06.05.2020, 22:01
ivagor, , в лучшем случае версию с одноцветными/"прозрачными" спрайтами.
эт как ? -)

ivagor
07.05.2020, 06:38
Это как в версии для MX и в первой цветной версии для стандартного специалиста (которую я удалил).

Titus
09.05.2020, 15:45
1. В специалисте слово состояния ВМ80 не используется, т.е. если, например не отлавливать код команды (а в специалисте так не делают), то нельзя отличить обращение к памяти от обращения к порту. Значит out 0FEh для специалиста - это более короткая и быстрая альтернатива sta 0FEFEh. mov m,a/stax d/ stax b еще лучше, но не всегда есть свободная пара регистров.

Сделал в эмуляторе поддержку того, о чем ты говоришь. Цвет появился, в статической картинке. Но когда летят всякие спрайты и кусочки взрывов, они по своей траектории портят цвет фона, т.е. перекрашивают его в свой или просто какой-то.

ivagor
09.05.2020, 16:43
В emu и emu80 визуал отображается правильно, там эталонная картинка как должно быть.

- - - Добавлено - - -

Могу предположить, в чем может быть проблема. Большинство процедур пишет в порт цвета по out 0FEh, но две (главный герой в покое и мерцающие атрибуты) по stax d (в DE при этом 0FFE2h). Если ты не сделал неполную дешифрацию (чтобы любое обращение в область F800-FFFF попадало в системную ВВ55), то это может быть источником проблемы.

- - - Добавлено - - -


Но когда летят всякие спрайты и кусочки взрывов, они по своей траектории портят цвет фона, т.е. перекрашивают его в свой или просто какой-то.
В этих процедурах запись в порт по out 0FEh

- - - Добавлено - - -

И больше похоже на проблему не с записью в порт цвета, а с чтением из памяти, из буфера цвета. Буфер цвета в верхней части экрана.

Titus
09.05.2020, 19:18
Могу предположить, в чем может быть проблема. Большинство процедур пишет в порт цвета по out 0FEh, но две (главный герой в покое и мерцающие атрибуты) по stax d (в DE при этом 0FFE2h). Если ты не сделал неполную дешифрацию (чтобы любое обращение в область F800-FFFF попадало в системную ВВ55), то это может быть источником проблемы.
Нет, не это. У меня дешифрация такая же.

- - - Добавлено - - -


В этих процедурах запись в порт по out 0FEh
И это поддерживается, благодаря чему в принципе появился цвет.

- - - Добавлено - - -


И больше похоже на проблему не с записью в порт цвета, а с чтением из памяти, из буфера цвета. Буфер цвета в верхней части экрана.
А тут еще менее вероятно, т.к. это часть обычной памяти.

Скорее всего глюк в эмуляции 8080, т.к. я ее побыстренькому переделывал из Z80, и что-то возможно не сделал.
Однако ч/б версия твоя работала идеально.

ivagor
09.05.2020, 19:42
Если качал предыдущие цветные версии, то попробуй Exolon8c.zip или Exolon8c_ColorSprites.zip, там были большие отличия от последнего варианта. Или выложи эмулятор, я попробую позапускать разные варианты эксолонов, может тестик какой-то накропаю.

Titus
09.05.2020, 20:04
Если качал предыдущие цветные версии, то попробуй Exolon8c.zip
На этой версии такой же глюк.

Разница еще в том, что в последней версии, где OUT (FE),A, игра может вылететь в стартовое меню (причем, явно не штатно), когда активно идешь, прыгаешь и стреляешь. Особенно это легко получается на втором экране.
Стал смотреть, что на это влияет. Оказалось, что OUT (FE),0x01. Если запретить вывод единицы в порт, то не вылетает. Очень странно, т.к. это всего лишь одна из линий клавиатуры.

- - - Добавлено - - -

Уточнил, когда вылетает.
Надо держать одновременно клавишу вправо и вверх, и при этом должны лететь кусочки взрыва. Тогда с большой вероятностью вылетит.

ivagor
09.05.2020, 20:56
Оказалось, что OUT (FE),0x01. Если запретить вывод единицы в порт, то не вылетает.
Сначала эмуляцию ВВ55 стоит поправить, запись единицы в этот бит никак не могла привести к вылету на реале.
Маленько попробовал и с клавиатурой вылезают проблемы при стандартном опросе (не в эксолоне). Предполагаю, что не обнуляются порты при задании режима, как и в предыдущих версиях EmuStudio.
Еще заметил, что при стрельбе (нажатии пробела) ненадолго мелькают сверху атрибуты, которые соответствуют мерцающим тайлам. Этот тоже очень удивительно, как будто временно не срабатывает задание черного цвета.
Могу только предложить глянуть исходник emu80, как там сделана системная ВВ55.

Titus
09.05.2020, 21:38
Сначала эмуляцию ВВ55 стоит поправить, запись единицы в этот бит никак не могла привести к вылету на реале.
Маленько попробовал и с клавиатурой вылезают проблемы при стандартном опросе (не в эксолоне). Предполагаю, что не обнуляются порты при задании режима, как и в предыдущих версиях EmuStudio.
Еще заметил, что при стрельбе (нажатии пробела) ненадолго мелькают сверху атрибуты, которые соответствуют мерцающим тайлам. Этот тоже очень удивительно, как будто временно не срабатывает задание черного цвета.
Могу только предложить глянуть исходник emu80, как там сделана системная ВВ55.

ВВ55 у меня сэмулирована в экспериментальном аналоговом виде. Это описано в топике про эмулятор.
Возможно, что-то там и не доэмулировано.

Проблемы с опросом клавиатуры могут быть в том, что у меня эмулируются некоторые 'эксклюзивные' комбинации клавиш, для того, чтобы во всяких бейсиках и подобных можно было набирать текст точно так же, как и в стандартной раскладке на PC.
Т.е., например, если ты нажал SS + '7', отпустятся все другие нажатые клавиши, и нажмется SS + '6', для того, чтобы знак '&' был на '7', а не на '6'. Ну и подобные.

Сам по себе вывод 0x01 в порт клавиатуры к глюкам не приводит. Это одна из составляющих глюков, без которой глюк не воспроизводится.

Titus
10.05.2020, 02:21
Выяснил вот чего. Когда от летящих обьектов портится цвет фона, атрибуты в скрытой части экранной области при этом не портятся. Т.е. видимо, непорядок в функции, которая по этим атрибутам восстанавливает цвет фона.
Можешь кинуть кусок кода, который это делает?

ivagor
10.05.2020, 07:39
Поэкспериментировал с первой (публичной) цветной версией (Exolon8c.zip). Окраска окружающей среды в EmuStudio при разлетании осколков нормализуется, если добавить в процедуру вывода спрайтов 8x8 задание режима работы ВВ55. В обычных версиях у меня режим задается только в процедуре опроса клавиатуры, да и то это лишнее - задавать его каждый раз, при том что он не меняется. А в EmuStudio он каким-то образом где-то меняется. Я вставил второе задание режима в процедуру вывода спрайтов 8x8, но корень проблемы не там, а где-то в другом месте, т.к., например выстрелы ракетницы/"гранатницы" главгероя не перекрашивают все вокруг, хотя используется та же процедура.
Надо искать, где сбивается режим ВВ55, тебе это проще сделать, чем мне. Повторюсь, у меня он задается только при опросе клавиатуры (mvi a,91h\ sta FFE3h)


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

Что касается странных рестартов, то тут без исправления ВВ55 можно долго копать.

Titus
10.05.2020, 08:24
Надо искать, где сбивается режим ВВ55, тебе это проще сделать, чем мне. Повторюсь, у меня он задается только при опросе клавиатуры (mvi a,91h\ sta FFE3h)
Запись в регистр режима идет в следующих местах:

В обычном режиме здесь примерно раз в кадр:


7980 3E 91 LD A,$91
7982 32 E3 FF LD ($FFE3),A


В момент выстрела пушки, множественная запись числа 0x0A здесь:


7A1D F6 0A OR $0A
7A1F 32 E3 FF LD ($FFE3),A


А в момент разлетания кусочков взрыва множественная запись 0x0A, 0x0B здесь:


0008 F6 0A OR $0A
000A 32 E3 FF LD ($FFE3),A
000D C9 RET

- - - Добавлено - - -

Я так понимаю, что 0x0A, 0x0B - это ты генерируешь звук.

ivagor
10.05.2020, 08:30
Режим задается словом MS (старший бит слова =1) только в одном месте (7980). А два других случая - это слово BSR (старший бит слова =0), оно режим не меняет (по крайней мере не должно при правильной реализации ВВ55), меняет только бит 5 порта C.

Titus
10.05.2020, 08:49
Режим задается словом MS (старший бит слова =1) только в одном месте (7980). А два других случая - это слово BSR (старший бит слова =0), оно режим не меняет (по крайней мере не должно при правильной реализации ВВ55), меняет только бит 5 порта C.
Да, все так. Нашел ошибку.
У меня считалось, что любой вывод в регистр 0x03 меняет режим ВВ55.
Сделал, что при оперировании битами режим сохраняется, и все заработало!

- - - Добавлено - - -

Обновил свой эмулятор (https://zx-pk.ru/threads/28891-emulyator-spetsialista-emustudio.html) и добавил в архив exolon, если ты не против.

ivagor
10.05.2020, 09:13
Я не против, спасибо за высокую оценку, только я еще одну версию неспешно пилю. Ускоряю, что могу, в основном спрайты, и небольшие успехи есть. Принципиальных изменений (редактирования клавиш и таблицы рекордов) не будет. Место для этих фич есть, нужно несколько больше 1.5 Кб и можно разместить в экране сбоку, но я совсем не хочу этим заниматься.

zx_
23.05.2020, 13:28
ivagor, off есть еще одна давняя давняя

тема - эмулятор спектрума с вектора, адаптировать для ориона 128 с ZCardII

ivagor
23.05.2020, 13:40
zx_, вроде это уже обсуждали. Такой эмулятор - это аппаратно-программная вещь, и аппаратной части для специалиста нет.
Да и для ориона с z80 card соответствующей аппаратной части тоже нет, если это был оффтоп про него.

zx_
23.05.2020, 16:02
про орион с z80 card 2
эмуль есть даж)
https://github.com/serge-404/OriZEmu

- - - Добавлено - - -

ivagor,

кишиневская плата для Вектора утеряна в веках прошлого, схему не восстановить похоже
а орион жив

Pluto
27.05.2020, 22:00
Кто ни будь пробовал на живом Специалисте запускать Exolon ?
У меня монохромная версия запускается на Линевском, на Восточном экспрессе мелькает хаотично заполненный стартовый экран и вылетает в Монитор и монохромная и цветная версии :(

AlexBel
28.05.2020, 04:57
Кто ни будь пробовал на живом Специалисте запускать Exolon ?
У меня монохромная версия запускается на Линевском, на Восточном экспрессе мелькает хаотично заполненный стартовый экран и вылетает в Монитор и монохромная и цветная версии :(

Я на "Восточном экспрессе" не только запускал, но и поиграл в Exolon. И монохромная и цветная версии работают отлично.

ivagor
28.05.2020, 09:15
Планирую скоро выложить сборник доработанных версий, одна из доработок - улучшение совместимости с разными клонами.

ivagor
30.05.2020, 08:21
Сборник доработанных и улучшенных версий эксолона для разных вариантов/модификаций специалиста.

1. Черно-белая - объединенная (с автодетектом) для стандарта или SP580, отдельная версия для EUREKи.
2. 4(5) цветов (в текущих версиях emu80 будут посторонние звуки, в emu - без посторонних звуков)
3. 8 цветов (в текущих версиях emu80 будут посторонние звуки, в emu - без посторонних звуков)
4. 16 цветов - для MX (в emu80 цвета больше похожи на спектрум, в emu не похожи, кто лучше соответствует реалу - я не знаю).

1. Все версии работают быстрее предыдущих.
Ч/б работает раза в полотора быстрее цветных, но в "ненагруженном" состоянии это не заметно, т.к. тормозилка выравнивает всех примерно к 20 FPS. Зато это заметно, когда на экране куча спрайтов.
Для MX и SP580 (при наличии таймера) используется таймерная тормозилка, которая обеспечивают максимальную возможную точность и стабильность скорости и даже сохраняет постоянную скорость при изменении частоты процессора (если частота таймера не изменяется). Коррекцию музыкальных/FX процедур не делаю, поэтому высота звуков при изменении частоты процессора изменится.
"Обычная" (не таймерная) тормозилка тоже улучшена и заметно корректнее и точнее оригинальной.
2. Улучшена совместимость с разными вариантами, клонами и модификациями специалиста.
Не используются никакие процедуры пзу или шрифты; убрал все outы; убрал две остававшиеся команды di; 4c, 8c и MX(2) версии при старте переключают MX2 в соответствующий режим.
3. В версии для EUREKи высота нот в музыкальной процедуре приближена к оригиналу.
4. Цвет всех сообщений (очевидно только в цветных версиях) сделан как в оригинале (в 16-цветной версии для MX в emu80; в emu оттенки немного отличаются) или максимально приближен к оригиналу (в 8-цветной версии).
5. Все версии при стартовой распаковке не мусорят на экране.
6. Не видимый взглядом момент - в цветных версиях (кроме 4(5) цветной) теперь можно очень легко перейти к использованию всей памяти по бокам экрана (2 Кб с каждой стороны) для любых целей.

Что еще можно сделать:
1. Максимум по скорости не достигнут, особенно большие резервы в MX, там очень много свободной памяти.
Еще можно попонтоваться - детектить процессор (8080/8085/z80, других вроде в специалисты не ставили) и заменять некоторые процедуры на оптимизированные под данный проц.
2. Можно добавить редактирование клавиатуры и таблицу рекордов. В 8- и 16-цветных версиях это можно сделать без мусора на экране.

В EmuStudio 0.15j работают версии для обычных специалистов (и даже для MX, но, конечно, без цвета), только без звука и не забывайте вручную переключать режимы цветности.

Чтобы нарушить традицию и прервать череду улучшений и доработок, пойду от противного и напишу, что обязательно сделаю еще лучше и быстрее.

Upd 06.06.2020:
1. В версии для MX/MX2 добавил детект наличия таймера и если таймера нет, то переключаемся на стандартную тормозилку.
2. В 4- и 8-цветных версиях изменил оформление сообщения GAME OVER.

Upd 09.06.2020:
В 4-цветной версии доработал вывод спрайта главного героя.

CityAceE
30.05.2020, 12:27
Можно добавить редактирование клавиатуры и таблицу рекордов.
Вот этого жду больше всего, так как по всему остальному, на мой взгляд, идеал почти достигнут! :)

CGA-шный Exolon прикольно выглядит! Это 4-х цветная версия, запущенная на 8-ми цветном эмуляторе:
https://pic.maxiol.com/images2/1590831370.90460257.exolon.png

Но иногда проскальзывает синий цвет! Баг?
https://pic.maxiol.com/images2/1590831659.90460257.exolon2.png

А вот надпись GAME OVER выглядит, мягко говоря, не очень:
https://pic.maxiol.com/images2/1590832082.90460257.gameover.png https://pic.maxiol.com/images2/1590832148.90460257.gameoverbig.png
Алгоритм такого написания понятен, я сам по тому же принципу выводил спектрумовские картинки в конверторе (https://zx-pk.ru/threads/30021-konvertor-zx-kartinok-dlya-spetsialista.html), но здесь я бы писал буквы полностью белым цветом на чёрном фоне.

Titus
30.05.2020, 13:17
Но иногда проскальзывает синий цвет! Баг?
Потому что четырехцветный Специалист на самом деле пятицветный)

ivagor
31.05.2020, 06:12
Но иногда проскальзывает синий цвет! Баг?
Ну я решил по максимуму использовать 4(5) цветный режим. Сначала еще голубые объекты сделал синими, но смотрелось в сочетаниях не очень, в итоге оставил в этой версии синий только в спрайтах.


здесь я бы писал буквы полностью белым цветом на чёрном фоне.
Спорный момент, идеального варианта для 4 и 8 цветов нет. В ч/б просто белые буквы на черном фоне, в 16 - как в оригинале, а в 4 и 8 решил так сделать. "Художественные поиски" в данном случае связаны с красным фоновым прямоугольником, просто белые буквы на черном фоне на мой взгляд смотрелись в таком обрамлении хуже, но и получившийся вариант не идеален. Для 4/8 цветов тут в любом случае будет компромисс.

- - - Добавлено - - -

Да, и может стоит сменить правую цветную картинку из эмулятора в первом посте? Она и в 8 цветной версии выглядит не совсем так (ствол пушки желтый), а в MX совсем не так (есть градации).

Serg6845
31.05.2020, 14:41
Сборник (https://yadi.sk/d/IUmvTV7zWQpICw) доработанных и улучшенных версий эксолона для разных вариантов/модификаций специалиста.


у меня вариант МХ2 не взлетел. после старта игры рисуется первый экран - и все. таймер требует? у меня его нет.
все остальные - без проблем.
еще заметил что в положении сидя ГГ не умеет разворачиваться - но тут не помню как оно в оригинале.

Titus
31.05.2020, 16:01
убрал все outы
Зачем OUT'ы убрал, если они работают везде и с ними было быстрее?

Serg6845
31.05.2020, 16:34
Зачем OUT'ы убрал, если они работают везде и с ними было быстрее?

не факт что прям "везде". расширенная дешифрация ВВ55 - и ква. я уж не говорю про свой, в котором аж ВК28 и ВН59 приделаны.

CityAceE
01.06.2020, 05:58
Спорный момент, идеального варианта для 4 и 8 цветов нет.
Ну не знаю... Для меня ничего спорного нет, и вывод, как смотрится лучше, однозначен:

https://pic.maxiol.com/images2/1590832082.90460257.gameover.png https://pic.maxiol.com/images2/1590980329.90460257.gameover.png


Да, и может стоит сменить правую цветную картинку из эмулятора в первом посте?
Заменил там вообще все скриншоты из игры и добавил новые.

ivagor
01.06.2020, 06:25
у меня вариант МХ2 не взлетел. после старта игры рисуется первый экран - и все. таймер требует? у меня его нет.
все остальные - без проблем.
Да, версия для MX/MX2 обязательно требует таймер. Для SP580 я сделал двухступенчатый детект - сначала ищем SP580 и, если нашли, меняем порты. Потом ищем таймер и, если нашли, переключаем на таймерную тормозилку. А про MX/MX2 я не думал, что они бывают без таймера.


еще заметил что в положении сидя ГГ не умеет разворачиваться - но тут не помню как оно в оригинале.
В оригинале аналогично.


Зачем OUT'ы убрал, если они работают везде и с ними было быстрее?
Переделал практически все процедуры вывода спрайтов на познакоместные и операция записи в порт цвета стала не особо критичной по времени. Единственная процедура, где оставил построчный вывод - главгерой в движении, в познакоместном варианте слишком сильно мигало. Но там я переделал на stax и стало быстрее чем с out (хотя познакометно было еще быстрее). А затеял я это в основном для эрика, хотелось посмотреть хотя бы в эмуляторе, что при 8-цветной доработке на нем будет цвет. Хотя для эрика без доработок можно сделать свою 4-цветную версию на "векторовском принципе", но это отдельная сравнительно трудоемкая задача.


Для меня ничего спорного нет, и вывод, как смотрится лучше, однозначен:
Начал переделку я с правого варианта и он мне не понравился. Левый тоже не особо нравится, наверно стоило оставить просто сплошную надпись без красного фона, как было в предыдущих 8-цветных версиях. Спасибо за обновление скриншотов.

Еще пункт к тому, что можно сделать. Для EUREKи можно переделать ч/б версию в цветную с минимальными изменениями самой программы (добавить включение цветного режима и мерцание некоторых элементов) только изменением графики. За ориентир можно взять версию для amstrad cpc, хотя там 16 цветов с палитрой, а в EUREKE только 4. Но этот вариант совершенно невероятен, т.к. программисты или сочувствующие для 580ВМ80 еще есть, а вот художников я практически не видел. Ну и ему пришлось бы еще писать утилиты для разборки/сборки графики, возможно на базе задела esl.

CityAceE
01.06.2020, 07:12
Начал переделку я с правого варианта и он мне не понравился.
Продолжаю настаивать, что этот вариант выглядит вполне симпатично. Буквы читаются, а красная рамка выделяет надпись. Что не так-то? ;)


Но этот вариант совершенно невероятен, т.к. программисты или сочувствующие для 580ВМ80 еще есть, а вот художников я практически не видел.
Привлечь какого-то художника, когда есть просто теория, скорее всего вряд ли получится. Но когда будут какие-то реальные наработки, то я уверен, что кого-нибудь отыскать можно будет. Увлечённому человеку всё равно для чего рисовать - Спектрум это, или Специалист с ДВК.

Для начала можно вообще всё автоматически конвертнуть, чтобы было от чего отталкиваться и для кода, и для художника. Даже полностью автоматическая конверсия выглядит не из ряда вон плохо - все элементы на экране узнаваемы:

https://pic.maxiol.com/images2/1590984615.90460257.exoloneureka.jpg https://pic.maxiol.com/images2/1590985670.90460257.exoloncpc.png

Serg6845
01.06.2020, 09:37
Да, версия для MX/MX2 обязательно требует таймер. Для SP580 я сделал двухступенчатый детект - сначала ищем SP580 и, если нашли, меняем порты. Потом ищем таймер и, если нашли, переключаем на таймерную тормозилку. А про MX/MX2 я не думал, что они бывают без таймера.



просто в моей поделке все кроме проца и памяти запихано в FPGA. а до таймера руки не дошли...

fifan
01.06.2020, 16:39
просто в моей поделке все кроме проца и памяти запихано в FPGA. а до таймера руки не дошли...
А у меня на плисине симуляция таймера так и не заработала.

Rus
01.06.2020, 16:51
CGA-шный Exolon прикольно выглядит! Это 4-х цветная версия, запущенная на 8-ми цветном эмуляторе:
https://pic.maxiol.com/images2/1590831370.90460257.exolon.png


Глядя на картинку появилось большое желание сделать конверсию на XT :)

Lethargeek
01.06.2020, 18:59
Глядя на картинку появилось большое желание сделать конверсию на XT
глядя на картинку, захотелось её видеть в другой цга палитре, которая гораздо ближе к оригиналу

ivagor
02.06.2020, 06:00
Продолжаю настаивать, что этот вариант выглядит вполне симпатично. Буквы читаются, а красная рамка выделяет надпись. Что не так-то?
Это у меня наверно какой-то дефект восприятия. Сделал, посмотрел - стало меньше нравится, а потом совсем перестало нравиться. Есть еще вариант - мигающий со сменой желтых букв и красного фона. Но тогда без музыкальной вставки game over, что скорее всего найдет еще меньше понимания.

Oleg N. Cher
02.06.2020, 08:04
Глядя на картинку появилось большое желание сделать конверсию на XT :)А есть опыт разработки для DOS и время/желание? Можно было бы скооперироваться. Правда, я, скорее, не Exolon бы стал делать, но тоже порт чего-то для XT с CGA.

Rus
02.06.2020, 10:42
А есть опыт разработки для DOS и время/желание? Можно было бы скооперироваться. Правда, я, скорее, не Exolon бы стал делать, но тоже порт чего-то для XT с CGA.

Опыт есть, но только на ассемблере. Со звуком правда особо не довелось поработать. Время выкроить всегда можно понемногу.

CityAceE
02.06.2020, 12:12
Сделал, посмотрел - стало меньше нравится, а потом совсем перестало нравиться.
Это как в анекдоте про бороду профессора (https://www.anekdot.ru/id/328669/) :v2_lol:


без музыкальной вставки game over
Вариант без музыкального проигрыша - вообще не вариант :)

ivagor
03.06.2020, 06:02
Про бороду похоже и с нужностью музыки при game over я согласен. В итоге для 4/8 цветов мне больше нравится вариант как был в v6 - цветные буквы GAME OVER на черном фоне, скорее всего в комплекте эмулятора (https://zx-pk.ru/threads/28891-emulyator-spetsialista-emustudio.html) Titusa он остался.

AlexBel
06.06.2020, 08:47
Сборник (https://yadi.sk/d/IUmvTV7zWQpICw) доработанных и улучшенных версий эксолона для разных вариантов/модификаций специалиста.
1. Черно-белая - объединенная (с автодетектом) для стандарта или SP580, отдельная версия для EUREKи.
2. 4(5) цветов (в текущих версиях emu80 будут посторонние звуки, в emu - без посторонних звуков)
3. 8 цветов (в текущих версиях emu80 будут посторонние звуки, в emu - без посторонних звуков)


Поиграл во все три версиина реале (Экспресс), по мне, так просто замечательно! Даже 8-цветная игра при большом количестве спрайтов притормаживает не сильно, играть комфортно. Во всяком случае, не менее комфортно, чем на "Спектруме". А 4-цветная версия, и правда, как CGA выглядит - сразу напомнило старые игры на РС :)
Спасибо!

ivagor
06.06.2020, 12:27
Слегка обновил (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828) варианты для MX/MX2, а также 4- и 8- цветные. Все же грустно, что на реалах, где таймер предусмотрен, его может не быть.

AlexBel, спасибо за высокую оценку, но на спеке все же быстрее, хотя я старался. Тем не менее при равной тактовой кое-что у меня будет работать быстрее чем в спековской версии, даже несмотря на 580ВМ80 вместо Z80, но это просто спековская версия не особо оптимизирована + там неудачная тормозилка.

Прикидывал возможность конверсии на другие компы с 580ВМ80 и графикой и в большинстве случаев особых проблем и открытий не будет.
Интересный вариант возможен для Львова ПК-01. Там процессор довольно сильно тормозится и графика "жестко 4-цветная", поэтому желательно что-то придумать. Я бы загрубил сдвиги спрайтов до дискретности 4 точки по горизонтали, соответственно можно убрать процедуру сдвига, а если еще постараться, то можно убрать и процедуру пересылки спрайта "новый"->"старый". Ну а если еще и художника найти, то напрашивается перерисовка под 4-цветную графику. Посмотрел бы на такую версию.
Для Корвета тоже интересно. С одной стороны сам вывод спрайтов (в моем исполнении) получился бы громоздкий, но там есть некоторые потенциальные возможности для оптимизации конкретно под корвет, хотя и за счет уменьшения цветности.

CityAceE
06.06.2020, 13:04
В 4- и 8-цветных версиях изменил оформление сообщения GAME OVER.
По-моему отлично смотрится! :v2_thumb:

https://pic.maxiol.com/images2/1591437803.90460257.gameover4.png https://pic.maxiol.com/images2/1591437827.90460257.gameover8.png

zx_
06.06.2020, 16:40
ivagor, спасибо
остались еще две вершины - изометрическая бродилка и элита для специалиста
-)

ivagor
07.06.2020, 06:23
zx_, это не мои вершины, хотя с большим интересом посмотрел бы на элиту и на другие конверсии для 8080.

ivagor
08.06.2020, 10:44
Идея по максимальному расцвечиванию 4(5) цветной версии. В тайлах синий цвет не стал использовать, т.к. смотрелось не очень, но есть компромиссный вариант. У нас есть черный фон, три базовых цвета (RGB) и белый. Сочетаниями базовых цветов по 2 можно получить 3 недостающих цвета (желтый=R+G, голубой=G+B и фиолетовый/пурпурный=R+B), самый очевидный и простой вариант - чередеовать через строку, в итоге в тайле будут по 4 строки каждого цвета. Изменить процедуру вывода тайлов довольно просто, проблема, как обычно, в спрайтах. В больших и средних спрайтах можно просто обходить все нефоновые тайлы. А вот маленькие спрайты выводятся поверх тайлов, без маскировки. Тут можно решить проблему в лоб, добавив вариант процедуры для полосатых тайлов. Изменений нужно довольно много и память опять надо искать, поэтому я сам не хочу это делать, но может со временем кто-нибудь сделает и такую версию.

CityAceE
08.06.2020, 10:56
Идея по максимальному расцвечиванию 4(5) цветной версии.
Не смотря на то, что уже сейчас 4-х цветная версия выглядит весьма прилично, но почему бы не попытаться улучшить то, что есть. Но я пока слабо представляю, как будет выглядеть полосатый Эксолон :)

Titus
08.06.2020, 11:22
Идея по максимальному расцвечиванию 4(5) цветной версии.
Лучше сперва смоделировать скриншот, как это будет выглядеть. Может не эстетично)

ivagor
08.06.2020, 11:32
Картинки DDp (https://zx-pk.ru/threads/30001-spetsialist-grafika.html?p=996468&viewfull=1#post996468) (или похожие картинки на БК) позволяют надеяться, что выглядела бы такая раскраска приемлемо. Причем я предлагаю чередовать только пару цветов, а не три (все равно полутонов не будет) и результат должен быть даже лучше.

Titus
08.06.2020, 11:50
Картинки DDp (или похожие картинки на БК) позволяют надеяться, что выглядела бы такая раскраска приемлемо. Причем я предлагаю чередовать только пару цветов, а не три (все равно полутонов не будет) и результат должен быть даже лучше.
Картинки по ссылке как-то не очень)
Лучше прям конкретные примеры из Exolon'а.

CityAceE
08.06.2020, 12:40
Стало любопытно, как он будет выглядеть. Раскрасил вручную :)

https://pic.maxiol.com/images2/1591437827.90460257.gameover8.png https://pic.maxiol.com/images2/1591609255.90460257.gameover48.png

ivagor
08.06.2020, 12:49
Шрифты похоже лучше оставить сплошными цветами, а в остальном небезынтересно. Или по крайней мере не использовать в шрифтах синий.

- - - Добавлено - - -

Если бы графику специально под такой "режим" рисовал художник, то скорее всего получилось бы еще интереснее.

CityAceE
08.06.2020, 12:58
в остальном небезынтересно
Там ещё можно поиграть тем, с какого цвет начинается полосатый спрайт. Тоже разный эффект будет в зависимости от содержимого спрайта.

CityAceE
08.06.2020, 13:54
ivagor, Exolon'ом можно было бы порадовать поклонников Львов ПК-01: процессор тот же, памяти достаточно, графика 256*256, каждая точка своим цветом - одним 4-х. Там можно было бы и поинтереснее сочетать 4 цвета, чем делать полосатыми спрайты. Думаю, что на Львове никогда не было игр такого уровня.

Titus
08.06.2020, 14:05
Стало любопытно, как он будет выглядеть. Раскрасил вручную
Кое-какие обьекты ничего, а кое-какие, например, желтая скала - не очень.

ivagor
08.06.2020, 14:50
Exolon'ом можно было бы порадовать поклонников Львов ПК-01
Для Львова можно сделать интересную (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1066915&viewfull=1#post1066915) версию, особенно если еще и графику доработать специально под него. Только у меня таких планов нет.
Насчет продвинутых Львовских игр - Zelya делал клон rick dangerous c конвертированной графикой, сам я не играл, но видео было красивое. Да и наши с Tim0xой конверсии с msx не такие уж плохие. А на ПК-02 (с z80) есть конверсии со спека.

Pluto
08.06.2020, 22:21
Сборник (https://yadi.sk/d/JY3rjdxHIJ7jQQ) доработанных и улучшенных версий эксолона для разных вариантов/модификаций специалиста.


Залил на SD карту обновленные версии EXOLON, в "Восточном Экспрессе" теперь работают все три возможных варианта: ч/б, 4-х, 8-и цветные.
Еще раз спасибо!

https://i.ibb.co/vq7mYCW/D5-EB654-A-97-FA-42-CC-974-D-90-C109-FE19-FB.jpg (https://ibb.co/vq7mYCW) https://i.ibb.co/zJ5cHFW/176-BB29-F-7118-4-DF7-BCEB-E895-A24-F76-A7.jpg (https://ibb.co/zJ5cHFW)

https://i.ibb.co/mvxSMc6/E7-BADE8-E-9321-4-DCE-A630-1-C82457-CEB95.jpg (https://ibb.co/mvxSMc6) https://i.ibb.co/9qmQtrn/497-D851-A-3644-4-B62-B743-1-B3-E1-BF5-F0-D7.jpg (https://ibb.co/9qmQtrn)

derfliegenddehollander
13.06.2020, 06:56
Запустил, все работает! Спасибо - отличная идея перенести на Специалист!

Rus
18.06.2020, 13:58
Слегка обновил (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828) варианты для MX/MX2, а также 4- и 8- цветные. Все же грустно, что на реалах, где таймер предусмотрен, его может не быть.


А есть ли в открытом доступе исходники этой версии?

CityAceE
18.06.2020, 13:59
А есть ли в открытом доступе исходники этой версии?
Думаю, что исходников как таковых не существует. Но даже то, что есть ivagor никуда не выкладывал.

ivagor
18.06.2020, 14:14
Полных исходников эксолона для специалиста в принципе не существует. Есть исходники моих процедур и их еще надо дополнить информацией - какие участки векторовского эксолона (бинарника) надо модифицировать.
Параллельно работе над специалистовской версией я завершал дизассемблер векторовской версии Максима Китченко. Почти доделал, но надо проверять, искать ошибки и недоделки, если есть. Пока эта задача на паузе.

Rus
18.06.2020, 14:49
Полных исходников эксолона для специалиста в принципе не существует. Есть исходники моих процедур и их еще надо дополнить информацией - какие участки векторовского эксолона (бинарника) надо модифицировать.
Параллельно работе над специалистовской версией я завершал дизассемблер векторовской версии Максима Китченко. Почти доделал, но надо проверять, искать ошибки и недоделки, если есть. Пока эта задача на паузе.

Тогда начинаю перенос Exolon на XT, на основе открытой дизассемблированной спектрумовской версии.

Rus
27.06.2020, 01:06
Полных исходников эксолона для специалиста в принципе не существует. Есть исходники моих процедур и их еще надо дополнить информацией - какие участки векторовского эксолона (бинарника) надо модифицировать.


Может есть спрайты в "человеческом" формате? А четырехцветные спрайты а-ля CGA получены наложением цвета на знакоместо, или есть уже специально сформированные? Прошу поделиться.. Это значительно ускорит перенос. Хотя без своих самописных тулзов чувствую все равно не обойдется :)

ivagor
27.06.2020, 06:04
Rus, в любом случае придется разбираться с форматами хранения графики. Можно воспользоваться наработками (https://bitbucket.org/esl/exolon-zx/src/5701abe28f1d5b668beab141c6bca5baac31cf4e/) eslа, вот например картинки спрайтов (https://bitbucket.org/esl/exolon-zx/src/5701abe28f1d5b668beab141c6bca5baac31cf4e/tools/rb/png/sprites/?at=default).

ivagor
04.07.2020, 07:10
Оффтоп, но не хочу начинать отдельную тему. Есть ли хотя бы человек пять, которым был бы интересен порт еще на какой-то комп с 8080 или 8085 (или даже z80) и графикой >=256x192? Сразу скажу, что кое-где есть вопросы с управлением, например на океан-240 я бы стал портировать только при поддержке джойстика.

zx_
04.07.2020, 09:20
ivagor, *ревнует*
у Океана 240 два реальных пользователя,
но каких !

кстати, у Океана штатно /почти/ 512 к память
алиен8 тоже

у Океана и ви53

CityAceE
12.09.2020, 11:00
Сборник доработанных и улучшенных версий эксолона для разных вариантов/модификаций специалиста.
ivagor, ну вот, хотел в очередной раз скачать пак и получил вот это:

https://pic.maxiol.com/images2/1599897582.1334572783.notfound.png

ivagor
12.09.2020, 11:05
Пардон, теперь архив не на яндексе, а на форуме (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828)

NEO SPECTRUMAN
12.09.2020, 15:11
Стало любопытно, как он будет выглядеть. Раскрасил вручную :)

https://pic.maxiol.com/images2/1591437827.90460257.gameover8.png https://pic.maxiol.com/images2/1591609255.90460257.gameover48.png

комбинированные цвета сильно просаживаются
и получается такой же ужас как не БеКа


я бы смотрел в сторону чего то такого
https://jpegshare.net/images/73/0c/730c208f0af8dddc3213874ae4c24acc.png

- - - Добавлено - - -

точнее я имел ввиду
https://jpegshare.net/images/e0/c8/e0c8502d6c473a0d8255aefc651daada.png
для каждого спрайта нужно отдельно гуляться фазой паласатасте

Mick
03.02.2021, 19:22
Избавляемся от специфических инструкций Z80, заменяя такие инструкции конструкциями, состоящими из инструкций Intel 8080, либо полностью переписывая процедуры.

Скажите, остались исходники Exolon в том варианте, кода поменяли Z80 на ВМ80, но еще не меняли процедуры вывода графики и так далее.
Ну на худой конец просто исходники Exolon для Спектрума. А то я в темах не нашел.

ivagor
03.02.2021, 20:10
остались исходники Exolon в том варианте, кода поменяли Z80 на ВМ80
Таких полных исходников вроде и не было.

Mick
03.02.2021, 21:19
Таких полных исходников вроде и не было.

А что тогда esl делал?

CityAceE
03.02.2021, 21:22
А что тогда esl делал?
Он дизассемблировал (https://zx-pk.ru/threads/24083-nuzhno-exolon-code-source.html?p=758275&viewfull=1#post758275) оригинальную игру.

Mick
03.02.2021, 21:23
Он дизассемблировал оригинальную игру.

С ZX Spectrum я так понимаю?
Но его репозитарий уже неактивен

ivagor
04.02.2021, 07:40
Но его репозитарий уже неактивен
Хорошие люди сохранили копии (https://zx-pk.ru/threads/27747-sergeya-erokhina-(esl)-bolshe-net-(.html?p=1098017&viewfull=1#post1098017)

NEO SPECTRUMAN
07.02.2021, 02:42
Хорошие люди сохранили копии
но они сохранили на плохом яндекс диске...



Скажите, остались исходники Exolon в том варианте, кода поменяли Z80 на ВМ80, но еще не меняли процедуры вывода графики и так далее.
если хочетсо что то быстро портировать на зх8080
то я ужо посмотрел в долбанном ZEsarUX-е статистику использования команд z80 для жмене игор
и в общем она не радуит...
особенно в плане дергания ix iy-ков...

думаю реально без особого надрывательства портировать что нибудь с 16К спектрума
например галаксианс
но опять же он обильно юзает ix iy
итоговый *****код будет дико тормозным...

CityAceE
27.10.2023, 08:53
Вчера прошёл все 125 экранов Exolon'а для Специалиста под собственным эмулятором. С бесконечными жизнями, конечно. Игра полностью играбельна! Тормоза, безусловно, присутствуют в местах, где много красных шариков, но в целом терпимо. Нужно будет потом и ч/б версию перепройти на реальном компьютере. Вот только геймпад припаяю. Думаю, что в ч/б версии вообще тормозов не будет.

В очередной раз взгрустнулось, что такие игры появляются тогда, когда они уже почти никому не нужны, и что больше уже никто ничего лучшего для Специалиста не напишет.

CityAceE
01.11.2023, 14:26
ivagor, обнаружил баг (?) в Exolon'е. После сброса компьютера игра потом нормально стартует, музыка играет, можно даже запустить саму игру. Но при нажатии на огонь (пробел) игра выходит в главное меню. Остальные направления в игре работают нормально. Вначале обнаружил это в своём эмуляторе (ч/б и 8с версии), и сразу подумал, что это я что-то накосячил. Но перепроверив ч/б версию на реальном компе, получил ровно такое же поведение.

ivagor
01.11.2023, 16:25
Это не баг, эксолон не предназначен для корректной работы после сброса. Пзу стеком портит процедуру.

- - - Добавлено - - -

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

CityAceE
01.11.2023, 17:13
Это не баг, эксолон не предназначен для корректной работы после сброса.
Я это предполагал, но спросить был должен :) Просто внешне всё выглядит хорошо, кроме кнопки Огонь.


Пзу стеком портит процедуру.
Теперь причина ясна!


На всякий случай добавлю, что это не первая и не единственная такая игрушка для специалиста. Попробуй запустить после рестарта jetset.
Да нет, я-то прекрасно понимаю, что далеко не все игры после Сброса выживают. А в Jet-Set и вовсе часть процедур в экране сидит.

HardWareMan
01.11.2023, 19:25
Это не баг, эксолон не предназначен для корректной работы после сброса. Пзу стеком портит процедуру.
Да там вообще вот уже 30 лет непонятное мне происходит: ПСПЗУ использует 8Е00-8FFF для стэка и ячеек, а монитор ставит стек на 7FFF. В итоге дырень образуется, куда я в своё время положил ассемблер и дизассемблер микрон, для работы с ED^7000

ivagor
30.12.2023, 08:41
Биперная музыка в релизных версиях слегка не попадает в оригинал, а сам биперный оригинал не совсем попадает в общепринятые ноты. Т.к. я постоянно выступаю за попадание, то не мог так оставить и в 21 году решил этот вопрос. Получилось аж 3 версии, т.к. у каждой есть свои плюсы и минусы (но они все попадают в ноты точнее биперного оригинала на спеке):
exolonbeep140 - базовая
exolonbeepStereo - "стерео", которая использует 2 физических канала - бипер и магнитофон. Она громче и качественнее. Можно было ее вставить в ч/б и MX варианты.
exolonbeep - "суперскважная". Она тише базовой и тембр отличается от оригинала, зато выше частота дискретизации.
Оставалось выбрать для цветных 140 или суперскважную и зарелизить, но бензин кончился.
CityAceE сделал видео, в котором можно услышать фрагмент музыки, поэтому я решил выложить попадающие версии. Послушать можно в Emu80, в Emu лучше не надо.
Для "стерео" надо деактивировать
Настройки>Не воспроизводить звук магнитофона
а то будет слышен только один канал.

CityAceE
25.09.2025, 20:35
ivagor можно тебя попросить выложить обновлённый пакет Exolon'ов для всех вариаций Специалистов? У меня сейчас цветной MX/MX2 с таймером, а также цветной ЛИК с таймером по схеме SP580, но сходу не нашёл ссылку на правильный билд.

ivagor
25.09.2025, 21:04
С 12.09.2020 финальный архив на форуме (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828)

CityAceE
25.09.2025, 22:44
С 12.09.2020 финальный архив на форуме
Мне почему-то казалось, что было обновление. Для автоопределения таймера SP580 не было версии?

ivagor
26.09.2025, 06:07
Для MX и SP580 (при наличии таймера) используется таймерная тормозилка
В эмуляторе работало.

breeze
26.09.2025, 10:58
Вот бы кто ещё видео с «живого» аппарата записал, желательно с музыкой ;)