Ynicky, шикарно!:v2_dizzy_heart:
Вид для печати
Ynicky, шикарно!:v2_dizzy_heart:
Ynicky, очень круто! Spec256 отличный формат расширения цвета. Современное железо вполне позволяет навесить это на реальный спек.
Вопрос такой, возможно ли раскрасить игру 128К с 2 экранами видеопамяти?
Я думаю можно. В EmuZWin параллельно с другими играми раскрашиваю 128К версию "Tree Weeks in Paradise".
Пробую разные игры для проверки аппаратного эмулятора.
Только, к сожалению, игры для 128К у меня пока не запускаются.
Может это связано с ESXDOS085. А в EmuZWin - нет проблем.
https://youtu.be/UFWfYZz6noY
- - - Добавлено - - -
Как дораскрашу - будет.
Three Weeks In Paradise:
Прошел игру до конца. Раскрасил. Осталось кое-что не раскрашенное.
Не увидел это при прохождении или не имело смысла раскрашивать.
Оказалась игра для 48k. Когда после загрузки в эмулятор tap файла сохранил в sna,
он был 128k. Но оказалось эмулятор не правильно сохранил.
https://youtu.be/ryitASHUSUc
Вложение 65521
Эта игра же две версии имеет, 48 и 128. В 128 есть несколько новых локаций и новые предметы.
а ещё в 128ой версии после загрузки проверяется контрольная сумма данных (вместе с ПЗУ) ???
так как игра делалась на 128к, на +2/+3 она сбросится
Ага, так и есть. Везде сбрасывается, кроме 128го. Намутили.
На Пентагоновском ПЗУ, правда, идет ещё.
Начал красить nether earth
Вложение 65522
Вложение 65523
В какой-то теме на форуме был вопрос: что нужно для написания новых игр под Spec256?
Ответ звучал так: ничего.
Темы уже не помню, поэтому напишу в этой.
Поработав с раскраской нескольких игр и поэкспериментировав с аппаратным
эмулятором Spec256 пришел к выводу, что для минимизации аппаратных затрат нужно
придерживаться следующих правил:
Краткое руководство для написания игр в формате Spec256.
Те спрайты и тайлы, которые планируются к раскраске в 256-цветном режиме,
необходимо поместить в определенную область памяти, кратную степени двойки.
Например во второй банк (#8000 - #BFFF). Он же может быть использован в
ZX Spectrum128. При этом оперативной памяти для хранения спрайтов и тайлов
потребуется в 8 раз больше (16К х 8 = 128К). Где 8 - это ширина памяти
в байтах (64 разряда). Если ресурсов аппаратного эмулятора не хватает,
выделенную память можно уменьшить, например до 64К (#8000 - #9FFF) и т.д.
Также следует поместить буферы, через которые выводятся спрайты на экран
в эту же определенную область памяти. То же касается и для вывода графики через стек.
Еще необходимо избегать раскраски разных тайлов одним и тем же знакоместом,
где цвет определяется разными атрибутами.
Раскраску спрайтов и тайлов можно проводить в эмуляторе Кладова
EmuZWin с дальнейшим получением GFX файла. Так как формат файла имеет
попиксельную структуру, т.е. каждый пиксель кодируется байтом индекса
палитры, его необходимо преобразовать в другой формат, где для каждого
из восьми процессоров строка из восьми байтов пикселей одного знакоместа
преобразуется в восемь байтов растра для каждого процессора.
Например:
Допустим до раскраски имеется строка растра знакоместа #41,
где в эмуляторе Кладова нулевой бит (Paper) становится байтом #00,
а единичный (Ink) - #FF.
После преобразования в GFX-формат без раскраски получим строку растра в байтах
#FF0000000000FF00 (первый байт - младший бит в растре).
где каждый байт - это индекс палиты одного пикселя.
Далее такой формат преобразуем в #4141414141414141,
где каждый байт - это строка растра для соответствующего процессора.
Новый формат необходимо поместить в определенную память аппаратного эмулятора.
Это можно сделать в mif файле для встроенной статической памяти FPGA,
или подгрузить во внешнюю SDRAM память программным загрузчиком.
В видеоконтроллере аппаратного эмулятора происходит обратное
преобразование. Т.е. формат #4141414141414141 превращается в #FF0000000000FF00.
Если индексы равны #00 или #FF, цвет пикселя определяется как в обычном спектруме.
#00 - это Paper, а #FF - это Ink, с соответствующими атрибутами знакоместа.
Если индексы не равны #00 или #FF, то это означает что пиксель раскрашен, и его
цвет в этом случае определяется встроенной в видеоконтроллер палитрой.
Если надо раскрасить пиксель в черный или белый цвета, в палитре должны быть
соответствующие индексы не равные #00 и #FF. Например у Кладова это #50 и #2F.
Шутка про Spec256. Пробовал красить Dizzy. Жена подходит и спрашивает: "Чем занимаешься?" Я говорю. "Яйца крашу..."
Диззи ж должен быть белый как я не знаю )
Предсказуемая каша при наложениях. Контрастность грязи разная в зависимости от цвета.
Теоретически в эмузвине можно сделать без какофонии - нарезкой палитры на фиктивные независимые слои. На практике скорей всего лишь конфликты спрайтов с фоном убрать получится. Слишком мало битов, и атрибутные цвета использовать невозможно. И раскраска будет более примитивная - например, 16 цветов на фон и другие 16 цветов на спрайты, которые будут пачкаться друг об друга. Или два независимых псевдослоя спрайтов по 4 цвета на каждый. Может прокатить для дизей, где вообще немного подвижных спрайтов.
Я так для ULAX раскрашивал поделки на AGD, но мне проще - больше битов и атрибутные цвета не конфликтуют со слоевыми.
А ведь раньше маленькие картинки не пережимались.
Картинка-то 366х400 25Кбайт
А, предел 19.5 Кбайт. %)
Сжал немного. Сделал 128 цветов.
А как в Booty попасть в секретную встроенную мини игру?
Раскрасить то раскрасил, а проверить до конца не могу.
Теги: booty secret sub game
Вертикальные двигающиеся платформы раскрашиваются только в одной фазе, поэтому оставил их как есть.
https://youtu.be/3auGxdatOzY
Вложение 65595
И так нормально) По-моему, очень симпатично вышло, как всегда.
Раскрашивал попиксельно игру Ruff&Reddy для ULAX в редакторе EmuZWin24. Чтобы не пропала для Spec256 - выкладываю.
Вложение 67081
Посмотреть начало 4х уровней можно тут:
https://youtu.be/s74hffCldv4
https://youtu.be/vd7wB8LBogU
https://youtu.be/ZvmUbjRYr-M
https://youtu.be/NYtYd7qCWr8
Еще обновил CFG файлы для старых игр. Цвета стали понасыщенней.
Вложение 67082
Вложение 67083
Вложение 67084
Вложение 67085
Увидел тему и что-то вспомнил :)
Когда-то я хотел сделать версию в 256 цветах для известной игры Renegade. Я большой фанат этой игры, делал тоже другие моды для неё.
Работа была окончена скажем на 95%, но не завершена. Я не всем был доволен, были тоже глюки. Самый серёзный глюк - если потеряешь жизнь, игра завиисается. Не знаю почему, что я испортил.
Работы не окончил тоже потому что не было поддержки от людей на World of Spectrum. Они говорили что 256 цветов это им не интересно, что это не Спектрум и.т.д.
Поэтому никогда не выкладывал этой работы. Но решил выложить первый раз сегодня :)
Выкладываю весь эмулатор EmuZWin с игрой.
Держите:
https://www.sendspace.com/file/u0r84p
https://i.ibb.co/1ZFS5wD/renegade.png
Доделывать не буду. Если кому интересно, пусть доделает :)
Я бы сказал так - есть много людей для которых эмулатор ето "не аутентично". Но сделай им железо в соверменной технологии FPGA, напиши логику для железа в языке Verilog, тогда будет аутентично :)Цитата:
Какая ирония- теперь они все в поддержке ZX-NEXT.
ULAX-срач перенёс в эту тему https://zx-pk.ru/threads/27710-zx-ulax.html
а вот этот пост зачем перенёс? https://zx-pk.ru/threads/27710-zx-ul...l=1#post989616
в нём ведь даже жирным было выделено, что относится он к спеку, а не к юлаксу
мне теперь возвращать его сюда самому?