Русский
Русский
English
Статистика
Реклама

Nintendo

На карманную консоль Nintendo Game amp Watch установили Doom

25.11.2020 20:07:40 | Автор: admin

Около недели назад на Хабре публиковалась новость о взломе карманной консоли Nintendo Game & Watch за день до ее официального релиза. Тогда пользователь с ником stacksmashing смог загрузить ROM Super Mario Bros. в оперативную память устройства.

Итак, в конечном итоге удалось обойти шифрование ROM Game & Watch за день до официального релиза. В ближайшие несколько дней постараюсь выпустить видео с подробностями о том, как это работает!, написал stacksmashing.

В сентябре сообщалось, что устройство будет стоить $50, а его релиз состоялся вчера. Эти консоли разобрали так быстро, что их сейчас нет в наличии в большинстве точек продаж и на сайтах реселлеров. Достоинство девайса цветной экран и три загруженные игры, включая Super Mario Bros, Super Mario Bros: The Lost Levels и Game & Watch: Ball. Но сегодня стало известно о том, что тот же пользователь, о котором говорилось, смог не только обойти систему шифрования, но и поставить на консоль Doom.

Кстати, пользователя зовут Thomas Roth, он специалист по информационной безопасности.

На данный момент играть не так, чтобы очень комфортно. Ради демонстрации процесса из игры убрали текстуры, аудио, а также снизили разрешение экрана. Это proof of concept, но все равно, сам факт такого взлома говорит о многом например, о том, что в приставку можно будет загружать дополнительные игры.

Взломщик консоли заявил, что он нашел способ заменить оригинальную прошивку девайса другой, модернизированной прошивкой. После доработки этот способ даст возможность загружать полноценные игры, с текстурой и аудио. Конечно, что-то более-менее современное вряд ли получится, поскольку аппаратные характеристики приставки не очень высокие. Но классические игры со старых приставок вполне.


На данный момент для взлома приставки нужны специфические инструменты и определенный опыт работы с прошивками. Несмотря на то, что прошивка зашифрована, защита не слишком сильная. Так что в прошивку можно загружать сторонний код без особых проблем.

К сожалению, автор взлома не рассказал о том, когда он сможет выпустить инструмент, позволяющий добавлять новые игры в приставку для обычных пользователей. Но как бы там ни было, приставка эта вполне кастомизируется. Ну а поскольку у интернету она не подключается, то у Nintendo вряд ли получится обновить прошивку, добавив более серьезную защиту.


Так что осталось подождать появления новых инструментов, которые позволят добавлять старые и любимые игры для всех желающих.

Подробнее..

Перевод Реверс-инжиниринг тетриса на Nintendo для добавления Hard Drop

25.03.2021 18:04:40 | Автор: admin

Тетрис на Nintendo одна из моих любимых версий тетриса. Моя единственная жалоба заключается в том, что ему не хватает возможности Hard Drop мгновенного падения текущей фигуры и её фиксации на месте. Давайте её добавим

В этом посте описывается модификация, которую я внёс в тетрис, нажатие кнопки вверх приводит к мгновенному падению текущей фигуры и отображению призрачной фигуры точечный контур текущей фигуры, показывающий, где она приземлится.

Ускоренное и мгновенное падение

Текущая фигура перемещается на одну клетку вниз за каждый тик игры. Реализации тетриса обычно предоставляют два способа ускорить падение ускоренное и мгновенное падение.

В случае ускоренного падения нажатие кнопки мгновенно переместит текущую фигуру вниз на одну позицию, а удерживание кнопки заставит её упасть быстрее.

Hard drop мгновенно опускает текущую фигуру и фиксирует её на месте. Поскольку игроку может быть сложно визуально определить, выровнена ли фигура с тем местом, куда она должна приземлиться, реализации тетриса с мгновенным падением обычно отображают контур этой фигуры, показывающий, где она в конечном счёте окажется.

До моих изменений NES Тетрис поддерживал только ускоренное падение.

Артефакт

Я сделал программу на rust, которая считывает файл NES ROM в формате INES. Если на входе был NES Tetris (обычно файл назван что-то вроде Tetris(U)[!].nes), на выходе она создаст новый файл ROM NES, который представляет собой NES Tetris, с добавлением быстрого падения фигуры.

Входной файл должен иметь хэш sha1 a99f922e9da20b2a27e4398348505d2e9d15271b.

$ cargo install nes-tetris-hard-drop-patcher   # install my tool$ nes-tetris-hard-drop-patcher < 'Tetris (U) [!].nes' > tetris-hd.nes   # patch a NES Tetris ROM$ fceux tetris-hd.nes   # run the result in an emulator

Этот инструмент полагается на то, что пользователь получит ROM-файл NES Tetris. В нём нет встроенного тетриса. Полученный файл ROM совместим со всеми эмуляторами NES он неспецифичен для fceux.

Патч

После публикации этого поста некоторые отметили, что существует стандартный формат для патча ROM (IPS), который широко поддерживается эмуляторами. Вы можете скачать мой патч здесь.

Инструменты

Пару лет назад я сделал эмулятор NES. Оказывается, это полезный инструмент для реверс-инжиниринга, поскольку эмулятор легко настроить для проведения экспериментов с запущенной им программой. В частности, очень пригодилась возможность логировать каждую инструкцию, перемежающуюся интересными событиями, такими как обновления видеопамяти. Также он может отображать гифки, и я использовал его для создания всех анимаций в этом посте.

Чтобы протестировать свой эмулятор, я создал библиотеку для написания ассемблерных программ на языке Rust. Вот пример, в котором значение в регистре аккумулятора умножается на 12:

b.inst(Clc, ());                  // clear carry flagb.inst(Rol(Accumulator), ());     // rotate accumulator 1 bit to the left (x2)b.inst(Rol(Accumulator), ());     // rotate accumulator 1 bit to the left (x4)b.inst(Sta(ZeroPage), 0x20);      // store current accumulator value at address 0x0020b.inst(Rol(Accumulator), ());     // rotate accumulator 1 bit to the left (x8)b.inst(Adc(ZeroPage), 0x20);      // add the accumulator with the value at 0x0020 (x12)

Это позволяет мне использовать rust как язык высокого уровня для ассемблерных программ NES. Гибкость Rust важна при добавлении пользовательского кода к существующей программе, написанной в 1980-х годах.

Во время отладки эмулятора я написал простой дизассемблер, который может отображать сборку программ NES для каждой функции.

Наконец, я использовал сторонний эмулятор NES под названием Mesen, который может похвастаться богатым набором инструментов отладки. Он был полезен для понимания содержимого памяти и состояния графического чипа в конкретный момент.

Визуализация конечного положения фигуры

В NES есть два разных типа графики:

  • фон представляет собой сетку из плиток 8x8 пикселов;

  • спрайты это плитки, которые можно рисовать в произвольных местах на экране.

В большинстве игр используется комбинация фонов и спрайтов, и Тетрис не исключение.

Спрайты в тетрисе используются, чтобы отрисовать текущую и следующую фигуры, а также фоновую графику для всего остального. На изображениях ниже демонстрируются два типа графики, с фоном вверху и спрайтами внизу.

В игре явно уже есть логика для рисования текущей фигуры с использованием спрайтов, поэтому самый простой способ визуализации конечного положения фигуры, похоже, заключается в повторном использовании этой логики, но с использованием контурной плитки, а не обычной.

Говоря о контурных плитках, я добавил в игру новую плитку, чтобы использовать её для призрачной фигуры:

Моя цель здесь выследить ту часть кода, которая рендерит текущую фигуры, чтобы повторно использовать этот код для рендеринга конечного положения фигуры.

Для рендеринга спрайтов на NES вы заполняете область основной памяти метаданными спрайта (положение, плитка и т. д.), а затем записываете адрес начала этой области памяти в регистр OAMDMA. (Прямой доступ к памяти атрибутов объекта OAM это специальная память для хранения метаданных спрайта, а DMA это общий термин для устройств, непосредственно считывающих и записывающих основную память.) Запись адреса в OAMDMA заставляет графическое оборудование NES копировать метаданные спрайта указанной области основной памяти и в специализированную память атрибутов объекта, которая будет использоваться во время рендеринга для рисования спрайтов.

Регистр OAMDMA отображается в адресное пространство ЦП по адресу 0x4014. Поиск в дизассемблированной программе по этому адресу показывает:

0xAB63  Lda(Immediate) 0x02       # load accumulator with 20xAB65  Sta(Absolute) 0x4014      # write accumulator to 0x4014

При этом значение 2 записывается в OAMDMA, в результате чего память от 0x0200 до 0x02FF копируется в OAM. И одна функция определённо передаёт управление подпрограмме как ответственная за заполнение буфера. Она находится в 0x8A0A и может многое рассказать о том, как работает Тетрис.

Она начинается с чтения значений из адресов 0x0040 и 0x0041, умножения каждого на 8 и добавления их к некоторым смещениям. На NES каждая плитка имеет размер 8x8 пикселей, так что это, по-видимому, переводится из координаты плитки в координату пиксела, где смещения являются компонентами координаты пиксела верхнего левого угла доски. Несколько минут копания в мезене подтверждают это: 0x40 это координата x, а 0x41 координата Y текущего фрагмента.

Затем функция считывает данные из 0x42. Это место всегда содержит значение от 0 до 12, которое, по-видимому, кодирует форму текущей фигуры, а также её вращение. Для фигур с вращательной симметрией (например, фигура S) несколько одинаковых вращений получают одно значение в 0x42. Я буду называть это значение индексом формы.

Каждая фигура в Тетрисе состоит из 4 плиток, и для каждой плитки рендерится один спрайт. Координаты в 0x40 и 0x41 это позиция фигуры, но для рендеринга спрайтов мы должны узнать положение каждой плитки. С этой целью эта функция обращается к таблице в ПЗУ по адресу 0x8A9C, которую я буду называть таблицей форм. Каждая из 13 частей (включая уникальные вращения) имеет 12-байтовую запись в таблице форм. Запись таблицы форм для фрагмента хранит по 3 байта для каждой из 4 плиток:

  • смещение плитки по оси y (относительно 0x41);

  • индекс спрайта, используемый при рендеринге плитки;

  • смещение плитки по оси x (относительно 0x40).

Эта функция вычисляет местоположение и индекс спрайта каждой плитки текущей фигуры и заполняет буфер OAM DMA этой информацией. Чтобы визуализировать призрачную фигуру, мне нужна аналогичная функция, за исключением того, что она отображает каждую плитку с контуром, а не плиткой из таблицы форм, и визуализирует фигуру с вертикальным смещением, так что фигура появляется в том месте, где она должна приземлиться после hard drop. Было бы нетривиально изменить эту функцию на месте, чтобы она была общей для призрачной и обычной фигуры, поэтому вместо этого я скопировал/вставил код и изменил его, чтобы сделать то, что мне нужно.

Сначала я стал использовать программу для просмотра памяти mesen, чтобы найти, казалось бы, неиспользуемую область ПЗУ. Я не знаю, что здесь делают строки с 0x00 и 0xFF! Также я не знаю, как изменить шрифт в mesen на Monospace!

Я выделил 512 байт памяти, начиная с адреса 0xD6D0. Первым кодом, который я добавил в эту область, была функция, которая просто вызывает существующую функцию обновления буфера DMA OAM:

b.label("oam-dma-buffer-update");// Call original functionb.inst(Jsr(Absolute), 0x8A0A);// Returnb.inst(Rts, ());

Мой инструмент для патча заменяет все вызовы исходной функции (0x8A0A) вызовами новой функции.

Затем я взял дизассемблированный код из исходной функции обновления буфера DMA OAM и вручную перевел его на язык rust для сборки NES.

Этот код:

0x8A0A  Lda(ZeroPage) 0x400x8A0C  Asl(Accumulator)0x8A0D  Asl(Accumulator)0x8A0E  Asl(Accumulator)0x8A0F  Adc(Immediate) 0x600x8A11  Sta(ZeroPage) 0xAA...

превратился в:

b.label("render-ghost-piece"); // function label so it can be called by name laterb.inst(Lda(ZeroPage), 0x40);b.inst(Asl(Accumulator), ());b.inst(Asl(Accumulator), ());b.inst(Asl(Accumulator), ());b.inst(Adc(Immediate), 0x60);b.inst(Sta(ZeroPage), 0xAA);...

Я изменил свою копию обновления буфера DMA OAM, чтобы использовать контурную плитку вместо плитки, считанной из буфера формы. Чтобы проверить это изменение, я обновил oam-dma-buffer-update, чтобы вызвать мою функцию вместо оригинала:

b.label("oam-dma-buffer-update");// Call new functionb.inst(Jsr(Absolute), "render-ghost-piece");// Returnb.inst(Rts, ());

Затем я заставил мою функцию рендеринга призрачной фигуры принимать аргумент, определяющий вертикальное расстояние, на котором должна оказаться призрачная фигура. В конце концов, это будет вычисляться на основе того, сколько раз фигура может сдвинуться вниз до столкновения, но сначала я попытался вызвать функцию с константой, равной 6.

b.label("oam-dma-buffer-update");  // Call original function first b.inst(Jsr(Absolute), 0x8A0A); // Render the ghost piece, passing the vertical offset argument in address 0x0028. b.inst(Lda(Immediate), 6); b.inst(Sta(ZeroPage), 0x28); b.inst(Jsr(Absolute), "render-ghost-piece"); // Return b.inst(Rts, ());b.label("oam-dma-buffer-update");// Call original function firstb.inst(Jsr(Absolute), 0x8A0A);// Render the ghost piece, passing the vertical offset argument in address 0x0028.b.inst(Lda(Immediate), 6);b.inst(Sta(ZeroPage), 0x28);b.inst(Jsr(Absolute), "render-ghost-piece");// Returnb.inst(Rts, ());

Теперь вычислим истинное вертикальное смещение от текущей фигуры до места, где она приземлится после падения. Наблюдая за памятью с помощью mesen, я заметил, что ничего, похоже, не работает с памятью от 0x0020 до 0x0028. Первые 256 байтов памяти называются нулевой страницей и обеспечивают более быстрый доступ, чем остальная часть памяти. Мне нужно 8 байтов нулевой страницы для хранения координат X, Y каждой плитки текущей фигуры и обнаружения столкновений, а также один дополнительный байт для хранения временных значений во время вычислений.

Начните с инициализации значений от 0x20 до 0x27 координатами X, Y каждой плитки текущей фигуры:

