Назад к GBC
Разбирая материалы на жестком диске наткнулся на заброшенный проект - демо, которое я писал для Chaos Constructions 2014.
Одна из частей представляла собой DYCP и сам эффект выглядел достаточно убого, риснул скролл исправить
Скачать можно здесь, запустите эмулятор bgb и сбросьте на окно файл piggy.gb. С исходниками можно ознакомиться просмотрев piggy.asm.
Файл сборки - assemble.bat, ассемблер приложен.
Для ознакомления с архитектурой gbc предлагаю ознакомиться с моей компиляцией материалаGameBoyColor.chm или прочитать статью для журнала Downgrade.
Еще один образец - плазма.
Коротко о реализации DYCP:
Для скролла используются спрайты, существуют некоторые трудности формирования спрайтов:
- известный SpriteBug : при использовании INC HL/DE/BC область памяти для спрайтов портится.
- при прямой записи данных в область спрайтов необходимо опрашивать статус порта, поэтому я реализовал формирование данных в памяти и переброску с помощью DMA
Согласно спецификациям делается это так:
Спрайты задаются следующими данными:Код:ld a,$C1;DMA coy $C100 to OAM ld [$FF46], a ld a,$28 ; wait until DMA completes (160 microseconds) wlp dec a jr nz,wlp
;form sprites at $FE00, $FF80-fariables
Y координата
X координата
номер тайла
флаг:%00001000(Byte3)
;Byte3 - Attributes/Flags:
; Bit7 OBJ-to-BG Priority (0=OBJ Above BG, 1=OBJ Behind BG color 1-3)
; (Used for both BG and Window. BG color 0 is always behind OBJ)
; Bit6 Y flip (0=Normal, 1=Vertically mirrored)
; Bit5 X flip (0=Normal, 1=Horizontally mirrored)
; Bit4 Palette number **Non CGB Mode Only** (0=OBP0, 1=OBP1) =0
; Bit3 Tile VRAM-Bank **CGB Mode Only** (0=Bank 0, 1=Bank 1)
; Bit2-0 Palette number **CGB Mode Only** (OBP0-7)
Да пребудет с Вами олдскул!
Комментарии
Трекбэков
Всего трекбэков 0
Ссылка трекбэка: