Рубрика «Nes» - 5

В этом руководстве я расскажу, как написать собственную виртуальную машину (VM), способную запускать программы на ассемблере, такие как 2048 (моего друга) или Roguelike (моя). Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера и как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться немного страшным, но я обещаю, что тема удивительно простая и поучительная.

Окончательный код составляет около 250 строк на C. Достаточно знать лишь основы C или C++, такие как двоичная арифметика. Для сборки и запуска подходит любая Unix-система (включая macOS). Несколько API Unix используются для настройки ввода и отображения консоли, но они не являются существенными для основного кода. (Реализация поддержки Windows приветствуется).

Примечание: эта VM — грамотная программа. То есть вы прямо сейчас уже читаете её исходный код! Каждый фрагмент кода будет показан и подробно объяснён, так что можете быть уверены: ничего не упущено. Окончательный код создан сплетением блоков кода. Репозиторий проекта тут.

Читать полностью »

Что это

CastlevaniaBot — это плагин для эмулятора NES Nintaco, который играет в Castlevania. Если запустить его на экране заставки, то плагин пройдёт всю игру от начала до конца. Или же можно запустить его в любом месте игры, чтобы он прошёл её часть.

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

image

В середине 1980-х Nintendo Entertainment System (NES) была обязательной к покупке консолью. Лучший звук, лучшая графика и лучшие игры среди всех консолей того времени — приставка расширяла границы возможного. До сих пор такие проекты, как Super Mario Bros., The Legend of Zelda и Metroid считаются одними из лучших игр всех времён.

Прошло более 30 лет после выпуска NES, а классические игры чувствуют себя прекрасно, чего нельзя сказать о железе, на котором они работали. Имея разрешение всего 256x240, консоль NES не могла предоставить играм достаточно пространства. Тем не менее, бесстрашным разработчикам удалось уместить в играх NES потрясающие, незабываемые миры: лабиринтоподобные подземелья The Legend of Zelda, обширные пространства планеты в Metroid, яркие уровни Super Mario Bros.. Однако из-за аппаратных ограничений NES игроки никогда не могли выйти за пределы разрешения 256x240…

До недавнего времени.

Представляю вашему вниманию проект wideNES — новый способ сыграть в классику NES!
Читать полностью »

image

Первая часть (анализ кода) находится здесь: https://habr.com/post/420725/.

Алгоритм

Описание

Алгоритм непрерывно выполняет следующие шаги:

  1. Ждёт, пока не создастся новое тетримино.
  2. Проверяет тип нового созданного тетримино, тип следующего тетримино (фигура в поле предпросмотра) и содержимое игрового поля.
  3. Исследует все возможные способы добавления двух тетримино на игровое поле и оценивает каждую вероятность.
  4. Перемещает новое созданное тетримино, чтобы оно совпадало с местом наилучшенней обнаруженной вероятности.

Каждый из этих этапов подробно описан ниже.

Поиск блокировки

Рассмотрим упрощённую версию Tetris, в которой фигуры не падают автоматически. Единственный способ спустить фигуру вниз — это мягкий спуск. Убрав из игры тайминги, мы можем полностью описать состояние активного тетримино его позицией и ориентацией. Фигура имеет известное место изначального создания, а для преобразования из одного состояния в другое используются следующие операции:

  • Перемещение на один шаг вниз
  • Перемещение на один шаг влево
  • Перемещение на один шаг вправо
  • Поворот на один шаг против часовой стрелки
  • Поворот на один шаг по часовой стрелке

Читать полностью »

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

Как я научил ИИ играть в Tetris для NES. Часть 1: анализ кода игры - 1

Попробуйте сами

О проекте

Для тех, кому не хватает упорства, терпения и времени, необходимых для освоения Nintendo Tetris, я создал ИИ, способный играть самостоятельно. Вы наконец-то сможете добраться до уровня 30 и даже дальше. Вы увидите, как получить максимальное количество очков и понаблюдаете за бесконечным изменением счётчиков рядов, уровней и статистики. Узнаете, какие цвета появляются на уровнях, выше которых не мог забраться человек. Посмотрите, насколько далеко можно зайти.
Читать полностью »