b.label("compute-hard-drop-distance"); // function label so it can be called by name laterconst SHAPE_TABLE: Address = 0x8A9C;const ZP_PIECE_COORD_X: u8 = 0x40;const ZP_PIECE_COORD_Y: u8 = 0x41;const ZP_PIECE_SHAPE: u8 = 0x42;// Multiply the shape by 12 to make an offset into the shape table,// storing the result in IndexRegisterX.b.inst(Lda(ZeroPage), ZP_PIECE_SHAPE);  // read shape index into accumulatorb.inst(Clc, ());               // clear carry flag to prepare for arithmeticb.inst(Rol(Accumulator), ());  // rotate left: index * 2b.inst(Rol(Accumulator), ());  // rotate left: index * 4b.inst(Sta(ZeroPage), 0x20);   // store index * 4 at 0x0020b.inst(Rol(Accumulator), ());  // rotate left: index * 8b.inst(Adc(ZeroPage), 0x20);   // add to 0x0020: index * 12b.inst(Tax, ());               // transfer accumulator to IndexRegisterX// Store absolute X,Y coords of each tile by reading relative coordinates from shape table// and adding the piece offset, storing the result in zero page 0x20..=0x27.for i in 0..4 { // this is a rust loop - the assembly generated inside will be generated 4 times    b.inst(Lda(AbsoluteXIndexed), Addr(SHAPE_TABLE)); // read Y offset from shape table    b.inst(Clc, ());                                  // clear carry flag to prepare for addition    b.inst(Adc(ZeroPage), ZP_PIECE_COORD_Y);          // add to Y coordinate of piece    b.inst(Sta(ZeroPage), 0x21 + (i  2));            // store the result in zero page    b.inst(Inx, ());                                  // increment IndexRegisterX to sprite index    b.inst(Inx, ());                                  // increment IndexRegisterX to X offset    b.inst(Lda(AbsoluteXIndexed), Addr(SHAPE_TABLE)); // read X offset from shape table    b.inst(Clc, ());                                  // clear carry flag to prepare for addition    b.inst(Adc(ZeroPage), ZP_PIECE_COORD_X);          // add to X coordinate of piece    b.inst(Sta(ZeroPage), 0x20 + (i  2));            // store the result in zero page    b.inst(Inx, ());                                  // increment IndexRegisterX to next tile}

Теперь о фактическом обнаружении столкновений! Неоднократно увеличивайте компонент Y каждой координаты плитки в адресах от 0x20 до 0x27, пока одна из плиток не столкнётся с зафиксированной плиткой или не выйдет за нижнюю часть поля. Изучая память с помощью mesen, я узнал, что состояние поля хранится в виде строкового массива индексов спрайтов, начинающихся с 0x0400, и что 0xEF это индекс плитки пустого пространства. Стратегия будет заключаться в использовании координаты каждой плитки для построения индекса в этом массиве и остановке, если будет найдено что-либо кроме 0xEF.

Возможная путаница в приведённом ниже коде заключается в том, что он реализует цикл в сборке, но есть также цикл for в rust, который генерирует сборку. Эти два цикла не связаны между собой. Сборка в цикле rust проходит 4 раза, и результат составляет тело цикла сборки.

const BOARD_TILES: Address = 0x0400;const EMPTY_TILE: u8 = 0xEF;const BOARD_HEIGHT: u8 = 20;b.inst(Ldx(Immediate), 0);   // Load 0 into IndexRegisterX - this will be our loop counterb.label("start-ghost-depth-loop"); // This is a label - a target for branch instructionsfor i in 0..4 { // the assembly in this rust loop will be emitted 4 times    // Increment the Y component of the coordinate    b.inst(Inc(ZeroPage), 0x21 + (i * 2));    // Break out of the loop if the tile is off the bottom of the board    b.inst(Lda(ZeroPage), 0x21 + (i * 2));    b.inst(Cmp(Immediate), BOARD_HEIGHT);    b.inst(Bpl, LabelRelativeOffset("end-ghost-depth-loop"));    // Multiply the Y component of the coordinate by 10 (the number of columns)    b.inst(Asl(Accumulator), ());    b.inst(Sta(ZeroPage), 0x28); // store Y * 2    b.inst(Asl(Accumulator), ());    b.inst(Asl(Accumulator), ()); // accumulator now contains Y * 8    b.inst(Clc, ());    b.inst(Adc(ZeroPage), 0x28); // accumulator now contains Y * 10    // Now add the X component to get the row-major index of the cell    b.inst(Adc(ZeroPage), 0x20 + (i * 2));    // Load the tile at that coordinate    b.inst(Tay, ());    b.inst(Lda(AbsoluteYIndexed), BOARD_TILES);    // Test whether the tile is empty, breaking out of the loop if it is not    b.inst(Cmp(Immediate), EMPTY_TILE);    b.inst(Bne, LabelRelativeOffset("end-ghost-depth-loop"));}// Increment counter and loopb.inst(Inx, ());b.inst(Jmp(Absolute), "start-ghost-depth-loop");b.label("end-ghost-depth-loop");

Это приводит к тому, что IndexRegisterX содержит количество повторений цикла, которое также является вертикальным расстоянием от текущей фигуры до того места, где она окажется после падения. Для удобства эта функция вернёт результат через регистр аккумулятора:

// Return depth via accumulatorb.inst(Txa, ());  // transfer IndexRegisterX to accumulatorb.inst(Rts, ());  // return

Вот полный код замещающей функции обновления буфера DMA OAM:

b.label("oam-dma-buffer-update");// Call original function firstb.inst(Jsr(Absolute), 0x8A0A);// Compute distance from current piece to drop destination, placing result in accumulatorb.inst(Jsr(Absolute), "compute-hard-drop-distance");// Check if the distance is 0, and skip rendering the ghost piece in this caseb.inst(Beq, LabelRelativeOffset("after-render-ghost-piece"));// Render the ghost piece, passing the vertical offset argument in address 0x0028.b.inst(Sta(ZeroPage), 0x28);b.inst(Jsr(Absolute), "render-ghost-piece");b.label("after-render-ghost-piece");// Returnb.inst(Rts, ());

Результат:

Добавление контроллера для Hard Drop

Теперь, когда выполняется рендеринг призрачной фигуры, следующий шаг сделать так, чтобы при нажатии кнопки вверх на контроллере происходило мгновенное падение. Кнопка вверх не используется в Тетрисе, поэтому нам не нужно беспокоиться о потере некоторых функций, чтобы получить hard drop.

Как и в случае с добавлением контуров фигуры, я решил найти функцию, которую я мог бы заменить новой функцией, которая вызывает оригинал перед выполнением дополнительных действий, в этом случае проверяется, была ли нажата кнопка вверх, и выполняется мгновенное падение фигуры, если да.

Моя первая попытка состояла в том, чтобы найти код, который считывает регистр состояния контроллера 0x4016, но, похоже, существует довольно много косвенных связей между чтением этого регистра и обновлением состояния игры на основе того, какие кнопки нажимаются.

Моя вторая идея заключалась в том, чтобы настроить мой эмулятор для логирования каждой выполненной инструкции. Я загрузил Тетрис и прошёлся по меню, чтобы начать новую игру, а затем сохранил файл состояния. У моего эмулятора есть возможность запускать определённое количество кадров. Я настроил его на работу в 20 кадров, загрузил файл состояния и записал каждую инструкцию, не нажимая никаких элементов управления. Затем я повторил этот процесс, но на этот раз я нажимал левую кнопку на протяжении 20 кадров. Теперь у меня было два лога потока инструкций один без нажатых элементов управления, а второй с их нажатием. Само собой разумеется, что в первую очередь эти потоки различаются, когда программа в первый раз разветвляется по состоянию левой кнопки.

Конечно же:

@@ -116912,9 +116912,175 @@ 0x89B8  Lda(ZeroPage) 0xB5 0x89BA  And(Immediate) 0x03 0x89BC  Bne(Relative) 0x15-0x89BE  Lda(ZeroPage) 0xB6-0x89C0  And(Immediate) 0x03-0x89C2  Beq(Relative) 0x45+0x89D3  Lda(Immediate) 0x00+0x89D5  Sta(ZeroPage) 0x46+0x89D7  Lda(ZeroPage) 0xB6+0x89D9  And(Immediate) 0x01+0x89DB  Beq(Relative) 0x0F...

Перекрёстная ссылка с дизассемблированным ПЗУ, эта функция начинается с:

0x89AE  Lda(ZeroPage) 0x400x89B0  Sta(ZeroPage) 0xAE0x89B2  Lda(ZeroPage) 0xB60x89B4  And(Immediate) 0x040x89B6  Bne(Relative) 0x51 (relative: 0x51, absolute: 0x8A09)0x89B8  Lda(ZeroPage) 0xB50x89BA  And(Immediate) 0x030x89BC  Bne(Relative) 0x15 (relative: 0x15, absolute: 0x89D3)0x89BE  Lda(ZeroPage) 0xB60x89C0  And(Immediate) 0x030x89C2  Beq(Relative) 0x45 (relative: 0x45, absolute: 0x8A09)...

Это ветвление на основе содержимого адресов 0x00B5 и 0x00B6. Во время наблюдения за этими адресами в mesen во время затирания элементов управления у меня создаётся впечатление, что 0xB5 хранит различия между кадрами в состоянии контроллера, а 0xB6 хранит текущее состояние контроллера. Несмотря на то что тетрис не использует её, состояние кнопки вверх отражается в этих значениях.

Я запустил эту функцию так же, как и мою замену для обновления буфера DMA OAM. Всё, что он сделал, это вызвал исходную функцию и вернул:

b.label("handle-controls");// Call the original functionb.inst(Jsr(Absolute), 0x89AE);// Returnb.inst(Rts, ());

Теперь добавим проверку, нажата ли кнопка вверх. А пока просто телепортируем текущую фигуры на фиксированную высоту при нажатии кнопки:

b.label("handle-controls");const CONTROLLER_STATE: u8 = 0xB6;const CONTROLLER_BIT_UP: u8 = 0x08;// Call the original functionb.inst(Jsr(Absolute), 0x89AE);// Skip to the end if the UP bit of the controller state is not setb.inst(Lda(ZeroPage), CONTROLLER_STATE);b.inst(And(Immediate), CONTROLLER_BIT_UP);b.inst(Beq, LabelRelativeOffset("controller-end"));// Set the current piece's Y coordinate to 7b.inst(Lda(Immediate), 7);b.inst(Sta(ZeroPage), ZP_PIECE_COORD_Y);b.label("controller-end");// Returnb.inst(Rts, ());

Вот код в действии, когда я несколько раз нажимаю вверх:

Затем замените тестовую константу 7 на фактическое положение, в котором деталь окажется после резкого падения. Используйте функцию compute-hard-drop-distance, которую мы написали для рендеринга призрачной части, а затем просто добавьте текущую позицию фигуры, чтобы получить абсолютную координату Y, в которой он окажется после падения:

b.label("handle-controls");const CONTROLLER_STATE: u8 = 0xB6;const CONTROLLER_BIT_UP: u8 = 0x08;// Call the original functionb.inst(Jsr(Absolute), 0x89AE);// Skip to the end if the UP bit of the controller state is not setb.inst(Lda(ZeroPage), CONTROLLER_STATE);b.inst(And(Immediate), CONTROLLER_BIT_UP);b.inst(Beq, LabelRelativeOffset("controller-end"));// Compute distance from current piece to drop destination, placing result in accumulatorb.inst(Jsr(Absolute), "compute-hard-drop-distance");// Add the current piece's Y coordinateb.inst(Clc, ());b.inst(Adc(ZeroPage), ZP_PIECE_COORD_Y);// Update the current piece's Y coordinate with the resultb.inst(Sta(ZeroPage), ZP_PIECE_COORD_Y);b.label("controller-end");// Returnb.inst(Rts, ());

Выглядит неплохо!

Однако имеется небольшая проблема со скоростью. Похоже, что игра ожидает окончания текущего тика, прежде чем создать следующую фигуру. После hard dropa текущий тик должен немедленно закончиться и следующая фигура должна появиться без задержки.

Глядя на память с помощью mesen, можно увидеть, что есть счётчик по адресу 0x0045, который ведёт отсчёт до некоторого числа, а затем сбрасывается на следующем тике (когда текущая фигура перемещается вниз сама по себе). Чтобы узнать больше, я заставил свой эмулятор записывать все инструкции и запускать игру в течение 13 тиков. Я выбрал 13, потому что казалось маловероятным, что они генерируются случайно.

Во время этого прогона таймер истёк бы 13 раз. Где-то в логах инструкций есть связанная инструкция, которая была выполнена ровно 13 раз. Давайте найдём!

Логи инструкций находится в файле с именем /tmp/log.txt:

cat /tmp/log.txt | sort | uniq --count | sort --numeric-sort

Мы сортируем инструкции по частоте. Просматривая те, которые были выполнены 13 раз, я заметил:

13 0x8958  Lda(Immediate) 0x0013 0x895A  Sta(ZeroPage) 0x45

Это кажется актуальным, потому что он взаимодействует с таймером по адресу 0x0045!

Обращение к дизассемблированному коду этой инструкции:

0x8980  Lda(ZeroPage) 0x45    # load the timer value0x8982  Cmp(ZeroPage) 0xAF    # compare with the value at 0x00AF0x8984  Bpl(Relative) 0xD2 (relative: D2, absolute: 8958)  # branch if it was higher0x8986  Jmp(Absolute) 0x89720x8972  Rts(Implied)0x8958  Lda(Immediate) 0x00  # load 0 into the accumulator0x895A  Sta(ZeroPage) 0x45   # store the accumulator (0) in the timer

Две последние инструкции устанавливают значение таймера в 0, и они выполняются ровно 13 раз. Единственный способ получить эти инструкции через ветвь (0x8984), что означает, что условие ветвления выполняется только 13 раз вероятно, один раз за такт. Таким образом, вероятное повествование состоит в том, что таймер увеличивается на единицу каждый кадр, а кадр, в котором он становится больше значения в 0xAF, отмечает конец текущего тика, в этот момент таймер сбрасывается, и текущая фигура перемещается вниз.

Наблюдаем за 0x00AF в mesen, и это, кажется, максимальное значение, которого достигает таймер в 0x0045. Кроме того, когда вы завершаете уровень, значение 0x00AF уменьшается, что ускоряет игру! Поэтому после hard drop просто установите значение таймера на значение 0x00AF:

