PDA

Просмотр полной версии : Demo скроллер картинки на УКНЦ



BlaireCas
29.06.2023, 13:56
Поскольку УКНЦ имеет таблицу строк и ей можно манипулировать - почему-бы не сделать простой скроллер в виде демки (гостям показывать :)

https://i.imgur.com/z7nhV2H.png

В итоге:
На просторах интернета взял картирку с первого уровня Super Mario. Подчистил. Тайлизировал ее в 32х16 тайлы (точнее они 16х16, но в УКНЦ пиксели "не квадратные" в режиме 640х288).
Ну и сделал ее прокручивание в 50fps.

Разумеется скролл не попиксельный :( Банальная прокрутка по знакоместу.

(и да, ответ на вопрос "а не сделать-ли нам марио?" - "сделайте, кто-ж против" :)

В аттаче исходник и .sav-ка. В EMUSTUDIO вроде окей. В UKNCBTL пропущен каждый второй кадр, поэтому там немного не так как планировалось. На реальной УКНЦ вроде окей.
Через Стык-С2 загружается (UkncComSender-ом), системных каких-то вызовов там нету.

Нажатие кнопок переключает режим RGB <-> GRB

.sav и .mac: 79095
диск с автозапуском: 79096

Titus
29.06.2023, 15:30
На просторах интернета взял картирку с первого уровня Super Mario.
А как на счет использования расширенной палитры, чтобы совсем цвета были как у Марио?
Я постил вариант в какой-то теме. Кажется в теме про 128 цветов.

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


Аттач: scromd.zip
А можно сразу самозапускаемый образ диска выложить, чтобы не мучиться с переписыванием .SAVa на образ?

BlaireCas
29.06.2023, 15:43
А можно сразу самозапускаемый образ диска выложить
Добавил.

У твоего эмулятора вроде окей. Какие-то подергивания, но возможно это лично на моем мониторе/моей винде/etc. Да и то они какие-то рандомные.
Ибо просмотрел во все глаза на железной УКНЦ с теликом, вроде не "дергается".

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


А как на счет использования расширенной палитры
А что толку с нее, в строке все-равно 8 цветов. Разве-что сделать немного плавный переход с "синего" неба где еще "до облачков" место осталось.

Titus
29.06.2023, 16:28
А что толку с нее, в строке все-равно 8 цветов. Разве-что сделать немного плавный переход с "синего" неба где еще "до облачков" место осталось.
Совсем другую палитру можно получить. Очень похожую на оригинального Марио.

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

Можно сделать скроллинг хотя бы по 2 пикселя, а не по знакоместу.
Для этого надо держать 4 копии экранной области, каждая со смещением на 2 пикселя. И выводить их по очереди, и в каждую дорисовывать.

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


В EMUSTUDIO вроде окей. В UKNCBTL пропущен каждый второй кадр, поэтому там немного не так как планировалось. На реальной УКНЦ вроде окей.
Emustudio старается быть синхронным с лучом и выводить каждый кадр, если хватает быстродействия у PC.
UKNCBTL показывает лишь каждый второй кадр.

BlaireCas
29.06.2023, 17:07
скроллинг хотя бы по 2 пикселя
Переключать 4 куска экрана?
1) рисовать со сдвигом или прешифтованными тайлами? Это абсолютно не вариант. Боюсь онлайн сдвига может нехватить в 50фпс. Прешифт возможно спасет, возможно не спасет (оно и так сожрало прилично времени ЦП и ПП).
2) Ладно - берем 320х288 - но... тут становится проблемой то что пиксели выросли в ширину ровно в 2 раза и экономии никакой.
3) Тогда третий вариант - сделать скроллер на 1/4 экрана :) в высоту - тогда оно может и прокатит, но что это будет за такое на 1/4 экрана-то :) (и опять упираться в шифт и в bis эти тормознутые)

У меня сейчас там сделано так что ПП рисует свою "строку" сразу mov (R0)+, (R5) в видеопамять (в R5 адрес типа 100000, я переключил банки ОЗУ на ПЗУ и mov срабатывает, а другое там не сработает). И то заметил что скорости пусть и хватает, но если делать шифты по ходу работы, если работать через РА РД регистры - то может подойти к критикал для скроллера в 50фпс.

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


Очень похожую на оригинального Марио
Это да, но не прямо сильно похожую. Коричневого там так и нет чтобы шляпку у гумбы нарисовать, а какие-то разнообразия красного, зеленого причем довольно тусклые - они неоч.

Ну и вообще господа, я помню TSPAL да и свой аналог пробовал. Цвета мне не понравились. Плюс на моей СЭМЗ-завода технике их банально нет кроме неясного канала яркости (он есть). Предлагаю не мучаться и считать что есть 8 цветов и максимум яркость (и то лишь для строки).

