1 Отредактировано garnizon (06-01-2019 17:10)

Тема: Полный знакогенератор семёрки (ЗГ АГАТ-4)

Snake сделал бета версию эмулятора, где текстовые экраны с правильным разрешением 224х256 и 448х256. Эмулятор теперь просить реальную прошивку ЗГ из микросхемы.

Это событие, подвигнуло меня испытать расширенный семерочный знакогенератор (такой же на Агат-4).
Он несколько интереснее девяточного. Решил попробовать что-то в нём изобразить.
Выяснилось, что там много замутов из-за того, что тайл символа 7х8 (от Apple по наследству видимо). Если бы тайл был 8х8 , как например у спектрума или комодора) то всё было бы проще. В основном ограничения связанны с заливкой областей однородным рисунком, ну и еще кой чего.

Часть псевдографики универсальная, может использоваться как в режиме Т64 так и в режиме Т32. 
А вот часть явно заточена именно по Т32, и ничего путного нарисовать в Т64 ей не получиться.

В процессе проб, появились наброски текста, который прилагаю здесь. Коричневым выделены вопросы - это то, что я не понял.
(не всегда понятно чем руководствовались те, кто рисовал этот ЗГ).

http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=482&download=1

$00,$10 - заливка правыми косыми полосами. Для получения правильного рисунка по горизонтали, требуется чередование этих тайлов с применением инверсии по такому принципу:
00norm > 10norm > 00inv > 10inv и дальше по новой. Для Т64 можно только вертикальную заливку шириной в два знакоместа сделать.

$01,$11 - заливка кубиками 2х2 пикселя. Принцип такой же как и в предыдущем случае. 

$02,$12 - заливка левыми косыми линиями. Принцип такой же как у двух предыдущих.

Совокупление нормальных $00,$10 и нормальных $02,$12 (для Т64 скажем) - получаются прикольные обои из квадратов.


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

$04 - Видимо только для т32, для правильного рисунка по горизонтали, надо чередовать нормальный и и инверсный.

$05 - Аналогично предыдущей.

$06,$08 - чередование этих тайлов дает горизонтальную верёвочку

$07 - дает вертикальную верёвочку

$09,$0А - вот это я не понял для чего, то ли дополнения для региона $13-$19, то ли это допы для рамочек (хотя с ними не на одной плоскости)

$0B, $0D, $0F - линии и крестик, но сплошную линию или сетку сделать из них не выйдет.

$0С, $0Е - уголки, можно использовать для сглаживание, но получать 4 различных вида только в Т32 (с помощью инверсии). Кстати если  строить какие-то фигуры, то края будут с ступеньками (см. рис. MonsterMaze) - 7x8 ведь.

$13-$19 и $1A-$1F - на девятке такие штуки совсем плохо развиты. Можно с точностью до пикселя увеличивать строки знакоместа, снизу вверх или слева на право (в Т32 с помощью инверсии и в обратные стороны). Я такие применил в рисунке дискеты (см.рисунок)

$20-$3F - тут всё ясно, рамочки на любой вкус.

$81-$86 - не понял что это, типа какую-то динамическую фишку можно из них сделать?

$8E,$8F - вроде как человечек какой-то танцующий из них может получиться, но вот что такое $9F? тот же человечек на руках стоит? тогда что это за третья конечность?

Post's attachments

35.png, 1.47 kb, 448 x 256
35.png 1.47 kb, 24 downloads since 2018-12-14 

MM.png, 1.75 kb, 448 x 256
MM.png 1.75 kb, 25 downloads since 2018-12-14 

US.png, 2.6 kb, 448 x 256
US.png 2.6 kb, 24 downloads since 2018-12-14 

Attachment icon ZG.PNG 11.36 kb, 213 downloads since 2018-12-15 

2

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

81-86 похожи на анимацию тоннеля: если чередовать 1-2-3-4-3-4-3-4-3-4-3-4-3-4-5-6 получится как бы влёт, потом пролёт внутри, пока чередуются 83-84, и вылет:

https://dl.dropboxusercontent.com/s/443hceski4eqa3e/tunnel.gif

3

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

8E, 8F, 96 и 97 похожи на пришельцев из Galaxian. Возможно, 9F задумывался как корабль игрока. 81-86 можно использовать как анимацию взрыва, 9B и 9C -- для анимации летящего снаряда. С помощью 09 и 0A можно изобразить разные стадии разрушения щита. В общем, ЗГ рисовал фанат Атари :)

4

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