b.label("handle-controls");const CONTROLLER_STATE: u8 = 0xB6;const CONTROLLER_BIT_UP: u8 = 0x08;const TIMER: u8 = 0x45;const TIMER_MAX: u8 = 0xAF;// Call the original functionb.inst(Jsr(Absolute), 0x89AE);// Skip to the end if the UP bit of the controller state is not setb.inst(Lda(ZeroPage), CONTROLLER_STATE);b.inst(And(Immediate), CONTROLLER_BIT_UP);b.inst(Beq, LabelRelativeOffset("controller-end"));// Compute distance from current piece to drop destination, placing result in accumulatorb.inst(Jsr(Absolute), "compute-hard-drop-distance");// Add the current piece's Y coordinateb.inst(Clc, ());b.inst(Adc(ZeroPage), ZP_PIECE_COORD_Y);// Update the current piece's Y coordinate with the resultb.inst(Sta(ZeroPage), ZP_PIECE_COORD_Y);// Set the timer to its maximum valueb.inst(Lda(ZeroPage), TIMER);b.inst(Sta(ZeroPage), TIMER_MAX);b.label("controller-end");// Returnb.inst(Rts, ());

Выглядит лучше, но всё равно есть большая задержка, если вы очень быстро опустите первую фигуру во время первого тика. Оказывается, первый тик занимает больше времени, чем все остальные тики. Глядя на память в mesen, я заметил, что значение 0x004E увеличивается во время первого тика. Для всех остальных тиков он установлен на 0. Установка его на 0 после появления hard dropa решает проблему с синхронизацией.

b.label("handle-controls");const CONTROLLER_STATE: u8 = 0xB6;const CONTROLLER_BIT_UP: u8 = 0x08;const TIMER: u8 = 0x45;const TIMER_MAX: u8 = 0xAF;const TIMER_FIRST_TICK: u8 = 0x4E;// Call the original functionb.inst(Jsr(Absolute), 0x89AE);// Skip to the end if the UP bit of the controller state is not setb.inst(Lda(ZeroPage), CONTROLLER_STATE);b.inst(And(Immediate), CONTROLLER_BIT_UP);b.inst(Beq, LabelRelativeOffset("controller-end"));// Compute distance from current piece to drop destination, placing result in accumulatorb.inst(Jsr(Absolute), "compute-hard-drop-distance");// Add the current piece's Y coordinateb.inst(Clc, ());b.inst(Adc(ZeroPage), ZP_PIECE_COORD_Y);// Update the current piece's Y coordinate with the resultb.inst(Sta(ZeroPage), ZP_PIECE_COORD_Y);// Set the timer to its maximum valueb.inst(Lda(ZeroPage), TIMER);b.inst(Sta(ZeroPage), TIMER_MAX);// Clear the first tick timerb.inst(Lda(Immediate), 0x00);b.inst(Sta(ZeroPage), TIMER_FIRST_TICK);b.label("controller-end");// Returnb.inst(Rts, ());

Кажется, это работает!
Исходный код инструмента исправления доступен на github. Загрузите патч IPS, который применяет изменения, описанные в этом посте, здесь. Второй патч, который добавляет hard drop, но не визуализирует конечное положение фигуры, доступен здесь.

А если хотите создать свой игровой бестселлер, который, как и детище Алексея Пажитнова войдёт в историю приходите к нам на курс Разработчик игр на Unity, на котором мы рассказываем про все тонкости разработки игр.

Узнайте, как прокачаться в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Великолепный Марио рождение легенды

09.10.2020 22:10:21 | Автор: admin

Ровно 35 лет назад, 13 сентября 1985 года, состоялся релиз игры, на долгие годы определившей облик индустрии и заложившей фундаментальные основы жанра платформер. Игры, которая принесла компании Nintendo баснословную прибыль и наглядно доказала, что спасение принцесс под силу не только рыцарям в сияющих доспехах, но и обычным водопроводчикам. В честь этой знаменательной даты мы подготовили для вас материал, повествующий о череде удивительных событий, подаривших миру одного из самых обаятельных персонажей за всю историю видеоигр.

Только бизнес и немного личного


30 апреля 1934 года в семье итальянских иммигрантов Луи и Рины Сегали, проживавших в Сиэтле (штат Вашингтон), родился долгожданный ребенок. В 1952 году Сегали-младший окончил среднюю школу, после чего в течение 5 лет работал в одной из местных строительных компаний, а в 1957 году принял решение основать собственный бизнес в сфере городского девелопмента и дорожного строительства. На старте будущая M.A. Segale Inc. состояла всего из двух сотрудников (самого Сегали и его жены Донны), однако благодаря упорной работе семейной пары предприятие постепенно трансформировалось из небольшой конторы, в активах которой значился единственный пикап, в одного из крупнейших региональных подрядчиков, а в 1998 году компания вошла в состав крупного ирландского концерна CRH plc, став частью его дочки Oldcastle Materials, базирующейся в Атланте. На тот момент совокупная стоимость M.A. Segale Inc. достигла 60 миллионов долларов США.

Ведение бизнеса в столь конкурентной нише требовало немалых денежных вливаний, поэтому Сегали параллельно осваивал смежные отрасли с целью получения дополнительных средств, которые в дальнейшем можно было бы инвестировать в развитие M.A. Segale Inc. Одним из таких направлений стала сдача в аренду складских помещений в пригороде Сиэтла. Занятие оказалось довольно прибыльным, хотя и доставляло бизнесмену немало хлопот: Сегали регулярно приходилось иметь дело с нерадивыми арендаторами, ни в какую не желавшими своевременно выполнять взятые на себя финансовые обязательства.

Одна из таких историй произошла в 1981 году. Небольшая японская компания, производившая аркадные автоматы, задумала покорить американский рынок и арендовала у Сегали под свою продукцию вместительный склад. Увы, ее дебютная игра потерпела полный коммерческий провал, что привело к неизбежной просрочке арендной платы. Сегали тогда лично встретился с главой американского филиала и строго отчитал его прямо перед подчиненными, однако в конечном счете сторонам удалось прийти к взаимовыгодному соглашению: компания получила необходимую отсрочку, благодаря чему ей удалось поправить свое финансовое положение и сполна расплатиться со всеми долгами.

Вряд ли хоть кто-то мог предположить, что благосклонность предпринимателя сыграет решающую роль в становлении индустрии видеоигр и приведет к появлению самого популярного в мире персонажа платформеров. Ведь нерадивым арендатором был не кто иной, как Минору Аракава, президент Nintendo of America, а устроившим ему разнос бизнесменом Марио Сегали, в честь которого впоследствии и получил свое имя всемирно известный водопроводчик.


Марио Сегали и его виртуальный протагонист мало похожи друг на друга

Игра на выживание: от Donkey Kong до Super Mario Bros.


Само по себе появление в меру упитанного усатого коротышки в самом расцвете сил является следствием целой череды компромиссов и совпадений. Дебют Nintendo на американском рынке игровых автоматов действительно обернулся грандиозным провалом. Пользующийся огромной популярностью в Японии аркадный шутер Radar Scope (вариация на тему Space Invaders), на который компания делала основную ставку, с треском провалился. Из 3 тысяч привезенных в США игровых автоматов (всю партию пришлось заказать заранее у Ikegami Tsushinki, так как сама Nintendo не имела достаточных производственных мощностей) удалось реализовать лишь около тысячи, а остальные продолжили пылиться на том самом злополучном складе.


В такой ситуации наиболее логичным (и безопасным) для Nintendo стало бы признание поражения и сосредоточение на внутреннем рынке, однако Минору Аракава смог убедить своего отчима Хироси Ямаути, возглавлявшего компанию в те времена, пойти на рискованный шаг и вложиться в создание новой игры. Поскольку в компании катастрофически не хватало профессиональных гейм-дизайнеров, на должность руководителя проекта утвердили тогда еще совсем зеленого Сигэру Миямото, на счету которого было участие в одном-единственном проекте (и то лишь на вторых ролях) том самом Radar Scope, который столь прохладно встретили американцы.

Однако это решение оказалось абсолютно верным: именно Сигэру смог создать подлинный шедевр, с которого и началось триумфальное восхождение Nintendo на олимп игровой индустрии.


Счастливая семья: Сигэру Миямото в окружении своих детей Марио и Луиджи

Неопытность Миямото в гейм-дизайне в конечном счете и определила концепцию будущего проекта. В то время при разработке игр было модным заимствовать отдельные эпизоды из боевиков, будь то погони, перестрелки или сражения с пришельцами. Однако Сигэру хотел создать более целостный продукт, способный рассказать пусть короткую, но самодостаточную историю в рамках видеоигры для аркадного автомата. Да, как бы странно это ни звучало, но будущий Donkey Kong был во многом именно про сюжет, благодаря чему и смог завоевать сердца игроков.

Хотя сперва ни о какой гигантской горилле речи не шло, а в качестве главных героев игры предполагалось использовать персонажей комикса и одноименного мультфильма о Попае. По изначальной задумке в роли damsel in distress (кстати, этот троп был задействован в видеоигре впервые) выступала возлюбленная моряка Олив Ойл, а главным антагонистом должен был стать громила Блуто. Однако King Features Syndicate, которой принадлежали права на персонажей, отказала Nintendo, посчитав затею не слишком удачной. И пожалела об этом спустя всего год: на фоне успеха Donkey Kong компания все же дала проекту зеленый свет, и в 1982 году вышла игра Popeye, имевшая схожую концепцию, однако обрести мировую известность ей, увы, не было суждено.


После отказа King Features Syndicate Миямото нашел вдохновение в кинокартине 1933 года Кинг-Конг. По сути, сюжет игры представлял собой переосмысление заключительной сцены фильма: обезумевший примат гигантских размеров карабкается по строительным лесам, сжимая в лапе красавицу Паулину (именно Паулину, а не принцессу Пич, как многие считают), а игрок берет на себя роль храброго плотника, который должен, минуя все препятствия, спасти свою возлюбленную.


Рекламный плакат к оригинальной игре Donkey Kong

Концепция оказалась гениальной в своей простоте: вся фабула умещалась на одном экране и не требовала каких-то особых выразительных средств или пояснений. Игрок мог сразу понять что почем: вот главный враг, вот красавица, которую нужно спасти, а вот и наш протагонист, на плечи которого возложена эта нелегкая задача. Сюжет игры был предельно прост, однако отличался целостностью и завершенностью.


Концепт-арт Donkey Kong, нарисованный Сигэру Миямото

Изначально главный герой значился во всех диздоках не иначе как Jumpman (Прыгун), и лишь благодаря просроченной аренде обрел простое, но запоминающееся имя. Что же касается образа персонажа, то он во многом стал таким из-за технических ограничений игровых автоматов. Спецовка и кепка появились благодаря тому, что существенно упростили работу художников и аниматоров, избавив от необходимости прорисовывать мелкие детали одежды и прическу, яркие цвета помогли выделить протагониста на фоне декораций, а перчатки Микки Мауса четко обозначить кисти рук при совершении различных действий.


Широко раскрытые глаза, роскошные усы и нос картошкой делали Марио узнаваемым, но, чтобы все это можно было разглядеть на миниатюрном спрайте, человечка пришлось наделить анатомией Карлсона. Ну а профессию он сменил и вовсе благодаря бывшему однокурснику Сигэру Миямото: как-то раз в личном разговоре приятель гейм-дизайнера отметил, что костюм Марио решительно не подходит плотнику, а вот для водопроводчика будет в самый раз. Вот так, благодаря череде случайностей и несовершенству техники, на свет появился самый популярный персонаж за всю историю видеоигр, ставший впоследствии талисманом Nintendo.


На момент завершения разработки еще никто не подозревал, насколько успешной окажется новая игра. Поскольку судьба американского филиала Nintendo висела на волоске, производство аркадных автоматов было развернуто все на том же складе. Трем сотрудникам компании (дополнительный персонал был непозволительной роскошью) поручили установить новые программные платы в невостребованные 2 тысячи игровых автоматов Radar Scope и заменить наклейки на лицевых панелях. Впрочем, совсем скоро Nintendo столкнулась с другой проблемой: спрос на новую игру оказался настолько велик, что компания едва справлялась с его удовлетворением.


Аркадные автоматы Radar Scope, Donkey Kong и его сиквелов: найдите 10 отличий

На фоне успеха оригинала сиквел не заставил себя долго ждать: в 1982 году свет увидела игра Donkey Kong Jr. (Донки-Конг младший), в которой Марио выступил уже в роли главного антагониста (в первый и последний раз). По сюжету игры наш тогда еще плотник построил для гигантской гориллы прочную клетку, а игрок управлял племянником человекообразного хулигана, который должен был вызволить нерадивого родственника из неволи.


Следующее пришествие Марио на экраны игровых автоматов состоялось уже в 1983 году и расставило все точки над i. Обаятельный усач официально сменил профессию, став водопроводчиком, да и действие игры перенеслось со строительных лесов под землю. Теперь Марио предстояло очистить городскую канализацию от невесть откуда взявшихся агрессивных черепах, крабов и гигантских мух, причем достаточно нетривиальным способом: когда противник появлялся на платформе, персонаж должен был ударить по ней снизу в прыжке и затем выбить врага за пределы экрана мощным пинком, пока тот беспомощно лежит на спине. Если не успеть этого сделать, противник переходил в следующую стадию, становясь более агрессивным и быстрым. А помогал в этом нелегком деле нашему героическому усачу брат-близнец Луиджи, носивший комбинезон зеленого цвета.


Следующее приключение братьев Марио (да-да, Марио, помимо прочего, еще и фамилия главных героев, что Сигэру Миямото официально подтвердил лишь в 2015 году, во время празднования 30-летия франшизы) не заставило себя долго ждать: в 1985 году компания выпустила полноценный платформер Super Mario Bros. для домашней игровой системы Nintendo Entertainment System (Famicom). Игра имела оглушительный успех и даже попала в Книгу рекордов Гиннесса, став самым продаваемым тайтлом в истории индустрии: совокупный тираж Super Mario Bros. превысил 40 миллионов копий.


Что касается сюжета, то здесь со времен Donkey Kong мало что поменялось: Миямото вновь использовал девицу в беде, с той лишь разницей, что теперь наш водопроводчик спасал не абы кого, а принцессу Грибного королевства Пич (от английского Peach персик), а в роли его противника выступал грозный Король Боузер лидер злобных черепах Купа. Зато по наполнению контентом Super Mario Bros. могла дать фору практически любой игре тех времен.

