ZX Club #08
31 мая 1998

Soft Group - chunky to planar conversion конвертор.

<b>Soft Group</b> - chunky to planar conversion конвертор.

     (C) Saruman / Dementia corp.

              C2P конвертор

  Привет,  народ! С вами  снова я,Saruman.
Как  мне помнится, в прошлый раз я расска-
зывал  о  методах  быстрого вывода графики
через  стек; а сегодня у нас еще один мощ-
ный  метод:  chunky  to planar conversion.
  Объясню поподробнее, в чем состоит смысл
данного  алгоритма.  Если  вы внимательнее
приглядитесь к последним демкам, то навер-
няка  заметите, что во многих эффектах для
имитации  16-цветового режима используются
текстуры.   Т.е.,   элементарной  единицей
изображения  становится не пиксел, а квад-
рат  со стороной, например, 4 пиксела. Та-
ким образом, в одном знакоместе мы получа-
ем 4 элемента, каждый из которых при помо-
щи  текстур  "окрашивается"  в  один из 16
цветов.  При  в  памяти  это, естественно,
хранится  в виде "байт на элемент"(chunky
data), а  при  выводе на  экран необходимо
преобразовывать   данные    в  стандартный
(planar)  вид.  Для достижения максимально
быстрого  вывода и служит данный алгоритм.
  Замечание:  хочу  предупредить, что этот
метод  был разработан не мной. Я сам узнал
о нем из файлов Explodera.

  Каждый байт chunky datы имеет вид:
                          1000 0101

  Здесь  младшие 4 бита - это цвет (смеще-
ние от начала палитры), а старшие 4 бита -
- базовый адрес палитры. Но!!! ведь коман-
ды работы со стеком могут читать из памяти
сразу  по 2 байта!!! Поэтому палитра будет
иметь такой вид:

#8080   00 01 02 03 04 .. .. 0D 0E 0F
#8180   10 11 12 13 14 .. .. 1D 1E 1F
.    .    .    .    .    .    .
#8F80   F0 F1 F2 F3 F4 .. .. FD FE FF
  Слева   указан   адрес,  считываемый  из
chunky datы, т.е. младший байт - цвет пер-
вого из выводимых элементов, старший байт-
-  цвет  второго.  Справа  указаны  номера
текстур,  выводимых  при данной комбинации
цветов,  причем  в  текстуре, естественно,
изображены  сразу  2 элемента. Т.е. первый
ряд  -  все  текстуры  со вторым цветом 0,
второй  ряд  -  со  вторым цветом 1 и т.д.
Итого  у нас получается 16*16=256 текстур.
  Ну  а  теперь,  разобравшись  с форматом
хранения  данных, можно приступать и к на-
писанию процедуры вывода.

  Для работы требуются:

  SP = адрес chunky datы;
  DE = адрес на экране, куда выводить;
  B  = старший байт адреса,с которого хра-
     нятся текстуры.

     POP  HL       ;читаем chunky daty
     LD   C,(HL)   ;читаем адрес текстуры
     LD   A,(BC)   ;выводим
     LD   (DE),A
     INC  B
     INC  D
     LD   A,(BC)   ;  спрайт
     LD   (DE),A
     INC  B
     INC  D
     LD   A,(BC)   ;      на
     LD   (DE),A
     INC  B
     INC  D
     LD   A,(BC)   ;     экран
     LD   (DE),A
     INC  E
     POP  HL       ;читаем chunky daty
     LD   C,(HL)   ;читаем адрес текстуры
     LD   A,(BC)   ;выводим
     LD   (DE),A
     DEC  B
     DEC  D
     LD   A,(BC)   ;  спрайт
     LD   (DE),A
     DEC  B
     DEC  D
     LD   A,(BC)   ;      на
     LD   (DE),A
     DEC  B
     DEC  D
     LD   A,(BC)   ;      экран
     LD   (DE),A
     INC  E

  Ну  вот и все. Разбирайтесь в моей писа-
нине  и - let`s start da demomakin`! (Раз-
врат  попрошу   не   пропагандировать  ;-)
ред.) А будут какие вопросы, пожелания или
предложения - звоните по телефону 54-01-70
в Барнауле,  конечно  ;-))  и  спрашивайте
Олега - если он будет дома, то ответит
всем!
         Bye,people! C Ya l8r!!!
_______________________________________End



Другие статьи номера:

От редакции - Существовал в Барнауле еженедельник "Компот", и решил я забежать к ним в редакцию...

От редакции - у журнала новая оболочка.

От редакции - растространение журнала.

Enjoy - Юмор.

Enjoy - солнечный город.

Enjoy - сказка.

Soft Group - chunky to planar conversion конвертор.

Soft Group - Печать 42 символа в строке, турболоадер из демы "RAGE", процедура рисования окна.

Soft Group - Aнoнс гpaфичeскoгo peдaктopa Art Works by Byteх Сreative Group.

Soft Group - прохождение игры MASTЕR ОF MAGIС.

Soft Group - прохождение игры XOR.

Soft Group - Кpaткий oбзop игpушeк: RОBIN ОF TНЕ WООD 128K, TНUNDЕRСATS, SKATЕBALL, LОTUS ЕSPRIT TURBО СНALLЕNGЕ, TНЕ FLINTSTОNЕS, GНОULS AND GНОSTS, NAVY S.Е.A.L., KINGS BОUNTY, NARС.

User Group - Текстовые редакторы.

User Group - редактирование текстов.

User Group - об авторском диске.

Hard Group - характеристики компьютера KAY-1024.

Hard Group - PRISE-LIST фирма NEMO, г. Санкт-Петербург

Набат - ОДИНОКИЙ МЫСЛИТЕЛЬ.

Набат - русская философия.

Набат - Ричи Блекмор (ч1).

Набат - Ричи Блекмор (ч2).

Toys - новая игра - Операция Р.Р.

Deatch Come - Black Metall.

Deatch Come - Black Metall.

Deatch Come - Black Metall.

Deatch Come - IMMORTAL`97

Обьявления - группа FAST рада будет видеть вас в своих рядах.

Реклама - Шиpoкий выбop ПО для кoмпьютepoв ZX Speсtrum.

Pot-Pourri - "Открытое обращение" к Cпектрумистам, прошедшее в конференции ZX.

Pot-Pourri - Cокращенная версия прайса по тематике Spectrum-Scorpion.

Party - Funtop 98: правила.

X-FILES - часть 1.

X-FILES - часть 2.

X-FILES - часть 3.

X-FILES - часть 4.

X-FILES - часть 5.

X-FILES - часть 6.

X-FILES - часть 7.

News - анонс CONSYL`98. PARTY in SOCHI.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Drugs - наша, бошки, ганджа, гандубас, гашиш, дрянь, дыды, зелень.
Обратный отсчет - Colour of Magic: Поиск приключений.
Реклама - Продаю кассеты для ZX-Spectrum'a с системными и игровыми программами, по 1.500 р. за каждую.
Конкурс - Конкурс на лучшее название нового компьютера ф."ПЕТЕРС".
Nonsense - вывод и печать спрайтов на спектруме.

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3