PDA

Просмотр полной версии : Игры под ZX-Poly



Raydac
03.12.2017, 22:57
так как сегодня "Адвент", то решил что неплохо было бы сделать какуюнить вариацию старой доброй игрухи для ZX-Spectrum в раскараске под ZX-Poly, выбрал игру Official Father Christmas (1989) (http://www.worldofspectrum.org/infoseekid.cgi?id=0003493) поскольку она и рождественская и внутри не имеет сильных графических хитростей (ну отчасти), так что удалось подвергнуть раскраске почти все элементы игры (на картинке наложена нераскрашенная на раскрашенную по диагонали)
63189
попутно добавил в ZX-Poly режим при котором изображение в режиме 16 цветов маскируется если в атрибутах обнаружено совпадение INK и PAPER, делается вывод что автор хотел что то скрыть на экране и при таком испольуется цвет INK, а не синтезированный из разных планов
https://raw.githubusercontent.com/raydac/zxpoly/master/adapted/OfficialFatherChristmas/movie.gif
ссылка на адаптированную версию и скриншоты (https://github.com/raydac/zxpoly/tree/master/adapted/OfficialFatherChristmas)

ZX_NOVOSIB
04.12.2017, 17:36
Даёшь четырёхядерный спектрум в массы! Даёшь ZX-Poly в железе! (и лучше без плис, для пущего эффекту) Поднимите мне веки, я хочу его видеть!

michellekg
04.12.2017, 18:49
Запускаю эмулятор на macOS High Sierra, загружаю файл Official Father Christmas.zxp, игра запускается, но при выборе управления (1, 2 или 3) мне выдаётся такое:

63201

Что я делаю не так? Отмечать галочкой ZX 128K Mode я, разумеется, пробовал.

Raydac
04.12.2017, 19:00
Что я делаю не так? Отмечать галочкой ZX 128K Mode я, разумеется, пробовал.
по умолчанию с эмулем поставляется только тестовый ROM (включать в поставку фирменный я не решился), поэтому надо зайти в File->Options и там выбрать ROM-128 вместо тестового, после чего нажать OK и перезагрузить эмуль (после загрузки он скачает ROM 128), так же там количество тиков между обновлениями видеобуффера можно выставлять, если машина быстрая то можно поставить 1

Fishbone
05.12.2017, 07:48
Выглядит отлично:v2_thumb:

KondrSpb
18.12.2017, 14:00
Как думаете, ZX-Poly в железе возможно ли реализовать как прошивку для ZX-Evo?

Например основной Z80 железный, а вспомогательные эмулируются

А так проект супер :v2_thumb:

Raydac
18.12.2017, 15:10
Например основной Z80 железный, а вспомогательные эмулируются

имхо одно из важных для реализации - что бы все Z80 были совершенно идентичны, весьма желательно от одного производителя даже, так как малейшее расхождение в обработке даже некритических и необязательных мест кода может породить рассинхронизацию процесса

Raydac
18.12.2017, 15:33
Железный Z80... Ещё нужно добавить эффект - плацебо. Иначе не работает.
неочень понял причем тут плацебо, я о том что взять один железный z80 и виртуальные, то надо что бы виртуальные 100% соответствовали железному во всех режимах и совершенно идентично обрабатывая все виды недокументированного поведения во всех режимах, имхо такого достичь проще если юзать или все виртуальные или все железные от одного производителя

KondrSpb
19.12.2017, 11:59
Скорее всего человек имел ввиду, что положительные ощущения от осознания того, что работает реальный Z80, схожи с эффектом плацебо

Raydac
02.06.2019, 12:28
делал эксперименты по проверке режима 512x384, взял Медноноговскую "приключения Буратино", результат получился такой
1. обратная совместимость в режиме 512x384 работает нормально
2. не удается увеличить разрешение спрайтов которые программно зеркалятся в коде, так как получается скажем что Буратино в одном направлении идет нормальный хайрес, но в другом идет зомби-буратино изрядно подразложившийся
3. ну и когда игра сильно цветная, то эффект от хайрес малозаметен
4. увеличивать разрешение более трудозатратно чем красить, но вполне может быть что можно как то автоматизировать
https://raw.githubusercontent.com/raydac/zxpoly/master/adapted/BuratinoAdventures/comparescr.png
материалы по адаптации все тут (https://github.com/raydac/zxpoly/tree/master/adapted/BuratinoAdventures)

NEO SPECTRUMAN
02.06.2019, 17:36
2. не удается увеличить разрешение спрайтов которые программно зеркалятся в коде,
может можно увеличить разрешение только по вертикали?

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


4. увеличивать разрешение более трудозатратно чем красить, но вполне может быть что можно как то автоматизировать
и єто ничего не дало
жизненно важных деталей не прибавилось

тут бы лучше смотрелись перерисованные спрайты под цвет на точку

Raydac
02.06.2019, 18:51
и єто ничего не дало
жизненно важных деталей не прибавилось

пока очень неплохие результаты с хайресом достигались на утилитах, вроде zx-word, там удвоенное разрешение кайфово идет
https://raw.githubusercontent.com/raydac/zxpoly/master/docs/screenshots/zxw_zxpoly512x384.png

Raydac
02.06.2019, 23:42
тут бы лучше смотрелись перерисованные спрайты под цвет на точку
цветные игры делаются уже с расчетом что бы избежать клешинга, поэтому раскраска каждой точки вообще была бы незаметна, так как на скриншоте из неадаптированной версии видно что нет никакого клешинга

NEO SPECTRUMAN
03.06.2019, 02:42
цветные игры делаются уже с расчетом что бы избежать клешинга, поэтому раскраска каждой точки вообще была бы незаметна, так как на скриншоте из неадаптированной версии видно что нет никакого клешинга
всмысле не клешинг
а перерисовать используя штриховку
больше деталей\градиенты
так чтоб в знакоместе было больше чем 2 цвета

чтоб казалось не заезженные кислотные 15 цветов
а 112+ (для простой шахматки)

типо так (сходу получилось какоето гафно)
https://zx-pk.ru/attachment.php?attachmentid=69196&d=1559515351

конечно при такой разукрашке потеряется разнообразие объектов которое отличается только атрибутами...



пока очень неплохие результаты с хайресом достигались на утилитах, вроде zx-word, там удвоенное разрешение кайфово идет
ну для текста да полезно
а как то улучшить этим игры уже сложнее

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

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


пока очень неплохие результаты с хайресом достигались на утилитах, вроде zx-word, там удвоенное разрешение кайфово идет
ну а я смотрю на 2 буратины и не вижу разницы :)
нужно только всматриваться
чтоб увидеть что перерисовано под 512х384
и то выдает штриховка
да и клешинг уже кубами 16х16 смотрится еще противней

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

Кстате а как щас предлагается красить игры?

Raydac
16.11.2019, 15:12
в ZX-Poly добавлен еще один видеорежим 256x192 с маскированием. Если у атрибута CPU0 сброшен FLASH бит, то блок рассматривается как обычный ZX-Spectrum и для раскраски используются атрибуты из видео-памяти CPU0. Если бит установлен и INK и PAPER из CPU0 одинаковые то блок заливается цветом INK (который равен PAPER и в играх такое используется как правило для сокрытия графических элементов, вроде нижней части в скроллере), иначе из битов графических планов для каждой точки формируется индекс как в обычном ZX-Poly 256x192 режиме. Это позволило раскрашивать игры в которых двухцветное игровое поле (в качестве примера Flying Shark), сохраняя работу логики раскрашивания информационных панелей. В примере с Flying shark был просто выставлен бит FLASH у подпрограмм заливающих атрибуты у игрового поля.
https://raw.githubusercontent.com/raydac/zxpoly/master/adapted/FlyShark/flyshark_video.gif

Bedazzle
16.11.2019, 15:47
в ZX-Poly добавлен еще один видеорежим 256x192 с маскированием.

Клёво выглядит!

Titus
16.11.2019, 15:51
Если бит установлен и INK и PAPER из CPU0 одинаковые то блок заливается цветом INK (который равен PAPER и в играх такое используется как правило для сокрытия графических элементов, вроде нижней части в скроллере),
Зачем такой блок заливается цветом INK, если он предназначен для скрытия графики?

Raydac
16.11.2019, 15:54
Зачем такой блок заливается цветом INK, если он предназначен для скрытия графики?
INK и PAPER имеют одинаковое значение в таком случае, так что можно сказать что это и PAPER, главное показать этот цвет так как он как правило подогнан под игровой фон, в FlyingShark это нижняя черная полоска у скроллера

Lethargeek
16.11.2019, 16:11
В примере с Flying shark был просто выставлен бит FLASH у подпрограмм заливающих атрибуты у игрового поля.
что значит "выставлен бит flash У ПОДПРОГРАММ" ?? :v2_wacko:

Raydac
16.11.2019, 16:14
что значит "выставлен бит flash У ПОДПРОГРАММ" ??
там есть три подпрограммы заливающие атрибутами игровое поле и там изменен код что бы выставить бит FLASH у атрибута

Lethargeek
16.11.2019, 16:28
изменен код
ааа, так бы сразу и сказал :)

OrionExt
16.11.2019, 16:52
Какие чудеса можно сделать в FPGA c овер 10К ячеек (можно и меньше, но тут я не очень) :)