Инженерам Nintendo удалось совершить невозможное и выжать максимум из ограниченных ресурсов консоли, что позволило создать по-настоящему увлекательную и разнообразную игру, у которой на момент релиза попросту не было достойных аналогов. Super Mario Bros. включала в себя 32 уровня, по 4 в каждом из 8 уникальных миров, а ее боевая система предполагала сразу несколько способов устранения врагов: Марио мог запрыгнуть на противника сверху, ударить по платформе, на которой тот находился, снизу, использовать виртуального оппонента в качестве оружия (спрятавшуюся в панцирь черепаху можно было запустить в других противников, причем она могла отрикошетить от стены и попасть в самого Марио) или уничтожить с помощью огненного шара (для этого надо было подобрать специальный бонус).


Ограниченное количество жизней (Марио, ко всему прочему, погибал с одного удара) делало платформер по-настоящему хардкорным, а таймер обратного отсчета добавлял динамики, мотивируя игрока постоянно двигаться вперед, ориентироваться в происходящем на ходу и совершенствовать собственные навыки. В сочетании с разрушаемым окружением и множеством секретов, большинство из которых можно было обнаружить лишь случайно, все это обеспечивало невероятную насыщенность игрового процесса.

Ну а после успешного прохождения в Super Mario Bros. открывался режим повышенной сложности, привносящий дополнительное разнообразие в геймплей:

  • противников становилось больше, они начинали передвигаться заметно быстрее;
  • оглушенные враги практически сразу приходили в себя;
  • все грибы Гумба заменялись на более опасных жуков Баззи;
  • платформы-лифты уменьшались в размерах, и на них становилось сложнее запрыгнуть;
  • количество вращающихся огненных стержней увеличивалось, при этом они становились длиннее;
  • на некоторых картах появлялись дополнительные ловушки и препятствия.


Super Mario Bros. стала подлинной иконой индустрии, обозначив фундаментальные основы жанра, поэтому именно дату ее релиза и принято считать официальным днем рождения Марио. А герои игры во главе с великолепным водопроводчиком и по сей день кочуют из проекта в проект, продолжая радовать игроков по всему миру.

Впрочем, Nintendo не забыла и о других персонажах, принесших компании мировую славу. Простоватый Донки-Конг окончательно перевоспитался (видимо, пребывание в клетке, сооруженной Марио, оказало на примата благотворное влияние), получив собственную франшизу. Да и красотка Паулина в дальнейшем неоднократно появлялась в играх Nintendo и даже смогла выстроить политическую карьеру, став мэром Нью-Донка: в этом качестве ее можно встретить в Super Mario Odyssey.


А еще Паулина неплохо поет

Праздник со слезами на глазах


Увы, в наше время редкая бочка меда обходится без ложки дегтя, и даже столь знаменательное событие, как 35-летний юбилей Марио, не стало исключением. Хотя, казалось бы, кто мог испортить такой праздник, кроме, разумеется, самой Nintendo? Но ирония как раз и заключается в том, что именно большая N и не преминула воспользоваться столь удачно подвернувшимся случаем.

Давайте пофантазируем. Вы являетесь владельцем одной из богатейших компаний в игровой индустрии, и вам принадлежит самая успешная франшиза в истории видеоигр. Ключевому маскоту бренда исполняется 35 лет. Что можно придумать по такому случаю? Да буквально все что угодно. Например, выпустить лимитированную версию Nintendo Switch с уникальным дизайном и выгравированным на корпусе автографом Сигэру Миямото, способную занять почетное место на полке любого коллекционера. Или предложить фанатам достойные ремастеры классических игр серии, выполненные на уровне Super Mario Odyssey (если речь идет о 3D-играх) или New Super Mario Bros. U Deluxe (если говорить о традиционных платформерах с видом сбоку). Nintendo решили пойти по второму пути: 18 сентября 2020 года состоялся официальный релиз сборника Super Mario 3D All-Stars, куда вошли ремастеры Super Mario 64 (1996), Super Mario Sunshine (2002) и Super Mario Galaxy (2007). Вот только назвать их достойными язык не поворачивается, да и слово ремастеры стоит взять в кавычки.


Строго говоря, перед нами даже не совсем порты. Как выяснил дата-майнер OatmealDome еще до официального релиза, портом с натяжкой является лишь Super Mario Galaxy: в данном случае разработчики действительно перекомпилировали код оригинальной игры, добавив поддержку nVidia Tegra X1, однако нативно APU обрабатывает лишь игровую логику, в то время как за рендер и даже за воспроизведение звука отвечает эмулятор под кодовым названием hagi. В то же время Super Mario 64 и Super Mario Sunshine не были переделаны вообще: при желании их можно хоть сейчас запустить на том же Dolphin.

Все улучшения графики (весьма скромные, надо отметить) и исправления перевода применяются на лету, точно так же, как это реализовано в свободных эмуляторах классических консолей, хотя последние справляются со своей задачей куда лучше, нежели фирменный костыль от Nintendo. И только главное меню сборника является оригинальным: оно выполнено на базе LunchPack, который также использовался в играх серии Splatoon, Super Mario Maker и Animal Crossing.


В Super Mario 64 немного улучшены текстуры и увеличено разрешение рендера, но этим дело и ограничивается

Таким образом по факту мы имеем дело не с ремастерами, а с максимально ленивым ретекстуром, где не было изменено практически ничего. На фоне недавних Crash Bandicoot N. Sane Trilogy от главных жадин индустрии Activision или того же Medievil от Sony такое отношение к преданным фанатам можно назвать откровенно свинским, особенно с учетом круглой даты.

Впрочем, за положительными примерами даже не надо ходить к другим издателям, ведь в прошлом году Nintendo наглядно продемонстрировала, что способна сделать шикарный ремейк классической игры в современной обертке. Речь идет, конечно же, о во всех смыслах замечательной The Legend of Zelda: Link's Awakening.


The Legend of Zelda: Link's Awakening образцовый ремейк от Nintendo

Оригинальный проект был выпущен в далеком 1993-м, став первой игрой франшизы, вышедшей на портативной консоли Game Boy. Ремейк образца 2019 года был воссоздан с нуля в полном 3D, причем с каким-то сверхчеловеческим вниманием к деталям: буквально каждый кустик остался на своем законном месте. И хотя многие критики ставили игре в укор устаревший гейм-дизайн, на практике The Legend of Zelda: Link's Awakening как раз и можно назвать образцовым ремейком: запустив эту игру, вы испытаете ровно те же самые ощущения, что дарил вам оригинал, с поправкой на современные визуальные технологии, которые, впрочем, ничуть не испортили ни геймплей, ни ламповость атмосферы.


Даже пасхалки остались на своих местах

На фоне The Legend of Zelda: Link's Awakening ситуация с Super Mario 3D All-Stars выглядит несуразной, словно кто-то внутри компании намеренно саботировал юбилей Марио. Впрочем, если рассуждать логически, то все встает на свои места, хотя выводы для игрового сообщества будут и не самыми утешительными.

Nintendo подарила нам с вами немало замечательных игр (и все еще продолжает их разрабатывать), но сегодня это в первую очередь огромная корпорация, действия которой определяются экономической целесообразностью. Собрав вокруг себя многомиллионную армию фанатов, компания весьма прозрачно обозначила намерение монетизировать собственные репутационные активы. И столь контрастное качество продуктов лишь наглядно это подтверждает. Давайте сравним между собой The Legend of Zelda: Link's Awakening образца 1993 и 2019 годов.


В оригинал, если бы Nintendo выпустила его без изменений, лишь адаптировав под разрешение экрана Switch и добавив цветные спрайты, сегодня смог бы играть разве что ностальгирующий геймер, заставший тот самый релиз, вышедший 27 лет назад, или более позднее переиздание 1998 года The Legend of Zelda: Links Awakening DX, выпущенное для Game Boy Color. А поскольку эта игра даже не является номерной частью франшизы (ее действие происходит не в королевстве Хайрул, а на острове Кохолинт, да и самой Зельды вы здесь не встретите), ленивый порт не смог бы привлечь внимание ни новых игроков, ни тех, кто приобщился к легендарной серии лишь недавно. Поэтому большая N приложила все возможные усилия, чтобы сделать ремейк-конфетку, который окажется интересен достаточно широкому кругу игроков, при этом досконально воссоздала исходные локации, добавив отличный оркестровый саундтрек и сохранив дух оригинала.

Ситуация с Super Mario 3D All-Stars диаметрально противоположная. Из всей троицы лишь Super Mario 64 выглядит морально устаревшим, но с учетом популярности франшизы (а об усатом водопроводчике знают даже те, кто не интересуется видеоиграми в принципе) и знаковости перечисленных тайтлов, даже эту игру с удовольствием купят и пройдут заново, благо core-геймплей всех трех игр таков, что они будут актуальны и еще через 10 лет. Выходит, что и напрягаться незачем: достаточно прикрутить к исходным дистрибутивам эмулятор, сделать новое меню для сборника и дело в шляпе!

А если не будут брать, отключим газ, подумал про себя один из топ-менеджеров компании, решив добавить эксклюзивности в и без того эксклюзивный проект, и подписал распоряжение о том, чтобы ремастеры находились в продаже лишь ограниченное время до 31 марта 2021 года включительно. Уже в апреле Super Mario 3D All-Stars должен навсегда исчезнуть из eShop, и вскоре единственным легальным способом поиграть в этот сборник станет приобретение физической копии с рук, ведь дополнительный тираж картриджей также не планируется. Так что всем, кто находится в поисках надежных активов для инвестиций, рекомендуем присмотреться к покупке этого издания, ведь со временем оно будет лишь дорожать.


Super Mario 3D All-Stars самое надежное вложение ваших средств

Если вы полагаете, что после всего этого игроки стали массово бойкотировать релиз, то глубоко ошибаетесь: еще на этапе предзаказов Super Mario 3D All-Stars заняла второе место в рейтинге бестселлеров Amazon (на момент написания статьи сборник расположился на 7-й позиции), а цены у перекупщиков на старте предпродаж достигали $350. Иными словами, люди стали действовать именно так, как от них ожидали в Nintendo: побоявшись, что физических копий не хватит на всех, поклонники Марио начали в срочном порядке скупать картриджи. И продолжают до сих пор: в британском чарте Super Mario 3D All-Stars прочно удерживает первое место, а продажи самой Nintendo Switch после выхода сборника достигли 146 тысяч устройств, что на 90% больше по сравнению с сентябрем прошлого года.

И хотя без ревью-бомбинга в этот раз не обошлось, это мало на что повлияло: 6,5 балла пользовательского рейтинга и гневные отзывы на Metacritic практически не отразились на продажах.


Пользователи Metacritic активно жалуются на качество ремастеров, но Nintendo не обращает на это внимания

С другой стороны, раз уж Nintendo в текущем поколении стала экономить на консолях и при этом даже не боится судебных разбирательств (а 23 сентября в адрес компании был направлен уже второй иск, связанный с качеством джойконов, на этот раз составленный французской ассоциацией потребителей UFC-Que Choisir), то использованию порочных практик в сфере цифровой дистрибуции не приходится удивляться.

Кстати, если уж речь зашла о железе, вот еще один интересный факт: внутренней памяти Nintendo Switch недостаточно для того, чтобы вместить все игры о Марио и его друзьях, официально доступные на данной платформе. Давайте посчитаем!

Игра


Объем, МБ


Super Mario Odyssey


5747


New Super Mario Bros. U Deluxe


2572


Paper Mario: The Origami King


6662


Mario Kart 8 Deluxe


7059


Mario Tennis Aces


2491


Luigi's Mansion 3


7554


Mario + Rabbids


2980


Super Mario Party


2885


Super Mario Maker 2


3135


VS. SUPER MARIO BROS.


98


Марио и Соник на Олимпийских играх 2020 в Токио


6574


Super Mario 3D All-Stars


5013


Итого


52770



Около 53 гигабайт величина по нынешним временам весьма скромная даже для смартфона, но не для Nintendo Switch. Гибридная консоль получила встроенный накопитель на 32 ГБ, причем реальный доступный для хранения данных объем составляет лишь 25,4 ГБ, так как остальное пространство занимает операционная система. Вот и получается, что каждому, кто пожелает достойно отметить юбилей героического водопроводчика, перепройдя любимые игры, для начала придется обзавестись картой памяти SanDisk for Nintendo Switch как минимум на 64 ГБ (а лучше на все 128 с учетом будущих релизов). В этом случае вы сможете установить дистрибутивы перечисленных игр на microSD-карточку, а внутреннюю память консоли оставить для сохранений, скриншотов и видео.


Самое забавное, что при использовании карты памяти вы практически не теряете в производительности, как это было бы в случае со смартфоном. Все дело в том, что внутри Nintendo Switch установлен NAND-чип Toshiba THGBMHG8C2LBAIL eMMC 5.1, максимальная теоретическая пропускная способность которого составляет 600 МБ/с в операциях чтения и 125 МБ/с при записи файлов. Хотя на момент релиза консоли в мобильных устройствах уже вовсю использовался стандарт UFS 2.0, способный похвастаться вдвое большей производительностью (1200 МБ/с), Nintendo закономерно проигнорировала данный факт. Более того, гибридная консоль не задействует на все 100% даже возможности eMMC 5.1, что наглядно продемонстрировала в своем исследовании Digital Foundry.


Как показали тесты, при использовании карт памяти со скоростью чтения 100 МБ/с (а именно такой производительностью и характеризуются SanDisk for Nintendo Switch) длительность загрузки игр увеличивается не более чем на 14%. Например, в случае с достаточно тяжелой Legend of Zelda: Breath of the Wild разница составляет всего 5 секунд максимум с учетом того, что на загрузку каждой локации уходит около 30 секунд. При этом microSD-карты оказываются примерно на 6% быстрее по сравнению с фирменными картриджами, так что при прочих равных вы не заметите какой-либо разницы в длительности загрузки.

Да и в надежности подобного решения не приходится сомневаться. Традиционно продукция SanDisk проходит самые суровые испытания на способность противостоять факторам внешней среды и техногенным воздействиям, и линейка microSD-карт для Nintendo Switch не является исключением. Флеш-карты серии выдерживают падение с высоты до 5 метров на бетонный пол, сохраняют работоспособность даже спустя 72 часа пребывания в пресной или соленой воде на глубине до 1 метра, защищены от воздействия рентгеновского излучения и статических магнитных полей с силой индукции до 5000 Гс, а также будут исправно функционировать при экстремально низких (до -25 C) и экстремально высоких (до +85 C) температурах в течение как минимум 28 часов. Таким образом карты памяти от SanDisk имеют все шансы пережить консоль, ведь не случайно на каждую модель распространяется пожизненная гарантия.


