Страница не найдена
Страница, которую вы запрашиваете, не существует.
RAM-адреса
Перевод на русский язык и исправление: vladikcomperОригинальнал: «SCHG:Sonic the Hedgehog/RAM Editing»
Для удобства, адреса памяти в таблице даются в сокращении. Чтобы получить полный адрес, который можно будет использовать в коде, допишите слева "FFFF" для адресов, больших $8000 и "FF" для адресов, меньших или равных $8000. Например: адрес максимальной скорости Соника в таблице - $F760, а в коде он должен быть - $FFFF760.
| Адрес | Описание | 
|---|---|
| $0000 - $A3FF | Маппинги блоков 256х256 | 
| $A400 - $A7FF | Макет уровня (1 байт на блок, $40 байт на линию, используется одновременно для планов A и B) | 
| $A800 - $A9FF | Что-то необходимое для фона в Star Light Zone | 
| $AA00 - $ABFF | Что-то необходимое для PLC | 
| $AC00 - $AFFF | Таблица спрайтов (2 байта на спрайт + 2 байты на уровень приоритета, каждый уровень занимает по $80 байт.) | 
| $B000 - $C7FF | Маппинги блоков 16х16 | 
| $C800 - $CAFF | Буфер арта Соника. Sonic Dynamic Pattern Load Cues подгружает сюда тайлы, необходимые текущему спрайту, после чего все это отправляется в VRAM через DMA. | 
| $CB00 - $CBFF | Массив предыдущих положений соника (используется для invincibility stars) | 
| $CC00 - $CFFF | Кэш Scroll RAM (каждый кадр отсылается VRAM'у через DMA) | 
| $D000 - $D7FF | Резервные структуры объектов (для HUD, Соника, Invincibility Stars и пр.) | 
| $D800 - $EFFF | Структуры объектов | 
| $F600 | Режим игры 
 | 
| $F616-$F617 | Y-позиция плана А для предыдущего кадра | 
| $F618-$F619 | Y-позиция плана B для предыдущего кадра | 
| $F61A-$F61B | X-позиция плана A для предыдущего кадра | 
| $F61C-$F61D | X-позиция плана B для предыдущего кадра | 
| $F61E-$F61F | Значение $F71C для предыдущего кадра | 
| $F620-$F621 | Значение $F718 для предыдущего кадра | 
| $F680-$F6FF | Очередь запросов на загрузку сжатого арта, используется Pattern Load Cues. | 
| $F700-$F701 | X-позиция плана A | 
| $F704-$F705 | Y-позиция плана A | 
| $F708-$F709 | X-позиция плана B | 
| $F70C-$F70D | Y-позиция плана B | 
| $F73E-$F73F | Y-позиция камеры относительно Соника (по умолчанию - $60) | 
| $F744 | Флаг блокировки камеры (чтобы камера не следовала за трупом ежика, когда он умер) | 
| $F754-$F755 $F756-$F757 $F758-$F759 $F75A-$F75B | Используется движком для скроллинга | 
| $F760-$F761 | Соник: Максимальная скорость | 
| $F762-$F763 | Соник: Ускорение (Acceleration) | 
| $F764-$F765 | Соник: Торможение (Deceleration) | 
| $F7AA | Флаг блокировки экрана (чтобы Соник не мог забежать за границу экрана) | 
| $F7C8 | Флаг блокировки управления (блокирует управление, когда включен) | 
| $FA00-$FA7F | Конечная палитра под водой | 
| $FA80-$FAFF | Текущая палитра под водой | 
| $FB00-$FB7F | Текущая палитра | 
| $FB80-$FBFF | Конечная палитра (нужна, например для Pal_FadeTo, который плавно переходит от черной палитре к этой, пока текущая палитра не сравняется с конечной) | 
| $FC00-$FD7F | Список уничтоженных объектов (используется, например кольцами, чтобы собранные не создавались снова) | 
| $FE02 | Флаг рестарта уровня (включается для рестарта уровня, также для загрузки нового) | 
| $FE04 | Время уровня | 
| $FE10-$FE11 | Зона и акт | 
| $FE12 | Жизни | 
| $FE14 | Оставшийся воздух (работает под водой) | 
| $FE16 | Количество пройденых спец этапов | 
| $FE18 | Продолжения (Continues) | 
| $FE1C | Счетик жизней (Используется для обновления в HUD'e) | 
| $FE1D | Счетчик колец (Используется для обновления в HUD'e) | 
| $FE1E | Счетчик времени (Используется для обновления в HUD'e) | 
| $FE1F | Счетчик очков (Используется для обновления в HUD'e) | 
| $FE20-$FE21 | Кольца | 
| $FE22-$FE25 | Время | 
| $FE26-$FE29 | Очки | 
| $FE2C | Флаг Shield | 
| $FE2D | Флаг Invincibility | 
| $FE2E | Флаг Speed Shoes | 
| $FE30 | Номер последнего чек поинта (Lampost) | 
| $FE57 | Изумруды | 
| $FFF4 | Номер экрана в Credits'ах | 
Структуры объектов
Перевод на русский язык и исправление: vladikcomperОригинальнал: «SCHG:Sonic the Hedgehog/RAM Editing»
Структуры объектов начинаются с адреса $FFFFD000, каждая структура занимает $40 байт.
| Байт | Тип | Описание | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| $00 | byte | Номер объекта | ||||||||||||||||||
| $01 | byte | Флаги рендеринга. 
 | ||||||||||||||||||
| $02 | word | Арт-поинтер. 
 | ||||||||||||||||||
| $04 | long | Оффсет мапингов. | ||||||||||||||||||
| $08 | word | 
 | ||||||||||||||||||
| $0A | word | 
 | ||||||||||||||||||
| $0C | word | 
 | ||||||||||||||||||
| $0E | word | 
 | ||||||||||||||||||
| $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 | Состояние объекта: 
 | ||||||||||||||||||
| $23 | byte | Относительный адрес к объекту в списке уничтожаемых объектов (начинается с $FC00). Используется кольцами, мониторами, бадниками и другими, если нужно, чтобы объект после уничтожения не создавался снова. | ||||||||||||||||||
| $24 | byte | Счетчик роутины. | ||||||||||||||||||
| $25 | byte | Счетчик вторичной роутины. Используется более сложными объектами. | ||||||||||||||||||
| $26 | word | Градус наклона. | ||||||||||||||||||
| $28 | byte | Тип объекта. Например, содержимое монитора или цвет и наклон пружины. | ||||||||||||||||||
| $29-$3F | Неиспользуемые многими объектами байты. | |||||||||||||||||||
| Используемые Соником байты | ||||||||||||||||||||
| Байт | Тип | Описание | ||||||||||||||||||
| $22 | byte | Состояние Соника: 
 | ||||||||||||||||||
| $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-амплитуда. Используется для небольшого колебания вверх/вниз при полете. | ||||||||||||||||||
Список объектов
Автор: vladikcomperОсновано на данных с Hivebrain's Disassembly
У каждого объекта есть свой код, который начинается с лейбела Obj[нормер], используя эту таблицу, вы сможете найти код объекта по его номеру.
| ID | Зоны | Название | 
|---|---|---|
| 01 | Соник | |
| 02 | - | - | 
| 03 | - | - | 
| 04 | - | - | 
| 05 | - | - | 
| 06 | - | - | 
| 07 | - | - | 
| 08 | LZ | Брызги воды | 
| 09 | - | Соник в Special Stage | 
| 0A | LZ | Маленькие пузырики и цифры оставшегося воздуха | 
| 0B | LZ | Открывающийся и закрывающийся проем | 
| 0C | LZ | Подвижная дверь | 
| 0D | Singpost | |
| 0E | - | Соник на тайтл скрине | 
| 0F | - | "PRESS START BUTTON" и "TM" на тайтл скрине | 
| 10 | - | - | 
| 11 | GHZ | Мост | 
| 12 | SYZ | Прожектор | 
| 13 | MZ/SLZ | Невидимый объект, выстреливающий шарики лавы | 
| 14 | MZ/SLZ | Шарики лавы | 
| 15 | GHZ/MZ/SLZ | Качающиеся на цепи платформы | 
| SBZ | Качающийся на цепи колючий шар | |
| 16 | LZ | Гарпун | 
| 17 | GHZ | Колючка, вращающаяся вокруг бревна (в игре не использовано) | 
| 18 | GHZ/SYZ/SLZ | Платформы | 
| 19 | - | - | 
| 1A | GHZ | Рассыпающийся островок | 
| 1B | LZ | Поверхность воды | 
| 1C | GHZ | Опора моста | 
| SLZ | Штука, стреляющая шариками лавы | |
| 1D | - | Переключатель, который активируется после нажатия (в игре не использовано) | 
| 1E | SBZ | Ballhog | 
| 1F | GHZ/SYZ | Crabmeat | 
| 20 | SBZ | Взрывающиеся шары, которые бросает Ballhog | 
| 21 | HUD | |
| 22 | GHZ/MZ/SYZ | Buzz Bomber | 
| 23 | GHZ/MZ/SYZ | Лазерный шар, который выстреливает Buzz Bomber | 
| 24 | Взрыв от уничтоженного монитора | |
| 25 | Кольца | |
| 26 | Мониторы | |
| 27 | Взрыв от уничтоженных бадников | |
| 28 | Животные | |
| 29 | Очки, вылетающие из уничтоженных объектов | |
| 2A | SBZ | Двери | 
| 2B | GHZ | Chopper | 
| 2C | LZ | Jaws | 
| 2D | LZ | Burrobot | 
| 2E | Содержимое мониторов | |
| 2F | MZ | Большие подвижные платформы | 
| 30 | MZ | Большие зеленые колонны | 
| 31 | MZ | Падающие металлические блоки на цепях | 
| 32 | MZ/SYZ/LZ/SBZ | Переключатели | 
| 33 | MZ/LZ | Блоки, которые можно толкнуть | 
| 34 | Названия зон (Title Cards) | |
| 35 | Огненные шары, появляющиеся на тонущих платформах | |
| 36 | Шипы (Spikes) | |
| 37 | Кольца, которые вылетают когда Соника ранили | |
| 38 | Shield и Invincibility Stars | |
| 39 | Надписи "GAME OVER" и "TIME OVER" | |
| 3A | Экран "SONIC GOT THROUGH" в конце уровней | |
| 3B | GHZ | Камень | 
