TS-Conf F.A.Q.

Документация, FAQ-и

Postby g0blinish » Wed, 29.07.2015 15:33:23

VBI wrote:"TNUM Номер первого тайла спрайта указанного размера. Биты 0-5 - X позиция тайла в странице графики спрайтов, биты 6-11 - позиция по Y."


вот это у меня в голове не укладывается:(
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby VBI » Wed, 29.07.2015 16:18:02

а оно по картинке выше хорошо вычисляется
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby g0blinish » Sat, 01.08.2015 20:45:39

сейчас пойдут каверзные вопросы.

Если я правильно помню, то битмап тайла с номером 256 адресуется в странице по адресу #E000. А где хранятся остальные тайлы с номерами выше 320?
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby VBI » Sat, 01.08.2015 22:26:37

а страниц у нас сколько на тайлы?
а тайлов всего сколько?
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby TS-Labs » Sun, 02.08.2015 01:31:19

Графика тайлов невозбранно может занимать 128кБ, т.е. 8 страниц подряд.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby g0blinish » Sun, 02.08.2015 05:23:37

VBI wrote:а тайлов всего сколько?

а хер его знает. отложилась прочитанная фраза, что 4096..
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby VBI » Sun, 02.08.2015 09:49:50

Image
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby g0blinish » Sun, 02.08.2015 09:59:58

Зачем постить одну и ту же картинку? она неинформативна.
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby AndyD » Sun, 02.08.2015 11:33:47

g0blinish wrote:А где хранятся остальные тайлы с номерами выше 320?

получается с #2800-#1FFFF. #c000+#2800=#e800 до #ffff дальше в следующей странице и так до 128кб.Вроде так.
g0blinish wrote:Если я правильно помню, то битмап тайла с номером 256 адресуется в странице по адресу #E000

#20x#100= #2000+#c000=#e000

Дао говорит: Тайлы представляют собой комбинацию из графики и карты её расположения на экране.
Всего есть два слоя тайлов, визуально расположенных друг над другом: T0 (ниже) & T1 (выше).
Карта хранится в странице памяти, указанной портом TMPage (#16af) следующим образом: первая строка карты слоя Т0 расположена с #с000 по #с07f, первая строка карты слоя Т1 — с #с080 по #с0ff. Следующий ряд тайлов в обеих картах расположен ниже на #100.

Я правильно понимаю ,что карта тайлов одна на 2 слоя,тоесть если я использую только Т0 то все адреса #xx80-#xxff отображаться не будут?
User avatar
AndyD
 
Posts: 280
Joined: Thu, 21.05.2015 21:32:38

Postby g0blinish » Sun, 02.08.2015 14:01:42

AndyD wrote:Дао говорит: Тайлы представляют собой комбинацию из графики и карты её расположения на экране


труд VBI достоин уважения, но лучше утащить маны в раздел, или фак систематизировать.

AndyD wrote:получается с #2800-#1FFFF. #c000+#2800=#e800 до #ffff


;19:45] <TSL> е000
;[19:45] <TSL> ряд тайлов (64 штуки) занимает 2кБ
;[19:45] <TSL> следовательно 256/4 = 4 ряда = 8кБ
;[19:46] <TSL> с000 + 8кБ = е000
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby VBI » Sun, 02.08.2015 14:31:24

AndyD wrote:Я правильно понимаю ,что карта тайлов одна на 2 слоя,тоесть если я использую только Т0 то все адреса #xx80-#xxff отображаться не будут?

да.
а для только Т1 будут обрабатываться только #xx80-#xxff

Отображается (и обрабатывается) только то что включено в TSConfig
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby AndyD » Sun, 02.08.2015 14:46:44

g0blinish wrote:;[19:45] <TSL> ряд тайлов (64 штуки) занимает 2кБ

Из них 1е 32шт слой 0,а 2е 32шт слой 1.
g0blinish wrote:;[19:46] <TSL> с000 + 8кБ = е000

Я так понимаю это если мы проецируем страницу с #с000,а если проецировать с #0000-#4000 в пзу z80 то будет #2000.
g0blinish wrote:труд VBI достоин уважения

точно,только вот такие глобальные вещи как память для з80 и память для альтеры не раскрыта,приходиться догадываться самому,а со спектрумовским мышлением это в голове не укладывается ,приходиться вбивать многоразовым чтением. :)
User avatar
AndyD
 