Но как бы ни были хороши microSD-карточки от SanDisk, сама необходимость их приобретения не может не удручать. Тем более что еще в прошлом поколении Nintendo предлагала покупателям два варианта Wii U: Basic с накопителем на 8 ГБ и Premium, получившую внутреннее хранилище на 32 гигабайта. Разумеется, для домашней консоли вопрос дискового пространства не стоял столь же остро, ведь к Wii U можно было подключить внешний винчестер емкостью до 2 терабайт, однако сам факт выбора позволял надеяться на то, что в текущем поколении нам предложат несколько консолей в разной ценовой категории скажем, с 32, 64 и 128 ГБ памяти на борту. Но чуда не произошло, и оно уже вряд ли произойдет, особенно если учесть, что Nintendo до сих пор не решила проблему с джойконами.

Впрочем, давайте завершим этот материал на мажорной ноте, ведь в рамках конференции Super Mario Bros. 35th Anniversary Direct компания Nintendo сделала два весьма интересных анонса. Первый из них скорый выход на Nintendo Switch Super Mario 3D World. Порт хита с Wii U получит поддержку кооперативной игры по сети (в оригинале был лишь локальный кооператив), новое DLC Bowser's Fury и улучшенную графику. И если последний пункт после Super Mario 3D All-Stars вызывает лишь скептическую ухмылку, то в качестве дополнительного контента сомневаться не приходится (все же на талантливых геймдизайнерах Nintendo никогда не экономила), да и возможность поиграть с друзьями в онлайне определенно стоит того, чтобы приобрести данную игру. Релиз состоится уже 12 февраля 2020 года.


Второй анонс выглядит еще интереснее и в то же время вызывает недоумение: почему до такого никто не додумался раньше? Речь идет, конечно же, о Mario Kart Live: Home Circuit AR-гонке для Nintendo Switch. В комплекте с игрой будет поставляться миниатюрная радиоуправляемая машинка, в которую встроена камера, передающая изображение на экран консоли. Switch же, в свою очередь, будет создавать дополненную реальность в режиме реального времени, добавляя к транслируемому изображению разметку трассы, виртуальных соперников и разнообразные бонусы. При этом игра поддерживает локальный мультиплеер на четверых игроков, благодаря чему способна стать отличным семейным развлечением, а может, чем Боузер не шутит, и совершить очередную революцию в жанре! Релиз Mario Kart Live: Home Circuit состоится уже 16 октября.

Подробнее..

Перевод История GoldenEye 007

09.11.2020 00:04:35 | Автор: admin

Геймеры смирились с этим ещё в девяностые. Платформеры, шутеры от первого лица, и любой из жанров игр, основанных на фильме будет ужасным. Но вышла GoldenEye 007 и всё изменила.


image


Игру выпустили через два года после проката фильма в кинотеатрах, всего за несколько месяцев до выхода следующей части бондианы Завтра не умрёт никогда. И даже команда, ответственная за проект, особого успеха не ожидала. Затем картридж разошёлся ошеломляющим тиражом в 8 миллионов копий, попав в тройку самых продаваемых игр на 64-битной консоли Nintendo. В дальнейшем, GoldenEye 007 неизменно присутствовала в списках Лучших игр.


Примечательно, что для большинства разработчиков, GoldenEye стал первым серьёзным проектом. Тим и Крис Стамперы, руководители Rare, постоянно напоминали команде, что это не университетский проект и затягивать с разработкой не стоит (на игру ушло более трёх лет). Однако, поскольку большая часть коллектива были новичками в этом бизнесе, означал, что они не будут ограничены представлениями о том, что возможно, а что нет. Придумав хорошую идею они пытаются её реализовать.


Этот подход привёл к революционным результатам. В игре впервые реализована реакция на попадание по телу противника, оружие не привязано к игровой камере, есть продвинутое освещение (посмотрите внимательно, и увидите отражение окружения на блестящих поверхностях). Была даже снайперская винтовка и использование оружия двумя руками. Более того, GoldenEye доказала, что в сюжетный шутер от первого лица можно играть на консолях, и что режим Deathmatch в мультиплеере никогда не устареет.


image
Ключевое оружие в игре


Разработкой занималась команда Rare из девяти человек. После, некоторые остались в компании и работали над духовным продолжением игрой Perfect Dark. Другие ушли в Free Radical Design (позже Crytek UK) разработчик серии TimeSplitters. Третьи и вовсе покинули геймдев. Однако, все остаются согласны по двум вещам: это был опыт, который они никогда не забудут, а играть за Oddjob (громила из Голдфингера) в многопользовательской игре всегда жульничество.


image
Костяк проекта


Полишинг проекта


Для Марка Эдмондса, работа началась с пробного задания в особняке Штамперов, где его оставили работать в одиночестве в одной из комнат. Я не знал, над чем работаю, объясняет Марк. Меня попросили исследовать создание скругленных соединений (filleted joints) для анимированной трёхмерной системы персонажей. По сути, это гладкая кожа над суставами такая как локоть, а не просто твёрдый блок (solid block) для верхней и нижней части руки. Я и понятия не имел, что это связано с Джеймсом Бондом, но тест прошёл и попал в команду. Было здорово начать работу над своей первой игрой!


Программист Марк присоединился к руководителю проекта Мартину Холлису и художнику Карлу Хилтону, и трио приступило к работе над ранними сборками. На игру сильно повлияла Virtua Cop от Sega, где игрок следовал определённому маршруту по уровням (ходил по рельсам). Мы использовали это удивительное новое изобретение, называемое аналоговым стиком, для наведения прицела, шутит Марк. Но потом подумали: разве не будет круто сыграть в такую игру, как Doom с настоящей 3D-графикой? Это будет новый опыт! И мы знали, что Nintendo 64 способна отображать трёхмерную графику в любой ориентации и направлении.


Команда решила снять Бонда с рельсов, хотя точного представления, на что способна N64, у них не было. В разработке использовались высокопроизводительные машины Silicon Graphics, с которыми приятно работать, хотя они и подвержены перегреву. Однако, спецификации будущей консоли Nintendo ещё не были определены. Я помню, как был разочарован, увидев технические демонстрации, запущенные на первых консолях для разработки, признаётся Марк. Но как только наши художники подключились к проекту им таки удалось добиться хорошей графики!


Марк увлёкся работой над движком GoldenEye, применяя такие пакеты, как Alias и GameGen срендерив их в игре. Он помог разработать систему, которая обрабатывает анимацию захвата движения новаторскую для того времени. Также она работает с искусственным интеллектом противника, чтобы враги хоть как-то противостояли игроку, прежде чем рухнуть в агонии, когда им прострелят пах. Тем не менее, несмотря на все эти новаторские приёмы, у команды не была уверености в том, что игроков это впечатлит.


Было потрясающе побывать на выставке E3 в 1997 году, но я не помню особой реакции на игру, говорит Марк. Вероятно, это была неподходящая среда для людей, чтобы окунуться в игру. И только потом, когда начали поступать отзывы, мы поняли, что людям действительно понравилось.


image
E3 1997 года


За железным занавесом


Дэвид Доак гордо улыбается, когда мы спрашиваем о подходе к дизайну миссий и искусственному интеллекту противника. Мне больше всего запомнился момент встречи с парнями из Valve на выставке ECTS в Великобритании в 1998 году. Тогда они шутили, что GoldenEye заставила их переделать кучу вещей в Half-Life.


Когда Дэвид присоединился к команде в конце 1995 года, базовый геймплей был готов. Управление было отзывчивым, основная механика встретить врага, застрелить и перейти к следующему работала эффективно, а звуковые и визуальные эффекты давали игроку обратную связь. Проблема заключалась в очень простых уровнях, объясняет он. Их создали для тестирования игрового процесса, хотя, даже на этом этапе, в них были инновационные функции, которые подчеркивали амбиции игры, например, система сигнализации на локации Severnaya Bunker. Её может активировать охранник, который побежал нажать большую красную кнопку, или камера, заметившая Бонда. Лучшим шутером тогда считали Doom, в котором игрок расстреливает монстров и собирает ключи, чтобы открыть двери, но мы хотели отойти от этого.


image


Хотя Дэвид и признает, что, по сути, они просто поменяли концепцию ключей на схожую: с декодерами, модемами и всевозможными гаджетами. Однако, он был полон решимости разнообразить темп и сложность уровней. Уровень Severnaya Bunker 1 очень простое и маленькое пространство, но на более высокой сложности, здесь начинаются проблемы с выполнением задачам, сигнализацией и врагами. Было приятно устроить побег из камеры в локации Bunker 2 стелс хорошо разнообразил игровой процесс и это была новая механика (Metal Gear Solid и Thief вышли позже GoldenEye).


Дэвид есть в игре в роли учёного-секретного агента, как и большая часть команды: их лица на безымянных охранниках или на экранах компьютерных мониторов. Дэвид удовлетворен разнообразием миссий и интересным дизайном уровней, но признаёт: не всё, что они пробовали, сработало. Цель некоторых уровней защищать объект от повреждений. Для более открытых уровней, таких как Runway и Depot, было сложно создать интересный игровой процесс, и результаты получились неоднозначными. И миссии по сопровождению казались хорошей идеей в то время. То есть, что может быть веселее, чем наблюдать, как ваш соратник Наталья бросается под пули или бежит к месту подрыва?


image
Герои и злодеи GoldenEye


Несмотря на эти осечки, сюжетный режим был новаторским, предлагая игрокам выбор. Пройти уровень расстреливая всё что движется или действовать аккуратно? Мимо охранников можно проскользнуть, но как было здорово убить противника выстрелом в голову. То, как враг реагировали на действия, и неожиданные, иногда раздражающие, вмешательства NPC, создавали ощущение живого мира.


Работа над ИИ велась в сотрудничестве с Марком Эдмондсом, рассказыает Дэвид. Например, я придумал как сделать сцену более интересной. Марк покачал головой, объяснил, почему это невозможно затем вернулся к своему столу и проделал какое-то чудо кодирования, чтобы это произошло. Что тут сказать он легенда.


Отличный костюмчик


В титрах Би Джонс указана дизайнером костюмов. Возможно, это ироничная отсылка к миру кино, но она оказалась на удивление уместной, поскольку никто не умеет создавать пиксельные смокинги лучше неё. Изначально в игре было ещё три Бонда, объясняет она. Мне пришлось сделать разные текстуры смокинга в текстуре 64x32 пикселей. Роджер Мур получил белый с гвоздикой, Тимоти Далтон двубортный, а Шон Коннери надел классический смокинг шестидесятых. И все они очень похожи на свои версии из кино.


Поскольку в середине 90-х не было удобных интернет-библиотек, из которых можно было взять материал, Би использовала собственную коллекцию книг и памятных вещей о Бонде. Фотографии персонажей были отсканированы, инструкции по эксплуатации гаджетов тщательно изучены, а обеденные перерывы посвятили просмотру фильмов о Бонде на видеокассетах. У нас был перерыв всего на полчаса, поэтому мы могли просмотреть только 20 минут видео, вспоминает Би.


У команды был ограниченный доступ к съёмочной площадке, и они принесли новую цифровую камеру на студию Leavesden Studios в Хартфордшире (Великобритания), чтобы заснять как можно больше. Камера была огромной, очень тяжёлой и стоила около двух тысяч долларов, негодует Джонс. Но, именно так, мы собрали большую часть справочных материалов. Я использовала ту же камеру, чтобы сфотографировать лица, которые мы применяли в игре. Делала снимки спереди, сбоку, сзади и сшивала их вместе. Это время до Photoshop, поэтому у меня была только программа для рисования пикселей NinGen и всего лишь 38x32 пикселей для текстур. Попробуйте нарисовать там правдоподобное человеческое лицо!


image


Сейчас довольно легко сделать анимацию, чтобы персонаж поднял бровь в духе Роджера Мура, но в то время, это была новаторская работа, как и использование технологии захвата движения. Первоначально, установка представляла собой магнитную систему под названием стая птиц (flock of birds), в которой на теле были закреплены огромные маркеры. Надо быть осторожным с движениями, иначе они отлетят от стены и ударят исполнителя, вспоминает Би Джонс.


Наиболее эффективно, новая технология применялась, чтобы заставить врагов выглядеть так, будто в них действительно попали. Выстрелите им в плечо и они отшатнутся, а в результате попадания в голову рухнут на пол. Мы хотели, чтобы анимация выглядела так, будто жертва этого не ожидала, поэтому попросили члена команды Дункана Ботвуда закрыть глаза, а я внезапно хлопнула его по плечу, не сказав об этом. Мы не хотели, чтобы противники были приклеены к земле, поэтому обвязывали верёвкой его талию, а потом сбивали с ног. Было много мягких матов, но не думаю, что сейчас такое сойдёт с рук: со всей этой заботой о здоровье и безопасности сотрудников.


Именно внимание к деталям во всех аспектах визуального оформления помогло сделать игру такой захватывающей. После ухода из Rare Би Джонс работала в кино и на телевидении, в том числе на фильмах Доктор Кто и Стражи Галактики, но она поддерживает связь с товарищами. Мы задали ей вопрос: мешал ли тебе факт того, что ты была единственной женщиной в команде? Нет и нет, и очевидно, что вы просто со мной близко не знакомы, прямо отвечает она.


Лицензия на острые ощущения


image


Карл Хилтон до сих пор помнит, когда Мартин Холлис задал этот вопрос: Он начал со слов: тебе нравится Джеймс Бонд? смеётся Карл, который тогда только присоединился в команду к Мартину главным художником. Я большой фанат Бонда, и этот сарказм на тему плохих игр по фильмам звучал очень смешно. Меня беспокоила репутация игр по фильмами. Я только попал в Rare и знал, что они не выпускают плохие игры. Но помню, как смотрел на Blast Corps (другой проект Rare), который делали по соседству с нами, и думал, что он будет намного популярнее, чем наше творение.


Карл усмотрел потенциал использования старых фильмов о Бонде, на которых вырос, особенно тех, где снимался его любимый Бонд Роджер Мур. Первоначально, он хотел включить базу подводных лодок из части Шпион, который меня любил, но понимая, что это будет слишком сложно выбрал базу шаттлов из фильма Лунный гонщик. Множество пасхалок из бондианы и приём врезания камеры в затылок агента 007 в начале каждого уровня позволили игрокам почувствовать себя Джеймсом Бондом.


Мы хотели подчеркнуть, что вы играете за Бонда, но в шутере от первого лица редко появляется шанс увидеть себя со стороны, говорит Карл. И эти приёмы отлично работали. Кому только не доставалась роль Бонда в кино, и теперь эта возможность появилась у игрока.


