Как исправить игры SNES



Это интервью взято в сентябре 2019 Лукасом Сантьяго у Витора Вилела, бразильского инженера, который исправил Gradius III.

— Здравствуйте, Витор! Для нас честь принимать вас сегодня в рамках 41 конференции Canal3, проходящей в Сан-Паулу. Нам любопытно узнать о вашем патче: как вам удалось сделать Gradius III ещё лучше, устранить все замедления и сделать его более плавным и быстрым. Эта работа очень важна для сообщества любителей ретроигр и заслуживает того, чтобы о ней узнали все.

Для начала расскажите немного о себе. Как вы заинтересовались программированием для такой классической консоли как SNES?

Вилела: Сперва хочу поблагодарить вас за то, что привели меня сюда. Здесь я впервые. Надеюсь это лишь начало. Это здорово — иметь возможность поделиться собственным опытом.

Всё началось, когда мне было 7 лет, и мой отец дал мне SNES. Я был тихим ребёнком, любил оставаться дома, хобби у меня было немного. И я быстро полюбил эту консоль. Начал играть в Super Mario World. По прошествии нескольких лет я стал искать новые игры. Моя семья очень скромная, поэтому достать новые картриджи было не так просто.

Когда мне исполнилось 11 лет у меня появился первый компьютер и доступ в интернет. Мне всегда было интересно, как работают видеоигры, как, например, редактировать уровни Super Mario World. Потом я нашёл редактор под названием Lunar Magic (Лунная магия). Он очень известен в сообществе ромахакинга. Используя его, вы можете редактировать почти всё в игре, каждый предмет. Так я впервые заинтересовался редактированием ROM-образов.
Ромхакинг — процесс модификации ROM-образа игрового картриджа от компьютерной игры с целью изменения игровой графики, текста, уровней и других составляющих. Ромхакингом занимаются опытные, обладающие специальными знаниями, фанаты консольных игр.
Со временем мои интересы расширялись: как работает видеоигра, как работает компьютер?

Так как я уже хорошо понимал, как редактировать Super Mario World и делал это хорошо, приобретённые знания помогли мне развить навыки программирования. Так что я познавал всё сам, просто будучи любопытным ребёнком. Учась в начальной школе, у меня было много свободного времени, благодаря которому я мог находиться за компьютером столько, сколько мне было необходимо. Часто приходилось чинить компьютер, форматировать жёсткий диск и переустанавливать операционку, раз за разом теряя все результаты работ…

Прошло время, я набрался опыта, и к 13 или 14 годам мне удалось собрать много информации о том, как работает SNES. А также получить немного знаний о программировании в целом.

— Видно, что за это время вы многому научились сами. Судя по рассказу ваша страсть пробудила желание узнать больше о программировании. Была ли у вас возможность изучать его в учебном заведении после того, как вы увлеклись SNES? Скажем, в старших классах или колледже?

Читать дальше →

R-Type

Сегодня предлагаю немного поговорить о папе всех shoot-em-up игр: R-Type. Игра, конечно, не была самой первой игрой жанра, но очень трудно найти что-либо еще, столь же сильно повлиявшее на развитие стрелялок, как R-Type. Если пораскинуть мозгами, то можно вспомнить Gradius, Xevious или Space Harrier, но для горизонтальных шутероы именно R-Type, на мой взгляд, задал вектор развития на много-много лет вперед.




Blast off and defeat the evil Bydo Empire

Обзор графической архитектуры SNES (+сравнение с Sega Mega Drive)

У нас битву 16–битных консолей выиграла спираченная Sega Mega Drive, в то время как в Северной Америке и Европе перевес оказался у Super Nintendo Entertaiment System (SNES), продолжателя дела Famicom известной у нас как Dendy. При этом, если в европах конкуренция была жаркой, то в пост-СССР SNES присутствовал на рынке очень слабо (в силу лицензионности), поэтому особо жарки споры о том какая из двух консолей круче всё–таки на западе, но у нас они тоже нередко встречаются.

Сразу хотел бы заметить, что с точки зрения программирования консоль от Сеги просто в разы проще и из-за этого она выигрывает приз моих программистских симпатий. Её процессор Motorola 68k по архитектуре был 32–битным, 16–битным в нём было только арифметико–логическое устройство (прозрачно для программиста). Он был проще и гибче в программировании нежели истинно 16–битный Ricoh 5A22, наследник 8–битного MOS 6502, используемый в SNES. Видеочип архитектурно тоже был простым и понятным, однако это означало и меньшие его возможности. Подробно о видеочипе Sega Mega Drive я писал тут.

Теперь же опишу видеочип SNES.

Читать дальше →

Mode 7 в SNES

По сравнению с 8–битной Famicom/NES/Денди в 16–битной Super Famicom/SNES графические возможности сильно расширились. Так, например, появились разные видеорежимы с возможностью отображения до четырёх независимо скроллящихся задних слоёв, просвечивающих друг сквозь друга. Однако единственный режим с четырьмя слоями обладал такой же как в Денди цветностью (4 цвета на тайл один из который — прозрачный), что было маловато для 16–битной консоли, так что чаще всего там использовались трёхслойные и двухслойные задние фоны. Однако подлинной вершиной двумерной графики в этой консоли стал однослойный видеорежим номер 7, так называемый Mode 7 (при этом он восьмой и последний по счёту — нумерация идёт с нуля) в котором единственный фон мог быть произвольно масштабирован и повёрнут.

Читать дальше →