PDA

Просмотр полной версии : Каким образом загоняете изображения из сторонних редакторов?



ALKO
20.01.2020, 16:51
Я обычно рисую в своём любимом Пэинт нете в ЧБ.
После перегоняю в zx paintbrush, тама разукрашую атрибуты. Ну а затем через формат SCR импортирую в bmp2scr, где могу задать компрессию получившейся пикчи и сохранить в тапку.

Такая процедура норм для фуллскриновой картинки.
А вот если мне нужно отобразить цветную пикчу конкретной ширины/высоты по заданным координатам? Желательно с компрессией.

Поделитесь опытом, кто как делает подобное.

SoftLight
20.01.2020, 17:19
В zx paintbrush есть выгрузка участка экрана побайтно, прямо в виде листинга asm для вставки в ассемблер или в виде данных bin и hex. Без компресии, конечно. Но ты же будешь, в итоге, всю свою работу компрессировать - смысла компрессировать отдельный спрайт нет. Да и tap ты будешь все равно собирать в ассемблере.

ALKO
20.01.2020, 17:25
По умолчанию
В zx paintbrush есть выгрузка участка экрана побайтно, прямо в виде листинга asm для вставки в ассемблер или в

Эт я знаю. Но это лишь массив данных. А выводилка есть какая для них ? Именно процедура.


Но ты же будешь, в итоге, всю свою работу компрессировать
Буду ли... Я-то и компрессорами ни разу не маялся.
Только то что генерится автоматом в bmp2scr

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

Нет опыта работы с такими вещами.

SoftLight
20.01.2020, 17:53
Эт я знаю. Но это лишь массив данных. А выводилка есть какая для них ? Именно процедура.

С учетом нелинейности видеопамяти спекртума, задача сильно зависит от размеров спрайта, от его позиции и в целом от того, как и где мы хотим его печатать. То-есть самая универсальная процедура будет одновременно самой тормозной и огромной. Надо определиться с задачей и почитать в Этюдах (https://zx-pk.ru/threads/9031-etyudy/page25.html) и других темах способы вывода спрайта. Вот (https://zx-pk.ru/threads/23544-vyvod-sprajta-po-x-y.html), например.

ALKO
20.01.2020, 17:59
Скорость для меня не критична.
Достаточно будет даже одного кадра в секунду.

Enigmatic
20.01.2020, 20:59
Можно попробовать мультисистему Авангард, которая позволяет компилировать мульт или одну картинку по произвольному адресу, а воспроизводить его можно как музыку с любой скоростью. Если только одна картинка, то программа работает как компрессор.
https://sun9-66.userapi.com/c854528/v854528069/1dd610/kCxpFM2fPOU.jpg

ALKO
05.04.2020, 14:45
Начал я тут маяться написанием процедурки вывода экспортированного из paintbrush массива прямоугольной области.
Для начала тренируюсь на пикселях без атрибутов одного знакоместа.
Но што-то пошло не так

https://sun1.43222.userapi.com/pv98mKUfOng6tTZWdrepXL8HfBCiOhwAOkgTDQ/Bg-wkvP8nLM.jpg

LW
05.04.2020, 19:46
1. На знаком с этим ассемблером, но есть подозрение, что он не понимает конструкцию OR SCREEN_ADDR/#100.
Попробуйте заменить на OR #40.

2. в выводе знакоместа нет инкремента источника

3. если вывод идёт в рамках одного знакоместа, п/п DOWN_HL избыточна, достаточно inc h

4. Источник лучше повесить на регистр DE, а цикл на B:


ld de,30000
ld b,8
loop
ld a,(de)
ld (hl),a
inc h ;call DOWN_HL
inc de
djnz loop

ret

Andrew771
05.04.2020, 21:46
команды нужно писать с отступом от начала строки, иначе они воспринимаются компилятором как метки.

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


1. На знаком с этим ассемблером, но есть подозрение, что он не понимает конструкцию OR SCREEN_ADDR/#100.
Попробуйте заменить на OR #40.
EmuZWin понимает арифметические выражения в командах.

ALKO
05.04.2020, 21:48
п/п DOWN_HL избыточна, достаточно inc h
Разве?
Экран разделён на три части ведь. Оно корректно наложится?

Процедурку следующей позиции брал отсюда
http://speccy.info/Расчет_адреса_следующей_ст оки_экрана

LW
05.04.2020, 22:03
Имелось ввиду, если выводится только одно знакоместо.

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


команды нужно писать с отступом от начала строки, иначе они воспринимаются компилятором как метки.

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


EmuZWin понимает арифметические выражения в командах.

в логе ошибок
29:23 At pass 2 label /#100 is adding .....
намекает на обратное