Тонкие штрихи, такие как кинематографическая завеса крови стекающая по экрану, когда вы умираете, и манжеты смокинга чётко видимые, когда вы проверяете свои часы на предмет важной информации о миссии, всё это добавило атмосферы бондианы. У часов были и другие цели, объясняет Карл. Мы все согласились с тем, что сведение к минимуму иконок на экране даст максимальное ощущение погружения, а часы помогут почувствовать себя агентом 007, а не персонажем обычного шутера. Правда, часто шутили над тем, насколько глупо выглядел бы Бонд, если так пристально станет разглядывать свои часы в фильмах.


Это подводит нас к ключевому вопросу: насколько важна была лицензия по фильму? Игра осталась бы хорошо продуманным шутером со множеством инновационных функций, но имела бы она такой коммерческий успех без Бонда?


То, что могло быть истолковано, как жестокий шутер от первого лица стало открыто для более широкой семейной аудитории, потому что в культурном отношении Джеймсу Бонду разрешено убивать людей, и его не считают плохим, утверждает Карл. Это означало, что дети могли попросить родителей об игре! Я думаю, что, в любом случае, получилась бы хорошая игра, но сомневаюсь, что она бы так проникла в поп-культуру. И Perfect Dark это подтверждает. Она почти во всех отношениях превосходила GoldenEye, поскольку мы уже многому научились к тому времени, но при этом было продано в два раза меньше копий. Возможность сыграть за Джеймса Бонда отличный аргумент для покупки игры.


image




Это перевод статьи из 178 номера журнала Retro Gamer.

Подробнее..

Перевод История Streets of Rage

08.11.2020 00:20:08 | Автор: admin

Сегодня в это трудно поверить, но в 80-е и 90-е двухмерные битемапы безраздельно властвовали, особенно в аркадных залах. С тех пор, как Ёсихиса Кишимото усовершенствовал формулу с помощью Renegade и Double Dragon, все разработчики стремились повторить успех, и многим это даже удалось.


image


Хотя к этому времени компания Sega уже представила несколько популярных проектов вроде Altered Beast, Golden Axe и Alien Storm, именно Capcom оседлала этот жанр спасибо таким хитам, как Dynasty Wars, Captain Commando и Final Fight. Подвиг Хаггара, Коди и Гая, расчищавших улицы Метро Сити от всякой шпаны, обернулся для Capcom большим успехом, и вскоре Final Fight была лицензирована для множества домашних компьютеров: от ZX Spectrum до 16-битной Амиги. Компания Nintendo быстро осознала популярность творения Capcom и сделала его своим консольным эксклюзивом для SNES.


Вырезанные кооператив и целый уровень (промышленная зона, если вам интересно) не помешали игре стать успешной, причём настолько, что были выпущены два эксклюзивных сиквела только для консоли Nintendo. Тем временем Sega была вынуждена просто наблюдать, как один из самых популярных аркадных проектов бьёт рекорды продаж на приставке её конкурента. Как показывает история, лучший порт Final Fight вышел именно на Sega Mega-CD, но до этого оставались ещё годы, а Sega не умела предсказывать будущее. Компании нужен был хит, который побьёт популярный эксклюзив Nintendo, и она нуждалась в нём прямо сейчас.


image


Поэтому перед Sega встала задача создать свою собственную игру, которая будет не хуже Final Fight и даже превзойдёт её. Этим проектом стала Streets of Rage, которая дебютировала на консоли Mega Drive в августе 1991 года, через девять месяцев после успешного выпуска Final Fight для SNES.


Мы взяли интервью у Ацуши Сеймии, расспросив его о работе над культовым битемапом. Во время создания Streets of Rage (или Bare Knuckle, как игру называли в Японии) он работал художником. Первый вопрос заключался в следующем: всегда ли Streets of Rage планировалась как ответ Sega на популярный эксклюзив для SNES?


Не могу этого отрицать, честно отвечает Ацуши. На самом деле мы купили аркадный автомат с оригинальной игрой и долго изучали её всей командой.


Внимательное изучение игры от Capcom окупилось. Streets of Rage предлагает множество преимуществ по сравнению с Final Fight на SNES. В первую очередь, можно играть с другом, а это куда веселее. Streets of Rage позволяет выбирать из трёх бойцов, у которых есть счёты с мистером Икс, контролирующим город и полицию. Как и в Final Fight, каждый герой уникален, у каждого есть свои сильные и слабые стороны. Адам Хантер основан на Хаггаре он более медленный, но при этом сильный герой, умеющий справляться с группами противников. Блейз Филдинг больше похожа на Гая она куда быстрее, но не способна выдерживать сильные удары. Последний герой Аксель Блейз, он обладает всеми способностями Коди, но не такой прыгучий, как его товарищи. Все трое являются бывшими полицейскими и поклялись передать мистера Икс в руки правосудия.


image


Нам было интересно узнать, за что отвечал Сеймия во время создания игры. Как художник, я работал над широким спектром задач: от проработки персонажей до ландшафта, объясняет он. Я впервые занимался главными героями, поэтому пришлось многократно переделывать свою работу. Возможно, для молодого художника это было боевым крещением, но переделки в итоге окупились. Многие уровни очень похожи на проект от Capcom например, городские улицы и промышленные районы. Но хватает и разнообразия за счёт прекрасных пляжных участков, увлекательной поездки на лифте и заключительного тяжёлого прохода по коридору, ведущему к пентхаусу мистера Икс, перед битвой с которым игроку предстоит сразиться с боссами из всех предыдущих уровней. Неудивительно, что внешне Streets of Rage был крайне не оригинальным проектом: Сеймия признал, что Sega просто давала игрокам то, чего они хотели: В Final Fight, Double Dragon и других аркадных играх того времени использовался реалистичный визуальный стиль, и я думаю, что это было просто в тренде, признаёт Сеймия.


Возможно, игра и выглядит очень похожей на некоторые из популярных битемапов того времени, но ей удаётся выделяться благодаря разнообразию локаций, интересному дизайну уровней, а также куче интересных врагов и боссов самых разных форм и размеров. В дополнение к простым уличным головорезам имеются ниндзя (как в Teenage Mutant Ninja Turtles), госпожи с хлыстами, сумасшедшие, жонглирующие топорами и факелами, а также мастера боевых искусств.


image


image


Боссы тоже очень разнообразны: от маньяков с когтями до борцов, похожих на Последнего воина (американский рестлер, известный под псевдонимом The Ultimate Warrior). Другие запоминающиеся главари это здоровый огнедышащий толстяк, а также Мона и Лиза две девушки, которых фактически сделали из Блейз путём смены палитры. В итоге Сеймия поработал над всеми персонажами в игре: Команда дизайнеров поручала мне создавать модели на основе историй персонажей, их размера в пикселях и других справочных материалов, вспоминает он. Я так и поступал, хотя и было довольно сложно анимировать персонажа с ограниченным количеством пикселей.


Когда мы обсуждали боссов в игре, всплыла интересная информация. Хоть Сеймия и не сообщил, кого считает своим любимым персонажем, но рассказал, что на пятом уровне игры вместо Моны и Лизы планировался другой босс. Может, однажды мы узнаем, как выглядел этот тип, но теперь понятно, почему вместо оригинального злодея мы получили две копии Блейз.


image


Несмотря на силы и размеры главарей в Streets of Rage, главные герои способны с ними справиться. Все трое имеют доступ к сериям ударов ногами и кулаками, а также умеют наносить удар в прыжке и применять захваты. В этом нет ничего революционного, но управление очень отзывчиво, поэтому игроки чувствуют полный контроль над своими героями в бою. Противники тоже не согласны работать грушами для битья: они могут схватить игрока и бросить его на землю. Но вы можете приземлиться на ноги своевременным нажатием кнопки прыжка и даже атаковать, когда вас берут в захват. Можно даже объединиться со своим товарищем, чтобы выполнять совместные приёмы, а при нажатии на кнопку A приезжает полицейская машина, и бывший коллега героев уничтожает всех врагов с помощью ракетницы. К сожалению, Сеймия не отвечал за боевую механику, но вот что думает по этому поводу: Мне очень нравится, как в игре реализовали совместные приёмы для двух игроков.


Еще одним аспектом игры, фанатом которого является Ацуши, стал прекрасный саундтрек. Музыка очень важна, поэтому мы позвали Юдзо Косиро, вспоминает он. До этого Косиро написал отличную музыку к игре The Revenge of Shinobi. А поскольку глава разработки Streets of Rage, Нориёси Охба, также руководил серией Shinobi, договориться о совместной работе с композитором было нетрудно.


image


image


Сеймия считает, что именно режиссёрский стиль Охбы привёл к необычному для того времени множеству концовок в игре. Например, одна из них даёт игроку возможность объединиться с мистером Икс. Как мне кажется, это черта его стиля: добавить неожиданный поворот в сценарий, утверждает Ацуши. К слову, разработка Streets of Rage была завершена лишь с точки зрения игрового процесса. Релизная версия это то, что решила выпустить Sega, а сами авторы хотели добавить в игру куда больше контента. Много чего не попало в финальную версию, но геймплейные механики мы успели реализовать все до единой, говорит Сеймия.


Streets of Rage получила признание критиков и показала отличные продажи. Её успех на консоли Mega Drive привёл к тому, что в 1992 году появился урезанный порт для Game Gear, в котором нет Адама. А в 1993 году для PAL-региона вышла версия для Master System без режима кооперативной игры. Мы спросили, причастен ли Сеймия к этим портам низкого качества, и он ответил: Нет, я не работал над этими проектами.


image


image


Хотя оригинальная Streets of Rage снискала огромный успех, именно продолжение, выпущенное в 1992 году, заставило геймеров обратить внимание на серию. В сиквеле всё лучше: от музыки (написанной тем же Юдзо Косиро) до более детальных спрайтов и большего количества боевых приемов. Многие игроки до сих пор считают Streets of Rage 2 вершиной жанра. Сеймия работал над сиквелом в качестве художника фонов. Он также участвовал в создании Streets of Rage 3 1994 года, печально известной своим боксёрским кенгуру и большим количеством различий между западной и восточной версиями игры. Есть даже серия комиксов, но Сеймия тут уже точно ни при чём.


Несмотря на спорный триквел, серия Streets of Rage остаётся примером отличных битемапов и важным релизом в 16-битной битве между Sega и Nintendo. Недавно выпущенная четвёртая часть понравилась фанатам серии и поклонникам жанра: да, там нет запоминающегося саундтрека, но в остальном у Lizardcube и Guard Crush Games получилось создать достойное продолжение.


image




Это перевод статьи из 133-го номера журнала Retro Gamer. Ранее выкладывал материал на ресурсе Идеальный Пиксель сайт понравится всем фанатам ретро-игр и старых компьютеров.

Подробнее..

Портативные консоли Nintendo от Game amp Watch до Nintendo Switch

24.08.2020 22:08:53 | Автор: admin


На протяжении последних 40 лет Nintendo активно экспериментирует в сфере мобильного гейминга, пробуя разнообразные концепции и порождая новые тренды, которые вслед за ней подхватывают другие производители игровых консолей. За это время компания создала немало портативных игровых систем, среди которых практически не было откровенно неудачных. Квинтэссенцией многолетних изысканий Nintendo должна была стать Nintendo Switch, но что-то пошло не так: единственная в своем роде гибридная игровая консоль оказалась на удивление сырой и откровенно недоработанной во множестве аспектов.

40 лет в мобильном гейминге: ретроспектива портативных консолей Nintendo


Если бы Nintendo Switch была первой портативной консолью, созданной японской компанией, на многие проблемы можно было бы закрыть глаза. В конце концов, каждый имеет право на ошибку, особенно вторгаясь в ранее неизведанные области. Но загвоздка в том, что Nintendo разрабатывает успешные и вполне качественные портативные игровые системы на протяжении вот уже 40 лет, и в этом свете прогулки по одним и тем же граблям выглядят по меньшей мере странно. Впрочем, не будем забегать вперед. Для начала давайте посмотрим, с чего начинался путь японской компании на поприще мобильного гейминга и чего Nintendo удалось достичь за эти годы.

Game & Watch, 1980 год


Первая портативная консоль Nintendo увидела свет в 1980 году. Устройство, которое придумал Гумпэй Ёкои, получило название Game & Watch и в каком-то смысле представляло собой карманную версию домашней системы Color TV-Game. Принцип тот же: одно устройство одна игра, и никаких сменных картриджей. Всего было выпущено 60 моделей с различными играми, среди которых были Donkey Kong и Zelda.



Хотя в СССР консоли Game & Watch официально не поставлялись, жителям постсоветского пространства эти устройства хорошо знакомы благодаря клонам, получившим название Электроника. Так, Nintendo EG-26 Egg превратилась в Ну, погоди!, Nintendo OC-22 Octopus в Тайны океана, а Nintendo FP-24 Chef в Веселый повар.


Тот самый волк с яйцами из нашего детства

Game Boy, 1989 год


Логичным развитием идей Game & Watch стала портативная консоль Game Boy, над созданием которой трудился все тот же Гумпэй Ёкои. Главной фишкой нового девайса стали сменные картриджи, а среди самых продаваемых игр на платформе, помимо ожидаемых Марио и Покемонов, оказался всенародно любимый Тетрис.



Game Boy получил монохромный дисплей с разрешением 160144 пикселей, мог похвастаться 4-канальной аудиосистемой и поддерживал функцию GameLink, позволяя объединять два устройства с помощью кабеля и играть в локальный мультиплеер на пару с другом.

В последующие годы Nintendo выпустила еще две модификации портативной консоли. Первая из них, Game Boy Pocket, увидела свет в 1996 году. Обновленная версия приставки оказалась на 30% компактнее предшественника, да к тому же еще и легче за счет того, что теперь устройство получало питание от 2 батареек AAA, тогда как в оригинале использовались 4 AA-элемента (правда, из-за этого время автономной работы консоли сократилось с 30 до 10 часов). Помимо этого, Game Boy Pocket обзавелся более крупным дисплеем, хотя его разрешение и осталось прежним. В остальном же обновленная консоль была полностью идентична оригиналу.


Сравнение Game Boy и Game Boy Pocket

Позднее, в 1998 году, модельный ряд портативных консолей Nintendo пополнил Game Boy Light, получивший встроенную подсветку экрана. Аппаратная платформа вновь осталась неизменной, однако инженеры корпорации смогли добиться существенного снижения энергопотребления: для питания карманной консоли использовались 2 батарейки AA, заряда которых хватало почти на сутки непрерывной игры с выключенной подсветкой или на 12 часов с включенной. К сожалению, Game Boy Light так и остался эксклюзивом для японского рынка. Во многом это было связано со скорым выходом Game Boy Color: в Nintendo попросту не хотели тратиться на продвижение консоли предыдущего поколения в других странах, ведь она уже никак не могла составить достойной конкуренции новинке.