Вообще, мне кажется у разработчиков не было четкого понимания, что за символы использовать в позициях $00-$1F и $80-$9F, а, главное, зачем :) Поэтому они добавили все символы, которые где-то видели и еще несколько десятков своих. Тут и из CGA-шного ЗГ есть символы, и из Commodore PET.

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

Но ведь у Агата были графические режимы! Там можно было нарисовать все, что угодно! Какая польза от всех этих штриховок и линий разной толщины? Тем более, что всех возможных вариантов сочетания пикселей (а их 2^56) в ЗГ все равно не впихнуть, и графический режим текстовым не заменить.

5 Отредактировано garnizon (15-12-2018 16:56)

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

SnakE пишет:

9B и 9C -- для анимации летящего снаряда

Мне и в голову не могло зайти что это похоже на рисунки для Galaxian, и правда похоже. Думал что 9B и 9C это для какого-то "звездного неба", типа если некоторые из звезда падают, то анимация плавнее.

avivanov76 пишет:

Какая польза от всех этих штриховок и линий разной толщины?

Предположение:
возможность получить цвет при разрешении близком к 256х256, опять же скорость вывода изображения в текстовом режиме несравнимо больше, что положительно если прога на бейсике.
Ну а линии разной толщины, может типа визуального эквалайзера сделать (13-19) в цвете опять же.

6

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

garnizon пишет:

Предположение:
возможность получить цвет при разрешении близком к 256х256, опять же скорость вывода изображения в текстовом режиме несравнимо больше, что положительно если прога на бейсике.
Ну а линии разной толщины, может типа визуального эквалайзера сделать (13-19) в цвете опять же.

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

7

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

garnizon пишет:

Snake сделал бета версию эмулятора, где текстовые экраны с правильным разрешением 240х256 и 448х256. Эмулятор теперь просить реальную прошивку ЗГ из микросхемы.

Эта версия доступна для скачивания? Это новый эмулятор или доработка эмулятора Олега Одинцова?

8

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

AlexBel пишет:
garnizon пишет:

Snake сделал бета версию эмулятора, где текстовые экраны с правильным разрешением 240х256 и 448х256. Эмулятор теперь просить реальную прошивку ЗГ из микросхемы.

Эта версия доступна для скачивания? Это новый эмулятор или доработка эмулятора Олега Одинцова?

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

Post's attachments

td1.png, 4.25 kb, 562 x 416
td1.png 4.25 kb, 21 downloads since 2018-12-16 

td2.png, 5.36 kb, 562 x 416
td2.png 5.36 kb, 22 downloads since 2018-12-16 

ultima.png, 9.26 kb, 562 x 413
ultima.png 9.26 kb, 22 downloads since 2018-12-16 

9

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

Класс!

10 Отредактировано AlexBel (24-02-2019 08:05)

Re: Полный знакогенератор семёрки (ЗГ АГАТ-4)

garnizon пишет:

$00,$10 - заливка правыми косыми полосами. Для получения правильного рисунка по горизонтали, требуется чередование этих тайлов с применением инверсии по такому принципу:
00norm > 10norm > 00inv > 10inv и дальше по новой. Для Т64 можно только вертикальную заливку шириной в два знакоместа сделать.

$01,$11 - заливка кубиками 2х2 пикселя. Принцип такой же как и в предыдущем случае. 

$02,$12 - заливка левыми косыми линиями. Принцип такой же как у двух предыдущих.

$04 - Видимо только для т32, для правильного рисунка по горизонтали, надо чередовать нормальный и и инверсный.

$05 - Аналогично предыдущей.

Написал текстовый видеоконтроллер АЦР32. Знакоместо каждого символа 8х8. Использован знакогенератор из этой темы, некоторые символы псевдографики 7х8 доработаны до 8х8. С сообщением фотография экрана с тестовой картинкой, бинарный файл видеопамяти и бинарный файл шрифта знакогенератора.

Если кто-нибудь пришлёт бинарные дампы видеопамяти АЦР32 для проверки правильности отображения символов псевдографики со знакоместами 8х8 - буду очень благодарен. Пока что считаю проверку процитированных комбинаций успешно пройденной.

Разрешение экрана 1024х768, т.е. родное разрешение (256х256) учетверяется по горизонтали и утраивается по вертикали. Картинка при этом получается не квадратной, но и оригинальная картинка "Агата" несколько вытянута по горизонтали, так что, думаю, всё нормально.

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

http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=503&download=1

Post's attachments

Attachment icon D75-RF2-Agat7_CORRECTED.bin 2 kb, 16 downloads since 2019-02-23 

Attachment icon S2500019.JPG 835.27 kb, 447 downloads since 2019-02-23 

Attachment icon text_АЦР32_demo.bin 2 kb, 13 downloads since 2019-02-23