Важная информация
RSS лента

Shiny

Назад к 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)

Да пребудет с Вами олдскул!
Метки: coding, gbc, retro Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для Raider
    Хорошая работа!
  2. Аватар для Shiny
    Цитата Сообщение от Raider
    Хорошая работа!
    ну хоть кто-то посмотрел(:
  3. Аватар для alk0v
    Вот бы на живом глянуть
  4. Аватар для Shiny
    Цитата Сообщение от alk0v
    Вот бы на живом глянуть
    помочь не могу, увы bgb эмулирует нормально по идее.

Трекбэков