Game Boy Light с включенной подсветкой

Game Boy Color, 1998 год


Game Boy Color была обречена на успех, став первой портативной консолью, получившей цветной жидкокристаллический экран, способный отображать до 32 тысяч цветов. Существенные изменения претерпела и начинка устройства: сердцем GBC стал процессор Z80 с частотой 8 МГц, объем оперативной памяти вырос в 4 раза (32 КБ против 8 КБ), а видеопамяти в 2 раза (16 КБ против 8 КБ). В то же время разрешение экрана и сам форм-фактор устройства остались прежними.


А еще Game Boy Color был доступен в 8 цветовых решениях

За время существования системы для нее вышло 700 разнообразных игр в различных жанрах, а среди приглашенных звезд затесалась даже специальная версия Alone in the Dark: The New Nightmare. Увы, одна из самых красивых игр, выпущенных для первой PlayStation, выглядела на Game Boy Color просто отвратительно и в целом была малоиграбельной.


Alone in the Dark: The New Nightmare для Game Boy Color пиксельарт, который мы не заслужили

Интересно, что Game Boy Color поддерживал обратную совместимость с предыдущим поколением карманных консолей, позволяя запускать любые игры для оригинального Game Boy.

Game Boy Advance, 2001 год


Выпущенный спустя 3 года Game Boy Advance уже куда больше напоминал современный Switch: экран теперь находился посередине, а органы управления были разнесены по боковинам корпуса. С учетом миниатюрных размеров консоли такой дизайн оказался более эргономичным, нежели изначальный.



Основой обновленной платформы стал 32-разрядный процессор ARM7 TDMI с тактовой частотой 16,78 МГц (хотя существовала и версия, работающая на стареньком Z80), объем встроенной RAM остался прежним (32 КБ), однако появилась поддержка внешней оперативной памяти вплоть до 256 КБ, тогда как VRAM выросла до честных 96 КБ, что позволяло не только увеличить разрешение экрана до 240160 пикселей, но и заигрывать с каким-никаким, но 3D.

Как и ранее, не обошлось без особых модификаций. В 2003 году Nintendo выпустила Game Boy Advance SP в форм-факторе раскладушки со встроенным литий-ионным аккумулятором (оригинал по старинке питался от двух пальчиковых батареек). А в 2005-м в рамках ежегодной E3 была представлена еще более миниатюрная версия карманной консоли, получившая название Game Boy Micro.


Game Boy Advance SP и Game Boy Micro

Именно эта малышка ознаменовала собой закат эпохи Game Boy, став полным коммерческим провалом, что и немудрено: Game Boy Micro оказалась буквально зажата в клещах между Advance SP и действительно прорывной на момент появления Nintendo DS. Ко всему прочему, Game Boy Micro была на порядок хуже Advance SP по функционалу: консоль лишилась поддержки игр с предыдущего поколения Game Boy и возможности игры в мультиплеер с помощью Link-кабеля для разъема на миниатюрном корпусе попросту не нашлось места. Впрочем, это не значит, что консоль была плоха: просто при ее создании Nintendo сделала ставку на довольно узкую целевую аудиторию, готовую пойти на любые жертвы ради того, чтобы иметь возможность играть в любимые игры где и когда угодно.

Nintendo DS, 2004 год



Nintendo DS стала подлинным хитом: если консоли семейства Game Boy разошлись суммарным тиражом 118 миллионов экземпляров, то общие продажи различных модификаций DS превысили 154 миллиона устройств. Причины столь оглушительного успеха лежат на поверхности.


Оригинальная Nintendo DS

Во-первых, по тем временам Nintendo DS была действительно мощной: процессор ARM946E-S частотой 67 МГц и сопроцессор ARM7TDMI частотой 33 МГц в сочетании с 4 МБ оперативной и 656 КБ видеопамяти с дополнительным буфером на 512 КБ для текстур помогали добиться отменной картинки и обеспечивали полноценную поддержку 3D-графики. Во-вторых, консоль получила 2 экрана, один из которых являлся сенсорным и использовался в качестве дополнительного элемента управления, что помогло реализовать множество уникальных геймплейных фишек. Наконец, в-третьих, консоль поддерживала локальный мультиплеер по WiFi, что позволяло играть с друзьями без лагов и задержек. Ну а в качестве бонуса присутствовала возможность запускать игры с Game Boy Advance, для чего был предусмотрен отдельный слот под картриджи. Одним словом, не консоль, а настоящая мечта.

Через 2 года свет увидела Nintendo DS Lite. Несмотря на название, это была отнюдь не урезанная, а улучшенная версия портативной консоли. Емкость аккумулятора в новой ревизии возросла до 1000 мАч (против 850 мАч ранее), а выполненные по более тонкому техпроцессу микрочипы стали куда экономичнее, что позволило достичь впечатляющих 19 часов автономной работы при минимальном уровне яркости экрана. Среди изменений также стоит отметить более качественные ЖК-дисплеи, обеспечивающие лучшую цветопередачу, снижение массы на 21% (до 218 г), более компактные размеры и расширение функционала вторичного порта, который теперь поддерживал подключение разнообразных аксессуаров вроде специального контроллера для игры в Guitar Hero.


Nintendo DS Lite

В 2008 году была выпущена Nintendo DSi. Эта консоль оказалась примерно на 12% тоньше предшественницы, получила 256 МБ встроенной памяти и слот под карты SDHC, а также обзавелась парой VGA-камер (0,3 мегапикселя), которые можно было использовать для создания забавных аватаров в фирменном фоторедакторе, а также в некоторых играх. В то же время девайс лишился GBA-разъема, а вместе с ним и поддержки запуска игр с Game Boy Advance.

Последней в этом поколении портативных консолей стала Nintendo DSi XL образца 2010 года. В отличие от предшественницы, она получила лишь увеличенные на дюйм экраны и удлиненный стилус.


Nintendo DS Lite и Nintendo DSi XL

Nintendo 3DS, 2011 год


3DS во многом стала экспериментом: в этой консоли добавили поддержку автостереоскопии технологии формирования 3D-изображения, не требующей дополнительных аксессуаров вроде анаглифных очков. Для этого девайс оснастили ЖК-экраном с разрешением 800240 пикселей с параллаксным барьером для создания трехмерной картинки, достаточно мощным двухъядерным процессором ARM11 частотой 268 МГц, 128 МБ оперативной памяти и графическим ускорителем DMP PICA200 производительностью 4,8 GFLOPS.


Оригинальная Nintendo 3DS

По традиции и эта портативная консоль обзавелась несколькими ревизиями:

  • Nintendo 3DS XL, 2012 год

Получила обновленные экраны: диагональ верхнего возросла до 4,88 дюйма, тогда как нижнего увеличилась до 4,18 дюйма.

  • Nintendo 2DS, 2013 год

Аппаратная часть полностью идентична оригиналу с той лишь разницей, что вместо стереоскопических дисплеев в Nintendo 2DS используются обычные двумерные. Сама же консоль была выполнена в форм-факторе моноблок.


Nintendo 2DS

  • New Nintendo 3DS и 3DS XL, 2015 год

Обе консоли были анонсированы и выпущены на рынок одновременно. Устройства получили более мощные основной процессор (ARM11 MPCore 4x) и сопроцессор (VFPv2 Co-Processor x4), а также вдвое больший объем оперативной памяти. Передняя камера теперь отслеживала положение головы игрока для повышения качества 3D-визуализации. Улучшения затронули и органы управления: справа появился миниатюрный аналоговый стик C-Stick, а на торцах курки ZL/ZR. XL-версия отличалась увеличенным экраном.


  • New Nintendo 2DS XL, 2017 год

Новая ревизия консоли вернулась к изначальному форм-фактору раскладушки и подобно 3DS XL обзавелась увеличенными дисплеями.

Nintendo Switch: что пошло не так?




В 2017 году на полках магазинов электроники появилась гибридная консоль Nintendo Switch, объединяющая в себе преимущества стационарных и мобильных игровых систем. И первое чувство, которое возникает после близкого знакомства с данным девайсом, крайняя степень недоумения.

Знаете, что общего между перечисленными выше портативными консолями? Все они являлись вполне качественными, добротными продуктами. Разумеется, идеальных устройств не бывает: та же 3DS запомнилась многим благодаря черному экрану смерти, причиной которого была программная ошибка в первой версии прошивки. Да и само появление нескольких редакций одной и той же консоли с многочисленными улучшениями красноречиво напоминает нам: предусмотреть все невозможно, особенно будучи первопроходцем на рынке.

При этом некоторые решения Nintendo были весьма спорными (взять те же камеры у DSi, которые использовались лишь в ограниченном кругу проектов), а некоторые модификации консолей откровенно неудачными. Здесь можно привести в пример Game Boy Micro, отличавшуюся компактными размерами, но во всем остальном уступавшую старшим братьям. Вот только в случае с Game Boy у вас был выбор из трех моделей, и в целом каждое из устройств было выполнено на достаточно качественном уровне. Иными словами, в былые годы Nintendo либо делали из хорошего девайса отличный, либо проводили эксперименты, которые не затрагивали конечного потребителя. С Nintendo Switch ситуация несколько иного толка.

Пусть первая ревизия консоли и не имеет каких-то фатальных недостатков, но она плоха в целом. Множество недочетов различной степени значимости доставляют ее владельцам массу неудобств, причем проблемы настолько очевидны, что остается лишь недоумевать: почему инженеры одной из самых успешных корпораций в сфере цифровых развлечений вообще допустили их появление, особенно если учитывать богатый опыт Nintendo в сфере разработки игровых платформ вообще и мобильных девайсов в частности? Не случайно в 2019 году журнал 60 Millions de Consommateurs, издаваемый Национальным институтом потребления Франции, вручил Nintendo Кактус (аналог Золотой малины от мира потребительской электроники), как создателю одного из самых хрупких девайсов.


Почетный кактус в огород Nintendo

И в объективности этой награды не приходится сомневаться. Достаточно вспомнить хотя бы историю с левым джойконом, который часто терял связь с консолью. Источником неприятностей оказалась излишне маленькая антенна, которая физически не могла принимать сигнал, когда игрок отходил от приставки слишком далеко. Причем объективных причин для такой миниатюризации не было вовсе. Внутри корпуса контроллера вполне достаточно места, чем и воспользовались наиболее рукастые геймеры: медная проволока и паяльник позволяли за пару минут добиться стабильной синхронизации. А на фотографии ниже вы можете видеть, так сказать, фирменное решение проблемы от официального сервисного центра Nintendo: на антенну попросту была наклеена прокладка из проводящего материала. Почему нечто подобное нельзя было сделать сразу, остается загадкой.



Другой проблемой оказался люфт в месте крепления контроллеров к корпусу, причем со временем джойконы разбалтывались до такой степени, что самопроизвольно вылетали из пазов. Решалась она опять же весьма просто: было достаточно лишь подогнуть металлические направляющие. Впрочем, это не поможет, когда (не если, а когда) пластиковые защелки на самих манипуляторах все же сломаются. Тут можно вспомнить люфт экрана 3DS, но, во-первых, такая проблема встречается во множестве девайсов-раскладушек в принципе, а во-вторых, ее масштабы несколько иные: если в случае с 3DS это практически не сказывается на пользовательском опыте, то когда речь заходит о Nintendo Switch, у вас есть все шансы разбить консоль, когда та внезапно отстыкуется от джойконов.

Многие игроки жалуются и на слишком скользкие и неудобные грибки, что делает весьма проблематичной игру в душном помещении или транспорте. Здесь на выручку приходит AliExpress, готовый предложить резиновые или силиконовые накладки на любой вкус. Но сама необходимость самостоятельного апгрейда консоли выглядит удручающе.



Ситуацию же с дрифтом аналоговых стиков сложно охарактеризовать иначе, чем возмутительная. Владельцы Switch обратили внимание на то, что через некоторое время после начала эксплуатации контроллер начинает фиксировать отклонение стиков от вертикальной оси в состоянии покоя. У кого-то проблема проявлялась через пару десятков часов игры, у кого-то лишь спустя несколько сотен, однако факт остается фактом: недостаток имеет место. При этом его причиной не является неосторожное обращение с устройством. Из-за особенности конструкции джойконов внутрь модулей постоянно попадает грязь (то есть контроллеры для портативной консоли, которые в принципе чаще пачкаются, защищены гораздо хуже, чем геймпады для домашнего использования), и именно загрязнение контактов и приводит к их залипанию. Решение элементарно: разборка и чистка модуля.


В некоторых случаях можно обойтись заливкой жидкости для чистки контактов под стик

И все бы хорошо, если бы Nintendo сразу признала собственную оплошность, согласившись на бесплатный ремонт или замену дефектных манипуляторов по гарантии. Однако компания долгое время отрицала существование проблемы дрифта, предлагая пользователям провести повторную калибровку джойконов или требуя $45 за ремонт. Лишь после коллективного иска, поданного американской юридической фирмой Chimicles, Schwartz Kriner & Donaldson-Smith от имени пострадавших покупателей, Nintendo начала менять дрейфующие джойконы в рамках гарантийных обязательств, а Сюнтаро Фурукава, президент корпорации, извинился перед всеми, кто столкнулся с данной проблемой.


Сюнтаро Фурукава, президент Nintendo

Вот только это мало на что повлияло. Во-первых, новая политика в отношении замены джойконов вступила в силу в ограниченном числе стран. Во-вторых, воспользоваться данным правом можно лишь один раз, а если дрифт появится вновь, придется ремонтировать (или менять) устройство за свой счет. Наконец, в-третьих, никакой работы над ошибками так и не было произведено: выпущенный в 2019 году Nintendo Switch Lite, равно как и новая ревизия основной консоли, имеет ровно те же самые проблемы с аналоговыми стиками. С той лишь разницей, что в случае с портативной версией контроллеры встроены непосредственно в корпус и об их замене не может быть и речи, а для чистки придется разобрать всю консоль.

Но и это еще не все. В то время как космические корабли бороздят просторы Большого театра, а noname-смартфоны щеголяют Gorilla Glass, модель Nintendo Switch получает пластиковый экран, собирающий царапины не только в дороге, но даже при установке в док-станцию. Последняя, к слову, лишена силиконовых направляющих, которые могли бы защитить дисплей от повреждений, так что без покупки защитной пленки никак не обойтись.


Бюджетный тюнинг док-станции убережет экран Nintendo Switch от царапин

