Речь про игру 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 визуальным шедевром на допотопном железе.