Байт | Тип | Описание |
$00 | byte | Номер объекта
|
$01 | byte | Флаги рендеринга.
- Бит 0 - отражение по горизонтали. Если включен, объект будет отражен по горизонтали.
- Бит 1 - отражение по вертикали.
- Бит 2 - система координат. При 0, координаты объекта будут относительно экрана (onscreen), используется, например, для HUD. При 1 объект будет координироваться относительно уровня (playfield).
- Бит 3 - в игре не используется, если Бит 2 установлен на 1 и этот бит включен, объект каким-то образом будет приурочен к фону уровня. Это использовалось для НЛО из MZ в ранних прототипах игры.
- Бит 4 - флаг учета высоты. При прорисовке объектов, игра проверят, попадает ли объект в область экрана, учитывая его высоту. Если флаг выключен, высота объекта условно берется за $20, иначе высота будет браться из байта $16.
- Бит 5 - если включен, BuildSprites обработает только первые 5 байт мапингов. Используется, например стенами GHZ, рассыпающимися на кусочки.
- Бит 6 - переключатель планов. Используется только Obj01 (т.е. Соником). Используется, чтобы менять приоритет Сониковкого спрайта при прохождении кругов (loops) в GHZ.
- Бит 7 - устанавливается, когда объект на экране и его нужно отрисовать.
|
$02 | word | Арт-поинтер.
- Использует формат $XYYY, где X - строка палитры, которая будет использована для спрайта, YYY - порядковый номер тайла в VRAM.
|
$04 | long | Оффсет мапингов.
|
$08 | word |
|
$0A | word |
- При координировании относительно уровня, X подпиксель.
- При координировании относительно экрана, Y координата.
|
$0C | word |
- При координировании относительно уровня, Y координата.
- При координировании относительно экрана не используется.
|
$0E | word |
- При координировании относительно уровня, Y подпиксель.
- При координировании относительно экрана не используется.
|
$10 | word | Горизонтальная скорость (X-velocity)
|
$12 | word | Вертикальная скорость (Y-velocity)
|
$14 | word | Скорость на земле (инерция)
|
$16 | byte | Вертикальный радиус.
|
$17 | byte | Горизонтальный радиус.
|
$18 | byte | Приоритет (00 = поверх всех, 03 = позади всех).
|
$19 | byte | Горизонтальный радиус видимой части объекта.
|
$1A | byte | Кадр в мапингах, выводимый на экран.
|
$1B | byte | Номер записи в сценарии анимации.
|
$1C | byte | Номер анимации.
|
$1D | byte | Флаг рестарта анимации (когда $1D не равно $1C, анимация рестартует)
|
$1E | byte | Время до следующего кадра в анимации.
|
$20 | byte | Ответ на столновение. Сообщает, что делать, если объекта коснулся Соник. Формат: TTSS SSSS. TT - действие при столкновении: 00 - уменьшить кол-во ударов, 01 - увеличить счетчик роутины, 10 - повредить Соника, а 11 специалный тип, используемый немногими объектами. SSSSSS настраивает физику столкновения.
|
$21 | byte | Специальный байт для взаимодействия Соником, используется по-разному некоторыми объектами, например у боссов это - счетчик ударов.
|
$22 | byte |
Состояние объекта:
Бит | Описание |
0 | X-ориентация. 0 = лево, 1 = право
|
1 | Y-ориентация. 0 = вверх, 1 = вниз
|
2 | Не используется
|
3 | Включен, если Соник стоит на объекте
|
4 | Не используется
|
5 | Включен, если Соник толкает объект
|
6 | Не используется
|
7 | Не используется
|
Эти биты имеют другое значение у Соника (см. чуть ниже).
|
$23 | byte | Относительный адрес к объекту в списке уничтожаемых объектов (начинается с $FC00). Используется кольцами, мониторами, бадниками и другими, если нужно, чтобы объект после уничтожения не создавался снова.
|
$24 | byte | Счетчик роутины.
|
$25 | byte | Счетчик вторичной роутины. Используется более сложными объектами.
|
$26 | word | Градус наклона.
|
$28 | byte | Тип объекта. Например, содержимое монитора или цвет и наклон пружины.
|
$29-$3F | | Неиспользуемые многими объектами байты.
|
Используемые Соником байты
|
Байт | Тип | Описание |
$22 | byte | Состояние Соника:
Бит | Описание |
0 | Ориентация. 0 = право, 1 = лево.
|
1 | Включен, если Соник в воздухе.
|
2 | Включен, если прыгает или свернут в клубочек.
|
3 | Включен, если Соник в воздухе, но не должен падать. Например, если он стоит на каком-нибудь объекте.
|
4 | Включен, если Соник прыгает в свернутом в клубок состоянии.
|
5 | Включен, если что-то толкает.
|
6 | Влючен, если Соник под водой.
|
7 | Не используется.
|
|
$28 | byte
| Время под водой. При погружении ставится на $1E и уменьшается с каждой секундой. На $18, $13 и $0E секундах воспроизводит звякающий звук. При $0B начинается отсчет до захлебывания.
|
$2B | byte
| Не используется
|
$30-$31 | word
| Оставшеся время неуязвимости. Устанавливается на $0078 после того, как Соник упал после удара, и уменьшается каждую миллисекунду, пока не достигнет $0000.
|
$32-$33 | word | Оставшеся время Invincibility.
|
$34-$35 | word | Оставшеся время Speed Shoes.
|
$39 | byte | Не используется.
|
$3A-$3B | word
| Не используются.
|
$3C | byte | Включено при прыжке.
|
$3D | byte | Адрес объекта, на котором стоит Соник (чтобы получить абсолютный адрес, умножьте его на $40 и прибавьте $D000).
|
Переменные для боссов |
Байт | Тип | Описание |
$21 | byte | Оставшееся количество ударов.
|
$30 | word | X-позиция
|
$38 | word | Y-позиция (в отличие от $C, без амплитуды - см. байт $3F)
|
$3E | byte | Количество раз для моргания босса после удара.
|
$3F | byte | Y-амплитуда. Используется для небольшого колебания вверх/вниз при полете.
|