Posts: 280
Joined: Thu, 21.05.2015 21:32:38

Postby VBI » Sun, 02.08.2015 15:05:45

не путай карту тайлов и графику
для карты: 64 для Т0 и 64 для Т1 = 128*2 байта на каждый = 256 байт карты, следующая строка карты - с с100.
а графика тайлов может быть использована как в тайлах так и в спрайтах - без разницы.


AndyD wrote:память для з80

http://hype.retroscene.org/blog/dev/181.html

и вообще:
http://hype.retroscene.org/tag/TS-Config/

спрашивай!
Last edited by VBI on Sun, 02.08.2015 18:50:41, edited 1 time in total.
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby g0blinish » Sun, 02.08.2015 15:18:06

AndyD wrote:Из них 1е 32шт слой 0,а 2е 32шт слой 1

как это? оО
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby g0blinish » Sun, 02.08.2015 15:19:04

VBI wrote:для карты: 64 для Т0 и 64 для Т1 = 128*2 байта на каждый = 256

ояебу, ломающие новости. выходит, что ничо не знаю..
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby AndyD » Sun, 02.08.2015 16:53:00

ZX Evolution имеет 4Мб памяти.
Организация этой памяти подобна zx spectrum 128 — используется страничная организация.
В переложении на страницы памяти, мы имеем 256 страниц по 16 кб каждая.
здесь все понятно.