Можем ли мы возродить «Утиную охоту»? - 1

Большая часть людей радуется, когда им удаётся вернуть к жизни старые вещи. Бесконечное стремление заново пережить опыт молодости ведёт нас путями, которые мы давно уже позабыли. А по дороге мы иногда сталкиваемся с забытыми воспоминаниями, вызывающими другие забытые воспоминания, позволяющие нам заново переживать счастливые моменты, о которых мы не думали годами, или даже десятилетиями. Кого-то обратно в старшие классы, к вечерним автопрогулкам с выкрученной на полную катушку громкостью радиоприёмника возвращает рёв двигателя Ford Windsor. Для тех, кто родился в 80-х и 90-х подобные воспоминания могут вызывать видеоигры. Кто может забыть первую встречу со скрепкой-помощником из Microsoft Office, элегантную музыку из Final Fantasy, или вверх-вверх-вниз-вниз-влево-вправо-влево-вправо-b-a-выбрать-начать?

Прогресс в технологии процессоров позволил нам заново провести время с нашими любимыми играми посредством эмуляторов – программ, эмулирующих процессоры старых компьютеров. Игры скачиваются с ROM-чипов в файлы. Эти файлы затем можно загрузить в эмулятор, и поиграть в игру так, будто бы вы играете в неё на оригинальной системе.
Читать полностью »

image

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

В дополнение к играм NES/Famicom, которые можно получить внутри игры, можно загружать новые игры NES с карты памяти.

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

Введение — объекты консоли NES

Обычные игры для NES, которые можно получить в Animal Crossing, представляют собой отдельные элементы мебели в виде консоли NES с лежащим на ней картриджем.

Расположив этот объект в своём доме и взаимодействуя с ним, можно запустить эту единственную игру. На рисунке ниже показаны Excitebike и Golf.

Реверс-инжиниринг эмулятора NES в игре для GameCube - 2

Читать полностью »

Извлекаем уровни из Super Mario Bros с помощью Python - 1

Введение

Для нового проекта мне понадобилось извлечь данные уровней из классической видеоигры 1985 года Super Mario Bros (SMB). Если конкретнее, то я хотел извлечь фоновую графику каждого уровня игры без интерфейса, подвижных спрайтов и т.п.

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

На первом этапе проекта мы изучим язык ассемблера 6502 и написанный на Python эмулятор. Полный исходный код выложен здесь.
Читать полностью »

Не просто ностальгия: самодельные игры для NES продолжают выпускаться - 1

Моё детство пришлось на эпоху Nintendo Entertainment System, и я всегда хотел создать собственную игру для NES. Я записывал идеи в блокнотах, чертил уровни на миллиметровке и тратил кучу времени, сочиняя MIDI-саундтреки для несуществующих игр. Все эти идеи оставались погребёнными в прошлом до 2018 года, когда я увидел документальный фильм Джо Гранато The New 8-bit Heroes о его одиссее по созданию игры своей детской мечты. Сегодня, после успешного сбора средств на его ПО NESMaker в Kickstarter, этот проект может упростить процесс создания собственных игр для NES. Однако Джо был не первым, самодельные (homebrew) игры имеют длинную историю. Сегодня мы исследуем этот уголок истории NES и расскажем о создании игр для NES на протяжении 20 лет после завершения официальной коммерческой жизни системы.
Читать полностью »

NES Classic снова начнут продавать уже этим летом - 1

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

«Нам захотелось дать поклонникам всех возрастов возможность снова открыть оригинальную систему Nintendo, дать им вспомнить, почему им так нравилась эта консоль… Nintendo Entertainment System: NES Classic Edition идеально подходит всем, кто помнит, как играть в NES, или кто хотел бы дать возможность прочувствовать вкус такой игры новому поколению геймеров», — сообщил в свое время Реджинальд Фис-Эме (Reginald «Reggie» Fils-Aimé), президент и главный операционный директор Nintendo of America. Надо сказать, у компании все получилось.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js