← На главную

Разноцветные лазеры в Silpheed: сдвиг палитры и ASIC-сжатие

13.07.2026 14:52 · hackernews

Речь про игру Silpheed для Mega-CD (в США выходила как Sega CD). В начале 90-х CD-ROM давал огромный объём — 640 МБ против 2 МБ у картриджа. Но скорость чтения и пропускная способность были чудовищно низкими: 800 мс доступа и 150 КБ/с. У Sega получилось около двухсот игр для этого дополнения к Genesis. Большинство полагалось на Full Motion Video и выглядело отвратительно — Night Trap, Slam City, Corpse Killer. А Silpheed стала исключением. Её движок выдавал анимацию, от которой пресса сходила с ума.

Автор статьи потратил две недели на reverse engineering формата FMV в этой игре. Он не писал ни строчки кода, только разбирался в устройстве и обещает в следующем месяце открыть свой AI-фреймворк. Главный вывод: Silpheed сделали не «сверху вниз», пытаясь впихнуть кино в слабое железо, а наоборот — отталкиваясь от ограничений. Всего 16 цветов, плоские полигоны, минимум дизеринга, 15 кадров в секунду (а в сложных сценах — 7.5). И это сработало благодаря художникам Game Arts.

Как устроено сжатие? Каждый кадр самодостаточен, без дельта-компрессии. Весь трюк — в тайловой системе Mega-CD. Картинка собирается из тайлов 8×8 пикселей. Огромное количество тайлов — одноцветные. Формат вырезает дубликаты и ссылается на них повторно. Для кадра из заставки 456 из 896 тайлов — повторения 15 одноцветных. Это 50% экономии bandwidth. Оставшиеся тайлы делятся на две группы: двухцветные и «сырые». Двухцветные генерируются через аппаратную фишку ASIC Mega-CD — «Font bit». Регистры за раз превращают 1-битный паттерн в 4-битные пиксели для двух цветов. Это ещё 37% экономии на оставшейся половине. И только 206 тайлов из 896 хранятся как обычные «сырые» 8×8 блоков.

Карта тайлов (tilemap) тоже сжата — битовой картой на 768 бит, где 0 означает «автоинкремент», а 1 — «считать следующее значение». Это сократило её с 960 байт до 652 байт. Для двух уровней со сложными текстурами (их называли фракталами) все трюки не работали — там всё в сыром виде и кадровая частота падала до 7.5 fps.

Отдельная фишка: лазеры и взрывы в геймплее разноцветные, хотя палитра всего 16 цветов. Четыре цвета зарезервированы под эффекты и сдвигаются каждый кадр основным процессором. Это значит, что художники рисовали геймплей всего двенадцатью цветами. По мнению автора, именно такой инженерный подход снизу вверх сделал Silpheed визуальным шедевром на допотопном железе.

Читать оригинал →