Titus
29.06.2023, 17:20
Ну и вообще господа, я помню TSPAL да и свой аналог пробовал. Цвета мне не понравились. Плюс на моей СЭМЗ-завода технике их банально нет кроме неясного канала яркости (он есть). Предлагаю не мучаться и считать что есть 8 цветов и максимум яркость (и то лишь для строки).
То, что тебе не понравилось на СЭМЗе, это не значит, что у другим не понравится на их тачках)

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


Переключать 4 куска экрана?
1) рисовать со сдвигом или прешифтованными тайлами? Это абсолютно не вариант. Боюсь онлайн сдвига может нехватить в 50фпс. Прешифт возможно спасет, возможно не спасет (оно и так сожрало прилично времени ЦП и ПП).
2) Ладно - берем 320х288 - но... тут становится проблемой то что пиксели выросли в ширину ровно в 2 раза и экономии никакой.

Не совсем понял твоего вопроса)

Моя идея такая, что:
1. Разрешение 320 точек в ширину.
2. В памяти находятся 4 экранные области, каждая из которых сдвинута на 2 пикселя относительно другой. Т.е. изображение со сдвигом на 0, 2, 4, 6 пикселей.
3. Каждый новый кадр показывается следующая экраная область.
4. Каждый новый кадр в каждую экранную область сбоку дорисовывается новый столбик тайлов (если надо).

В результате вся нагрузка на процессор - это нарисовать один столбик тайлов.

BlaireCas
29.06.2023, 18:06
В результате вся нагрузка на процессор - это нарисовать один столбик тайлов.
Нет. Столбики тайлов быстрее-всего рисуются по знакоместам. Если у тебя 2,3,4 экран сдвинуты - тебе надо тайлы либо сдвигать наживую всякими ashc либо иметь (+дофига памяти) прешифтованные тайлы. И учитывая что команда bis значительнее медленнее чем mov (а ее причем придется выполнять аж два раза ну ты понимаешь, сдвинул байт - надо в соседний байт влезть, а чтобы еще влезть - так это еще одна команда и потом третья и т.д.) - это реально не вариант.

Второй момент - в ЦП видеопамять обычно адресуема через [байт G][байт R] цвета на 8 пикселей (это слово) - как его сдвигать на 2пикселя вправо? Просто представь гимора скок будет. Жесть. Поэтому с УКНЦ никто не связывается. Я проходил эти моменты когда демку игрушки делал. Оно решилось через отдельные shadow R G B буфера. Но это сожрало все время и в итоге там вообщем ниочем скорость была.

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


1. Разрешение 320 точек в ширину.
2. В памяти находятся 4 экранные области, каждая из которых сдвинута на 2 пикселя относительно другой.

Оно боюсь не влезет при 8 цветах никак. Две (с небольшим) еще влезают. 4 уже вряд-ли. Это разумеется если говорить о "стандартной" видеопамяти УКНЦ (которая так-то и не видеопамять, но скажем специальная память). Можно допустим чутка ее скинуть (один из экранов) на память ЦП и ПП обычную - но останется тогда с гулькин нос там.

Titus
30.06.2023, 00:22
Оно боюсь не влезет при 8 цветах никак.
Можно было бы сделать игровой экран 256 точек в ширину, как на NES.
Пусть это было бы немного меньше, чем вся ширина экрана, но не страшно.

BlaireCas
30.06.2023, 02:28
Можно было бы сделать игровой экран 256 точек в ширину, как на NES
К сожалению в УКНЦ невозможно сделать экран ровно 256 пикселей шириной. Либо я не знаю как (без черных полей по краям). Ведь луч развертки экрана не особо будет выбирать чего ему рисовать. Это рисуем, это не рисуем.
Но это собственно не важно. Марио просто ну как-бы мечта. Возможно кто-то вдохновится.

Sandro
30.06.2023, 02:52
Ну и пусть будут поля. Один фиг УКНЦ вылазит до вообще максимального предела, разрешённого для ТВ изображения, куда больше?

У БК экран сильно меньше. У спека ещё меньше на четверть. И что?

Titus
30.06.2023, 10:06
К сожалению в УКНЦ невозможно сделать экран ровно 256 пикселей шириной.
Это да, нельзя.

Ну тогда остается вариант 320.

Для хранения 4-х экранов 320x240 (у NES высота 240 или 224 в зависимости от PAL/NTSC, если я правильно помню), потребуется 115200 байт. Из них 76800 байт в основной памяти и 38400 в памяти ПП.
А всего у нас памяти 128кбайт и 64кбайта соответственно.

S_V_B
05.07.2023, 18:07
Давайте забубеним всю память сдвигами и получим видимость "крутости" компа как в демках на БК:)
Убого.

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

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