Имитация двух задних фонов в Famicom/NES/Денди

Как я писал в предыдущей статье о VBlank/HBlank, видеочип в денди мог выводить только один задний фон состоящий из плиток тайлов 8x8 пикселей и единственной технической возможностью создать иллюзию нескольких скроллящихся независимо фонов была техника HBlank–отсечения, которая, однако, могла поделить картинку только на горизонтальные полоски. Невозможно было вывести два фона из которых один бы частично заслонял другой.
Однако некоторые из читателей могли бы вспомнить как минимум парочку контр–примеров.

Например игра Bucky O'Hare в которой редко, но попадались уровни с явственно видным вторым слоем в локации, просвечивающим через первый в произвольных местах (перемотать на 4:00):

Другим примером может служить игра Sword Master в которой такие уровни были уже довольно часто, сопровождаясь выглядывающей между деревьями или в окнах линией горизонта (перемотать на 1:00):

В обеих играх прекрасно видно, что фоны обладают «настоящей» двуслойностью… Или нет?
Конечно же двух независимых слоёв в железе Famicom/NES/Денди не было и что же на самом деле тут происходит можно увидеть посмотрев в содержимое таблиц тайлов в той же Sword Master — я сперва сделаю один скришнот, а потом через несколько шагов персонажа — второй, чтобы сравнить как меняются таблицы тайлов (сверху «до», снизу «после»):

Присмотритесь внимательно к обведенным красным областям в карте тайлов фона (в левых областях, сверху и снизу). Вот он трюк — игра на лету подменяет зацикленные картинки определенных групп этих тайлов, чтобы на экране они выглядели скроллящимися независимо от фона — причём забавно, но в Sword Master в тайлах фона присутствуют сразу четыре таких группы из разных уровней, слепленные в одну строку — это имеет смысл, так как используется маппер MMC3, который может подменять отображение ПЗУ тайлов видеочипа страницами по 1 Кб — и эти четыре группы тайлов разных горизонтов как раз имеют размер в 1 Кб, той самой страницы. Судя по всему картридж просто содержит все комбинации изображений этих тайлов и игре остаётся только переключать их отображение налету.
Причём, если теперь внимательно приглядеться к видео Sword Master, то станут заметны «косяки» на фоне некоторых тонких деревьев прокручиваемые таким образом горы на горизонте на самом деле «не стыкуются» между собой — достаточно просто присмотреться повнимательнее на разницу между тем что происходит на заднем фоне деревьев толщиной в два и один тайла — и сравнить между собой.
В Bucky O'Hare же на картридже присутствуют дополнительные 8 Кб видеоОЗУ и видимо изображения тайлов этой единственной скроллящейся клетки копируются из ПЗУ, а возможно даже рисуются налету.
Таким образом с помощью изменяющихся на лету изображений тайлов на денди создаются иллюзии независимых фонов — хотя они и обладают заметными ограничениями и недостатками, но смотрятся на этой платформе очень выгодно.

1 комментарий

avatar
Еще пример в игре от Metal Storm от Irem.
www.youtube.com/watch?v=D_xGOAnpCqQ
Интересно, откуда идет легкое подергивание фона при скролле? На реальной приставке тоже так?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.