Для этого нужно в странице с тайловой картой разместить информацию о расположении тайлов в странице с графикой для них.
Карта хранится в странице памяти, указанной портом TMPage (#16af)

Я выделяю память карте тайлов в 4Мбтной памяти где хочу например в 23банке ,так? А с 24 банки пойдет графика.

Имеем графику размером 256*256 точек, 16 цветов (8 банок), расположенную в странице glasspat_page с адреса #c000.
Копируем эту графику с помощью DMA в страницу, используемую для хранения подготовленной к выводу графики тайлов — Tile0_spr_page.

glasspat_page=24банке с адреса #c000-ffff,то-есть после копирования надо подключать по очереди эти 8 банок и копировать дма в Tile0_spr_page?

а Tile0_spr_page может находиться тоже где угодно но кратно 8 банкам(для 16с),так?

Карта тайлов всегда 256байт(TMPage (#16af) — номер карты тайлов обоих слоёв) карт можно иметь много?,а память графики всегда=количеству тайлов 8х8 , тоесть если есть только один тайл то в 24банке имеем 64точки начиная с с000 в Т0 или с080 для Т1 слоя? А графику размером 256*256 точек получается разбивает на кучу тайлов(1024)?
ояебу, ломающие новости. выходит, что ничо не знаю.. аналогично :bang:
мозг уже кипит.
Last edited by AndyD on Sun, 02.08.2015 17:39:25, edited 1 time in total.
User avatar
AndyD
 
Posts: 280
Joined: Thu, 21.05.2015 21:32:38

Postby g0blinish » Sun, 02.08.2015 17:15:17

AndyD wrote:Я выделяю память карте тайлов в 4Мбтной памяти где хочу например в 24банке ,так? А с 24 банки пойдет графика

Ну не совсем так. Как ты совместишь в одной страницы карту тайлов и битмап тайлов?
если графика хранится в транице, номер которой кратен 8, то 16, например.

AndyD wrote:Карта тайлов всегда 256байт(TMPage (#16af) — номер карты тайлов обоих слоёв) карт можно иметь много?


карта тайлов сама по себе, в ней хранится два слоя:
$C000-$C07f - линия слоя 0,
$C080-$C0FF - линия слоя 1, по приоритету слой 1 над слоем 0.
следующая линия - $D000,$D100 и т.д.

AndyD wrote:Копируем эту графику с помощью DMA в страницу, используемую для хранения подготовленной к выводу графики тайлов — Tile0_spr_page.

вообще все в кучу смешал.
проще либо впихнуть в .spg готовые данные для битмапа, и указать номер страницы графики. Либо формировать данные на ходу,
т.е. записываешь номер страницы в Page3, формируешь данные и номер страницы пишешь в T0gpage.
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby AndyD » Sun, 02.08.2015 17:36:20

g0blinish wrote:Ну не совсем так. Как ты совместишь в одной страницы карту тайлов и битмап тайлов?

очепятка,пусть карта тайлов в 23й
g0blinish wrote:вообще все в кучу смешал.

давай пока только про тайлы,про дма ,spg и подготовку картинки не сейчас
пример ,скопипастил от туда
http://hype.retroscene.org/blog/dev/179.html
Last edited by AndyD on Sun, 02.08.2015 17:52:42, edited 1 time in total.
User avatar
AndyD
 
Posts: 280
Joined: Thu, 21.05.2015 21:32:38

Postby g0blinish » Sun, 02.08.2015 17:50:44

AndyD wrote:пример ,скопипастил от туда

Ну не знаю, чем помочь, бездумное копирование не приведет к пониманию.
Тут есть примеры:
viewtopic.php?f=28&t=356
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby VBI » Sun, 02.08.2015 17:54:41

парни, плиз, не путайте две разные вещи.
1. карта тайлов. это описание тайлов, состоящее из 2х байтов на один тайл.
она указывается в TMPage и описывает тайлы - конкретный номер в графике, палитра, отражение по Х,У и т.п. - смотрим ексель. в строке укладывается 64 тайла для одного слоя, хранится сразу 2 слоя - с хх00 и с хх80
2. графика тайлов.
указывается расположение графики в T0GPage и T1GPage для разных слоёв, имеет формат 16ц, может быть использована так-же для спрайтов - формат один и тот-же.

"Битмап - банк графики, содержащий нарисованные тайлы. Хранится в виде 64х64 тайлов / 512х512 пикселей / 256х512 байт / 128кБ / 8 последовательных страниц, начиная с кратной 8-ми.
Тайлмап - карта, содержащая информацию про отображаемые тайлы. Содержит элементы по 2 байта, описывающие тайлы в определенных местах экрана. Хранится в виде (64 (слой0) + 64 (слой1) ) х 64 тайла / (128 + 128) х 64 байт / 16кБ / 1 страница. Формат: биты0-11 - номер тайла в битмапе (0-5 - Х координата, 6-11 - У), биты 12-13 - выбор палитры из набора из 4х (номер набора задается в порту PalSel в битах 4-5 для слоя 0 и в 6-7 для слоя 1), биты 14-15 - зеркальное отображения для Х и У соотв."
по тайлмапу - карте тайлов, нет ограничений по расположению, заметьте. а по графике - только кратно 8

т.е. получаем следующее: в карте тайлов для нужного слоя указываем - какой квадратик из графики страницы, указанной для нужного слоя, будет показан в нужной позиции, в нужной палитре.

g0blinish, "карта тайлов сама по себе, в ней хранится два слоя:
$C000-$C07f - линия слоя 0,
$C080-$C0FF - линия слоя 1, по приоритету слой 1 над слоем 0.
следующая линия - $D000,$D100 и т.д."
тут не верно, ибо для карты тайлов, с 2мя байтами на тайл и 2мя слоями на строку в памяти следующая строка на #100 дальше.
#c000 - первая строка КАРТЫ,
#c100 - вторая.

а в случае с РАСПОЛОЖЕНИЕМ графики - та первая строка ГРАФИКИ - с #c000, вторая - с #c100, что видно на картинке. т.е. в графике в одну строку (из 256 байт, от 00 до #FF в 16ц) мы получаем 512 точек 16ц, расположенных последовательно строка за строкой - т.е. следующая строчка тайлов (а не тайл) - с С100, 8 штук всего, до С800.

вот пример заполнения карты нужного размера:
заполняем Т0, размер картинки 128x160 (ld bc,#1008), картинка уже расположена с С000 (номер начального тайла - ld de,#0000), постим в КАРТУ по адресу Tile_page, палитра тайлов 0 (ld de,#0000 )+палсел (палсел уже задан, будем считать)
Code: Select all
      ld hl,#c000
      ld de,#0000
      ld bc,#1008   ; 128x160
      ld a,Tile_page
      call tile_filler
tile_filler   exx
      ld bc,PAGE3
      out (c),a
      exx
      ld a,l
      ld (rfil3+1),a
      ld a,#40
      sub b
      ld (rfil4+1),a
rfil1      push bc
rfil2      ld (hl),e
      inc l
      ld (hl),d
      inc l
      inc de
      djnz rfil2
      inc h
rfil3      ld l,0
      ex de,hl
rfil4      ld bc,0
      add hl,bc
      ex de,hl
      pop bc
      dec c
      jr nz,rfil1
      ret


ещё момент.
дма работает с последовально расположенными страницами. и нет нужды включать страницу для передачи дма, это всё делается автоматически - вы задали откуда, с какой страницы, куда,с какой страницы, оба количества. После отправки в порт способа перемещения передача началась сразу.
если графика меньше размеров 512 по ширине - её стоит правильно перебросить, дабы она приняла правильный формат для 16ц
это можно протестить, включив 16ц для экрана и перебросив в видеоэкран - если вы видите правильную картинку (пусть и не в правильной палитре ибо не задали) - значит и в тайлах всё будет ок, перебрасывайте теперь в нужную страницу для хранения тайлов и задавайте её номер в T0GPage или T1GPage, куда надо.
Last edited by VBI on Sun, 02.08.2015 18:45:41, edited 1 time in total.
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby g0blinish » Sun, 02.08.2015 18:36:02

VBI wrote:а в случае с РАСПОЛОЖЕНИЕМ графики - та первая строка ГРАФИКИ - с #c000, вторая - с #c800,


авотхуй :smoke:
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby VBI » Sun, 02.08.2015 18:47:09

g0blinish, ошибся.
с000, с100, с200 - с700 - первая строка графики 0го тайла, 512 точек, 256 байт - строка.
с004, с104 - с704 - вторая строка

с800 - 65й тайл, начало первой строки графики этого тайла
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby TS-Labs » Sun, 02.08.2015 21:00:19

AndyD wrote:Имеем графику размером 256*256 точек

512х512
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Sun, 02.08.2015 21:03:09

AndyD wrote:Карта тайлов всегда 256байт

Карта тайлов лежит в виде: (128 байт (Т0) + 128 байт (Т1)) * 64 ряда, где тайл = 2 байта (формат дескриптора в экселе).
AndyD wrote:карт можно иметь много?

Карта занимает ровно 16кБ, может лежать на любой странице.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Sun, 02.08.2015 21:07:45

VBI wrote:с800 - 65й тайл

64-й (нумерация вагонов с 0)
VBI wrote:с000, с100, с200 - с700 - первая строка графики 0го тайла, 512 точек, 256 байт - строка.
с004, с104 - с704 - вторая строка

с000-с0ff - строка 0, тайл 0-63
c100-c1ff - строка 1, тайл 0-63
...
c700-c7ff - строка 7, тайл 0-63
c800-c8ff - строка 0, тайл 64-127
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

PreviousNext

Return to Manuals

Who is online

Users browsing this forum: No registered users and 1 guest

x