Другая проблема касается подключения к Nintendo Switch беспроводных наушников. Это попросту невозможно. Консоль снабжена 3,5-миллиметровым миниджеком, за что японцам следует сказать спасибо, однако девайс не поддерживает Bluetooth-гарнитуры. Причины опять же неясны: сам по себе приемопередатчик у приставки есть, и его можно было бы задействовать по крайней мере в портативном режиме, когда джойконы общаются с приставкой по проводам, что было бы логично и весьма удобно. Пока же приходится использовать USB-адаптеры сторонних фирм, благо приставка оснащена USB Type-C с поддержкой USB Audio.

Кстати, если вы привыкли общаться с друзьями по ту сторону экрана голосом без каких-либо дополнительных девайсов, как это реализовано на PlayStation 4, то спешим разочаровать. Формально данная функция присутствует, но чтобы ей воспользоваться, вам придется скачать фирменное приложение Nintendo на смартфон. Да, все верно: портативная игровая платформа предлагает вам сидеть в войс-чате со стороннего девайса вместо того, чтобы разговаривать с тиммейтами через гарнитуру, подключенную к консоли.

Также многие игроки жалуются на проблемы в онлайне, пеняя на низкокачественный WiFi-модуль. Здесь, конечно, можно порассуждать о технической грамотности среднестатического пользователя и роутерах за 500 рублей, если бы только сам Масахиро Сакурай, ответственный за разработку Super Smash Bros., не порекомендовал бы игрокам приобрести внешний Ethernet-адаптер для игры по сети (консоль не имеет встроенного LAN-порта), что как бы намекает на осведомленность Nintendo о проблеме.


Масахиро Сакурай плохого не посоветует

Если брать во внимание эргономику, то и здесь есть мелкие недоработки. Взять ту же заднюю ножку: она слишком тонкая и смещена относительно центра тяжести консоли вбок, что делает устройство неустойчивым даже на ровной поверхности. Попробуйте поиграть в поезде, поставив Nintendo Switch на столик, и вы оцените все недостатки такого решения. Хотя, казалось бы, что может быть проще: стоит немного расширить опору, сместить ее к середине корпуса и проблема будет решена.


Хотя с ролью крышки отсека карт памяти ножка справляется отлично

Но как же обстоят дела с начинкой Nintendo Switch? Увы, здесь все тоже не совсем гладко. Во всяком случае, было вплоть до прошлого года, когда большая N выпустила обновленную ревизию консоли. Давайте бегло сравним оригинальную и обновленную версии и посмотрим, что изменилось.

Nintendo Switch 2019: что новенького?


Не будем ходить вокруг да около: предлагаем вашему вниманию таблицу, в которой наглядно продемонстрирована разница между Nintendo Switch образца 2017 года и новой версией 2019-го.

Ревизия


Nintendo Switch 2017


Nintendo Switch 2019


SoC


NVIDIA Tegra X1, 20 нм, 256 ядер GPU, NVIDIA Maxwell


NVIDIA Tegra X1, 16 нм, 256 ядер GPU, NVIDIA Maxwell


RAM


4 ГБ, Samsung LPDDR4, 3200 Мбит/с, 1,12 В


4 ГБ, Samsung LPDDR4X, 4266 Мбит/с, 0,65 В


Встроенная память


32 ГБ


Дисплей


IPS, 6,2'', 1280720


IPS IGZO, 6,2'', 1280720


Аккумулятор


4310 мАч



Нововведений не так уж и много, однако если первая ревизия Nintendo Switch ощущалась как бета-версия, то, взяв в руки обновленную консоль, можно сказать, что мы наконец дождались релиза. Что же изменилось к лучшему?

Объективно, если мы имеем дело с гибридной консолью, компромиссы неизбежны и каких-то впечатляющих результатов от такого девайса ожидать не приходится. Но загвоздка в том, что на старте продаж даже главная фишка Nintendo Switch, мобильность, практически не работала. Время жизни консоли при питании от аккумулятора составляло около 2,5 часов, если речь шла о крупном проекте вроде Legend of Zelda: Breath of the Wild, или чуть более 3 часов, если вы играли в 2D-инди-игру, что совсем несерьезно. Как несерьезно и таскать с собой PowerBank, особенно если вам предстоит длительная поездка и вы и без того загружены вещами.

В обновленной версии Nintendo Switch 2019 года эту проблему решили, причем достаточно оригинальным способом: путем замены 20-нанометрового SoC NVIDIA Tegra X1 на 16-нанометровый, а также с помощью перехода на усовершенствованные чипы памяти от Samsung. Поскольку вторая версия системы на кристалле потребляет заметно меньше энергии, а новая RAM Samsung оказалась на 40% более энергоэффективной, время автономной работы консоли увеличилось практически в 2 раза. При этом удалось избежать как удорожания девайса, так и увеличения его габаритов и массы, что было бы неизбежно при установке более емкого аккумулятора.

Консоль


Nintendo Switch 2017 года


Nintendo Switch 2019 года


Время автономной работы, 50% яркости дисплея


3 часа 5 минут


5 часов 2 минуты


Время автономной работы, 100% яркости дисплея


2 часа 25 минут


4 часа 18,5 минуты


Максимальная температура задней крышки


46 C


46 C


Максимальная температура на радиаторе


48 C


46 C


Максимальная температура на радиаторе в доке


54 C


50 C



Свою лепту, пусть и не столь значительную, вносит и улучшенный дисплей от Sharp, выполненный по технологии IGZO. Данная аббревиатура расшифровывается как Indium Gallium Zinc Oxide Оксид индия, галлия и цинка. Пиксели в таких матрицах не требуют постоянного обновления при отображении неподвижных объектов (например, HUD или интерфейса eShop) и меньше подвержены интерференции со стороны электронных компонентов экрана, что позволяет дополнительно снизить расход энергии. Помимо этого, IGZO-матрица лучше пропускает световой поток, что помогло повысить яркость подсветки, хотя в случае с Nintendo Switch лишь на чуть-чуть: 318 кд/м2 против 291 кд/м2. Также благодаря улучшенной матрице играть при ярком дневном свете стало куда комфортнее (у оригинала даже с этим были проблемы).

Что касается производительности, то здесь также наблюдаются изменения к лучшему. В первую очередь это заметно в играх с открытым миром: в той же Legend of Zelda: Breath of the Wild просадки FPS в сложных сценах уже не столь чудовищны, как ранее, повышение пропускной способности RAM дает о себе знать.



Интересно, что разница в температурах между старой и новой версиями минимальна, но в то же время консоль 2019 года стала заметно тише: очевидно, скорость вращения вентилятора была намеренно снижена в пользу меньшей шумности и опять же экономии энергии. С учетом температуры 50 C на радиаторе под нагрузкой, такое решение вполне оправданно.

Если же говорить о контроллерах, то джойконы получили обновленные корпуса из более качественного пластика: конечно, не софттач, но держать в руках их стало куда приятнее. Проблема с антенной левого контроллера, как и с люфтом креплений к корпусу, была решена (хотя защелки остались пластиковыми), а вот со стиками все по-прежнему: та же конструкция, те же риски загрязнения и появления дрифта со временем. Так что для игры дома лучше все же докупить Pro-контроллер, тем более что с точки зрения эргономики он гораздо удобнее.

В свете всего сказанного выше мы настоятельно рекомендуем каждому, кто лишь собирается приобщиться к удивительному миру Nintendo (и это ни в коем случае не сарказм, ведь сегодня японская корпорация фактически является последним крупным платформодержателем, делающим ставку на геймплей и выпускающим ИГР, а не претенциозные пустышки, интерактивное кино или аттракционы на пару вечеров), приобрести именно последнюю ревизию Switch образца 2019 года. Отличить новую версию консоли от предыдущей предельно просто:

  • Коробка Nintendo Switch 2019 стала полностью красной.



  • Серийный номер, указанный в нижней части упаковки, должен начинаться с букв XK (у оригинального Switch серийный номер начинается с XA).



  • Модификация и год выпуска устройства также указаны на корпусе консоли: на девайсе последней ревизии должно быть написано MOD. HAC-001(01), MADE IN CHINA 2019, HAD-XXXXXX, тогда как у консолей первой ревизии MOD. HAC-001, MADE IN CHINA 2016, HAC-XXXXXX.



Что-то с памятью моей стало, я ни Марио, ни Линка не помню...


Существует и еще одна проблема, решения которой поклонники Nintendo так и не дождались: чрезвычайно малый объем встроенной памяти. Емкость системного накопителя Switch составляет всего 32 ГБ, из которых пользователю доступны лишь 25,4 гигабайта (остальное занимает ОС консоли), при этом никаких Premium или Pro Edition, которые несли бы на борту хотя бы 64 ГБ памяти, японский гигант не предлагает. Но сколько же весят сами игры? Давайте посмотрим.

Игра


Объем, ГБ


Super Mario Odyssey


5,7


Mario Kart 8 Deluxe


7


New Super Mario Bros. U Deluxe


2,5


Paper Mario: The Origami King


6,6


Xenoblade Chronicles: Definitive Edition


14


Animal Crossing: New Horizons


7


Super Smash Bros.


16,4


DRAGON QUEST XI S: Echoes of an Elusive Age Definitive Edition


14,3


The Legend of Zelda: Links Awakening


6


The Legend of Zelda: Breath of the Wild


14,8


Bayonetta


8,5


Bayonetta 2


12,5


ASTRAL CHAIN


10


Witcher 3: Wild Hunt


28,7


Doom


22,5


Wolfenstein II: The New Colossus


22,5


The Elder Scrolls V: Skyrim


14,9


L.A. Noire


28,1


Assassins Creed: Мятежники. Коллекция (Assassins Creed IV: Черный флаг + Assassins Creed Изгой)


12,2



Что же мы имеем? Мультиплатформенные проекты закономерно умещаются в памяти Nintendo Switch со скрежетом, а некоторые из них, вроде Ведьмака и Нуара, не влезают туда вовсе. Но даже когда речь заходит об эксклюзивах, картина вырисовывается неутешительная: вы можете загрузить The Legend of Zelda: Breath of the Wild, Animal Crossing: New Horizons, New Super Mario Bros. U Deluxe и на этом все. Если вы играете преимущественно дома, такие ограничения доставят минимум неудобств, хотя о предварительной загрузке речи уже не идет: перед скачиванием каждого нового релиза придется удалять одну или несколько уже установленных игр, а затем томиться в ожидании докачки дистрибутива из eShop. Кстати, сохранять памятные моменты своих прохождений вы тоже не сможете, так как места под видео попросту не останется.

Если же вы собираетесь в отпуск или командировку, да еще и в места, где про WiFi уже что-то слышали, но никогда не пользовались, то лучше сразу установить 23 игры, в которых вы гарантированно проведете не один десяток (а то и несколько сотен) часов, вроде Legend of Zelda или Animal Crossing. Конечно, есть еще вариант запастись картриджами впрок, но, во-первых, это неудобно, а во-вторых, помогает отнюдь не всегда. В целях удешевления размер картриджей ограничен 16 гигабайтами, так что, например, поиграть в L.A. Noire без дозагрузки ассетов у вас не выйдет вообще, в случае с DOOM вы получите лишь сингловую кампанию, а купив Bayonetta 1 + 2 Nintendo Switch Collection, сможете поиграть только в сиквел: вместо картриджа с первой частью внутри коробки вы найдете лишь наклейку с кодом для eShop.


Специальное предложение: одна Байонетта по цене двух

Впрочем, существует и альтернативное решение: забыть о проблемах с недостатком памяти поможет покупка флеш-карты SanDisk for Nintendo Switch. Карты памяти данной линейки лицензированы Nintendo, что гарантирует их совместимость с портативной консолью и соответствие оптимальным требованиям, предъявляемым японской корпорацией к игровым накопителям данных.

Серия SanDisk for Nintendo Switch включает в себя три модели microSD-карт: на 64, 128 и 256 ГБ. Каждая из них соответствует скоростным характеристикам стандарта SDXC: производительность карточек достигает 100 МБ/с в операциях последовательного чтения и 90 МБ/с (для моделей на 128 и 256 ГБ) при последовательной записи, что обеспечивает высокую скорость загрузки и установки игр, а также исключает падение фреймрейта в играх с открытым миром при стриминге текстур.



Помимо высокой производительности, карты памяти SanDisk for Nintendo Switch могут похвастаться превосходной устойчивостью к факторам внешней среды и техногенным воздействиям. Карты памяти SanDisk:

  • сохраняют работоспособность даже спустя 72 часа пребывания в пресной или соленой воде на глубине вплоть до 1 метра;
  • выдерживают падение с высоты до 5 метров на бетонный пол;
  • способны функционировать при экстремально низких (до -25 C) и экстремально высоких (до +85 C) температурах в течение 28 часов;
  • защищены от воздействия рентгеновского излучения и статических магнитных полей с силой индукции до 5000 Гс.

Таким образом, приобретая карты памяти SanDisk for Nintendo Switch, вы можете быть на 100% уверены в том, что ваша коллекция видеоигр будет в полной безопасности.



Напоследок мы хотели бы дать вам несколько советов по поводу выбора объема флеш-карты для Nintendo Switch. Все дело в том, что даже с карточками памяти консоль взаимодействует, мягко говоря, весьма специфично. Вот что необходимо знать:

  • На карту памяти можно записывать любые данные (игры, DLC, скриншоты, видеоролики), кроме сохранений. Последние всегда остаются в памяти устройства.
  • Перенести игру с системного накопителя Switch на microSD-карточку невозможно. Чтобы освободить внутреннюю память консоли, придется заново скачивать дистрибутив из eShop. Скриншоты и видео можно экспортировать и импортировать без ограничений.
  • Nintendo рекомендует использовать лишь одну карту памяти, так как их частые замены могут привести к некорректной работе устройства.
  • Если вы все же используете 2 (или более) карты одновременно, то в будущем не сможете перенести игры с них на одну карточку. Все дистрибутивы в этом случае придется скачивать и устанавливать заново.

С учетом перечисленных особенностей мы рекомендуем приобрести карту памяти сразу вместе с консолью, дабы впоследствии не мучиться с трансфером данных. Кроме того, советуем тщательно обдумать, как именно вы собираетесь использовать консоль. Покупаете Switch исключительно ради эксклюзивов Nintendo и возможности играть в инди-игры в дороге? В этом случае можно обойтись и 64 гигабайтами. Планируете использовать приставку в качестве основной игровой платформы и брать девайс с собой в длительные путешествия? Лучше сразу обзавестись карточкой на 256 ГБ.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru