Чем открыть файл.NES? Создание инструментов для исследования NES-игр Прячем ZIP-файл в NES ROM

Лучший эмулятор NES / Dendy и Famicom Disk System с открытым исходным кодом. Поддержка сохранений, джойстиков, эмуляции различных контроллеров, архивов (т.ч. 7z), запись movie и прочее... А также обладает великолепной совместимостью. Портирован под бесчисленное кол-во систем (старое название FCE Ultra). Имеет встроенные инструменты для создания tool-assisted superplay.

Размер: 8.5 MiB | Загрузок: 292188 | Загрузить

Эмулятор NES / Famicom / Dendy и FDS с открытым исходным кодом. Множество настроек, различных фильтров, поддержка Kaillera , запуск РОМов прям из архива, возможность автосохранения и отличная совместимость. Бесспорно, один из самых навороченных и лучших эмуляторов NES.

Дата: 08.06.2008 | Размер: 1.2 MiB | Загрузок: 134522 | Загрузить

Отличный эмулятор NES / Famicom и Famicom Disk System . Поддержка большого количества мапперов, сохранений, фильтров, режима эмуляции Dendy и прочих возможностей.

Неплохой эмулятор NES / Dendy от автора Project64, написан с использованием DirectX API. Поддерживает большое кол-во мапперов и в основном ориентирован запуск USA-ромов. Jnes имеет поддержку сохранений, также игру по сети через Kaillera .

Дата: 25.12.2016 | Размер: 502 KiB | Загрузок: 62747 | Загрузить

Mednafen - это отличный мультиплатформенный эмулятор, который эмулирует следующие платформы:

  • Atari Lynx
  • GameBoy (Color)
  • GameBoy Advance
  • Neo Geo Pocket (Color)
  • Nintendo Entertainment System/Famicom
  • PC Engine (CD)/TurboGrafx 16 (CD)/SuperGrafx
  • PC-FX
  • Sega Game Gear
  • Sega Genesis/MegaDrive
  • Sega Master System
  • Sony PlayStation
  • Super Nintendo Entertainment System/Super Famicom
  • Virtual Boy
  • WonderSwan
Качество эмуляции очень даже хорошее.
Присутствует поддержка графических фильтров.

Внимание: эмулятор запускается только из командной строки. Но вы можете использовать оболочку: Mednaffe или MedGui Reborn .
Для полноценной работы с эмулятором, следует ознакомиться . А так же, не забываем о клавише F1.

Дата: 01-09-2015 | Размер: 17.5 MiB | Загрузок: 57456 | Загрузить

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

Исправленная сборка Нестопии 1.37 (стабильной для записи мувиков). Теперь она поддерживает неограниченный размер видео при дампе AVI, а также цветовое пространство RGB32.

Дата: 2.09.2012 | Размер: 866 KiB | Загрузок: 5794 | Загрузить

Довольно продвинутый эмулятор NES / Dendy c открытым исходным кодом для Windows. Среди его возможностей: dendy-режим (hybrid), отладчик, запись видео, настройка цветовой палитры, game genie, редактор заголовков РОМа и прочее.

Дата: 2019-01-02 | Размер: 7.1 MiB | Загрузок: 10958 | Загрузить

Эмулятор NES для Windows. Это концепт-эмулятор, главной особенностью которого является - обратная пересмотра игрового процесса в реальном времени (real-time rewind).

Дата: 2012-03-12 | Размер: 490 KiB | Загрузок: 4923 | Загрузить

Мультисистемный эмулятор приставок Sega Mega Drive, Sega Master System, Sega Game Gear, Nintendo Entertainment System и аркадного автомата Sega System E. Имеет оригинальный 3D-интерфейс, в виде игровой комнаты с игровыми автоматами, телевизорами. Также есть встроенная база данных игр и обложки.

Дата: 16.05.2011 | Размер: 18.3 MiB | Загрузок: 23823 | Загрузить

Один из старейших, продолжающих развитие, эмуляторов NES / Dendy . Имеет графический интерфейс (в DOS-стиле т.к. долгое время эмулятор был для DOS), возможность записи и сохранения игры, создание скриншот, поддержку game genie кодов, сохранений от nesticle и архивов. Для любителей и ностальгирующих.

И одновременно ZIP-файл. Он одновременно полностью функционален и как NES ROM, и как ZIP-файл.

Что находится в этом ZIP-файле? Исходный код ROM.

Что случится, если скомпилировать этот исходный код? Он создаст NES ROM, который также является ZIP-файлом, содержащим исходный код этого NES ROM.

Запущенный ROM

Этот NES ROM можно «прожечь» на картридж NES и он будет работать на NES. Даже если конвертировать все данные с картриджа, образ NES всё равно будет ZIP-файлом.

Источник вдохновения

Выпуск 0x14 журнала PoC||GTFO был одновременно PDF, ZIP-файлом и NES ROM. Именно этот выпуск вдохновил меня на создание NES-игры с нуля для Tymkrs .

Способ, использованный мной для создания NES ROM, также являющегося ZIP-файлом - это НЕ тот же способ, который использовался в выпуске issue 0x14 PoC||GTFO . Мой способ встраивает ZIP-файл в NES ROM и позволяет записать образ NES на картридж, сохранив данные ZIP-файла. В методе, использованном PoC||GTFO данные ZIP-файла хранятся за пределами файла ROM NES, поэтому выпуск 0x14 PoC||GTFO нельзя записать на картридж с сохранением данных ZIP-файла.

Формат файлов NES ROM

В этом образе NES используется формат файлов iNES. Формат файлов iNES на самом деле довольно прост.

В начале ROM есть заголовок iNES, который сообщает немного информации о NES ROM, чтобы эмуляторы могли понимать данные образа NES. После заголовка iNES следуют данные PRG, являющиеся данными программной логики NES ROM. Затем идут данные CHR, то есть наборы тайлов фона и спрайтов. Всё пустое пространство в PRG заполнено отступами, кроме того, в конце данных PRG может быть несколько байт (в этом NES ROM есть 6 необходимых байт в конце данных PRG, которые я не могу изменять).


Формат файлов iNES

Формат файлов ZIP

В файлах ZIP достаточно много компонентов, поэтому мы сосредоточимся тех частях, которые для нас важны.

Для каждого файла и каталога, содержащегося в ZIP-файле, существует заголовок файла центрального каталога (Central Directory File Header). Любой заголовок файла центрального каталога можно найти, выполнив поиск байтов сигнатуры заголовка 0x504B0102 в ZIP-файле. Важная часть информации - это локальное смещение заголовка (Local Header Offset), поскольку при встраивании ZIP-файла в NES ROM мы будем менять каждое смещение.


Формат заголовка файла центрального каталога ZIP

ZIP-файлы определяют своё начало и конец, переходя в конец файла и двигаясь к началу, пока не дойдут до байтов 0x504B0506 сигнатуры конца записи центрального каталога (End of Central Directory Record). При встраивании ZIP-файла в NES ROM нам важно обновить смещение центрального каталога (Central Directory Offset) в конце записи центрального каталога. Также мы можем указать длину комментария ZIP-файла (ZIP File Comment Length) и это количество байтов после конца данных ZIP-файла будет комментарием ZIP-файла.


Формат конца записи центрального каталога ZIP

Прячем ZIP-файл в NES ROM

Если мы найдём достаточно отступов в данных PRG, то сможем просто заменить эти пустые данные ZIP-файлом. В своём NES ROM я отсчитывал байты отступов от конца данных PRG, пока не получил достаточно места для встраивания ZIP-файла и записал, насколько далеко в NES ROM я начал встраивать ZIP-файл. Затем я обновил все смещения данных ZIP-файла, прибавив расстояние, на котором начинается в образе NES ZIP-файл. После этого я задал размер длины комментария ZIP-файла равным размеру оставшейся части данных NES ROM, то есть концу данных PRG и всем данным CHR.


Формат файла NESZIP

Этот файл остаётся образом NES, потому что никакие из необходимых данных PRG и данные CHR не повреждены. Также он является ZIP-файлом, потому что все смещения верны и все данные после данных ZIP-файла объявлены комментарием ZIP-файла.

Давайте сначала протестируем файл, чтобы убедиться, что он одновременно является и NES ROM, и ZIP-файлом. Скачав файл как NES ROM, я делаю его копию.


Копия NES ROM

Переименование файла позволяет мне изменить расширение с.nes на.zip.


Меняем расширение копии NES ROM на.zip

После замены расширения на.zip, файл считается ZIP-файлом.

При распаковке этого файла создаётся каталог.


Если мы посмотрим на содержимое каталога, то увидим исходный код файла. Мы просто взяли NES ROM, переименовали его в ZIP-файл и успешно его распаковали.


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

Создаём рекурсию

На самом деле, эта часть - самая простая. Запакованный исходный код стал ZIP-файлом, достаточно маленьким, чтобы его можно было легко встроить в NES ROM, поэтому я решил сделать NES/ZIP рекурсивными. Для автоматизации процесса создания ZIP-файла исходного кода или для автоматизации процесса встраивания ZIP-файла в NES ROM потребовалось не так много труда.

Подводим итог

Этот проект является простым proof of concept, демонстрирующим возможность встраивания ZIP-файла в NES ROM способом, создающим файл, который одновременно становится и ZIP-файлом, и образом NES, и позволяющим записывать данные на картридж с сохранением всех их свойств.

Так как я решил сделать этот NES ROM совместимым с печатными платами NES-NROM-128 (из-за их простоты), процесс будет работать практически для любого NES ROM, если в нём будет достаточное количество отступов в данных PRG для встраивания ZIP-файла.

Чтобы реализовать этот процесс на других NES ROM, может потребоваться дополнительная работа, потому что разные ассемблеры 6502 могут заполнять отступами данные PRG по-разному. Я не тестировал этот метод с более сложными играми NES, имеющими переключение банков. Также я не тестировал возможность добавления отступов в размер данных PRG для встраивания ZIP-файлов большего размера.

С учётом всего сказанного, не удивляйтесь, если я дам вам картридж NES с тайным ZIP-файлом, скрытым в данных NES ROM.

Исходный код

Исходный код этого проекта выложен на GitHub (или его можно получить, распаковав файл NES ROM) и имеет лицензию BSD 2-Clause License.

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

Так как же играть в Dendy на компьютере?

Сначала нам нужно скачать в интернете сами игры . Все игры для Денди представляют собой файл с расширением .nes .

У вас есть несколько вариантов, где взять игры:

1) Вы можете ввести в любом поисковике фразу “игры для dendy” и перед вами откроются десятки сайтов, на которых вы их и скачаете.

2) Можете скачать игры с определенного сайта, который рекомендую я. Вот ссылка на него .

Данный сайт мне нравится тем, что на нем все предельно просто и понятно. Вы просто выбираете слева название приставки (в нашем случае Dendy ) – затем переходите в раздел “Игры”. Тут все игрушки отсортированы по алфавиту: выбираете нужную букву – находите игру – щелкаете мышкой по названию (либо по слову “скриншоты”). Если это действительно та игрушка, которую вы искали – скачиваете ее, нажав на ссылку.

3) А еще можете скачать прямо небольшую сборку самых популярных по моему мнению игр для Dendy, которую я сделал сам. В нее вошли: Battle City (танчики), Battletoads &Double_Dragon (боевые лягушки), Chip and Dale Rescue Rangers 2 (чип и дейл), Darkwing Duck (черный плащ), Double Dragon III (двойной дракон), GALAXIAN (мухи), Jackie Chan, Super Mario Bros (супер марио), Teenage Mutant Ninja Turtles III (черепашки ниндзя), Tiny Toon Adventures (кролик):

Итак, независимо от того, где именно вы скачаете игру, она будет представлять собой архив, в котором лежит файл с расширением NES . Советую вам все скаченные архивы с играми скопировать в одну папку и хранить их в ней. Лично я создал у себя на диске С папку games и в нее собрал все свои любимые игры Dendy:

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

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

Скачав архив с программой, распакуйте его куда-нибудь на компьютер. Я распаковал на диск С:\fceux-2.2.2 . Содержимое этой папки выглядит следующим образом:

Для запуска эмулятора необходимо найти здесь файл fceux.exe и открыть его двойным щелчком.

При желании (чтобы не заходить каждый раз в эту папку) вы можете создать ярлык для этого файла на своем рабочем столе. Для этого щелкните по файлу fceux.exe правой клавишей мыши – выберите “Отправить” – “Рабочий стол (создать ярлык)”:

Итак, эмулятор запущен:

Первым делом настроим управление: в меню выбираем Config Input :

Видим следующее окно. Здесь напротив Port 1 жмем кнопку Configure :

Теперь нам необходимо настроить комбинацию клавиш для управления. В Денди можно играть либо на клавиатуре ; либо если у вас есть джойстик (а точнее геймпад), то с помощью него. И клавиатура, и джойстик настраиваются одинаково.

Настройка очень проста: кликаем в окошке на нужную кнопку мышкой и после этого дважды жмем нужную кнопку на клавиатуре (или джойстике). Затем переходим к следующей кнопке.
Лично я на своей клавиатуре настроил кнопки следующим образом:

Left, Up, Right, Down – это стрелки

Select – пробел

Start – Enter

Turbo B и Turbo A – это клавиши A и S

B и A – клавиши Z и X

Закончив настройку всех кнопок – выходим отсюда, нажав “Close”.

Ну и наконец, теперь запускаем игру через эмулятор . Как вы помните, у меня все скаченные игры для Денди хранятся на диске C в папке games . Кстати, эмулятор FCEUX умеет открывать игры прямо из архива. Некоторые другие эмуляторы не увидят игру, если файл предварительно не разархивировать. Также FCEUX версии 2.2.2 открывает и zip, и rar архивы. А вот более старые версии этой программы rar-архивы не видят.

Итак, в меню заходим в File Open ROM :

Затем находим на компьютере нужную игру, выделяем ее и жмем “Открыть”:

Вот и всё: игра запущена, и мы можем начинать играть теми клавишами, которые заранее настроили:

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

Воспользоваться ей можно следующим образом: в ходе игры жмем в меню “File” – затем “Savestate” – “Save State”:
Если затем нам понадобится начать игру с места сохранения, то запускаем игру как обычно – потом идем в “File” – “Savestate” – “Load State”.

Файл NES поврежден

Если после установки необходимой программы из списка, Вы по-прежнему не можете открыть файл с расширением NES, поводом может быть его повреждение. Решением может быть нахождение новой копии файла NES, который Вы собираетесь открыть

Расширение файла NES не связано с соответствующим приложением

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

Запись, касающаяся файла NES в "Реестре Системы Windows" удалена либо повреждена
Файл NES инфицирован вирусом

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

И так… Вы скачали любимую игру на денди и решили ее запустить. Потыкавшись в файл с расширением «.nes» или архив «.zip» вы вдруг понимаете, что вам нужна помощь. На самом деле просто так, без помощи специальных программ в эти игры не сыграешь. Программы эти называются эмуляторами.

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

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

Русские эмуляторы Денди

Virtual NES Nestopia FCE Ultra
Virtual NES - это отличный эмулятор денди, который лучше всего подходит для открытия игр японского производства. Работает на windows 7, XP, 2000. Отличная совместимость с большинством из игр. Русская версия этого эмулятора (версия 0.93) доступна по этой ссылке: Nestopia - относительно молодой эмулятор денди, но уже набравший колоссальную популярность! Открывает, наверное, 99% всех ромов без особых проблем. Имеет поддержку сетевой игры, множества фильтров для настройки изображения и звука. Работает на win xp, 7, 2000. Из минусов - довольно требовательный к железу, не менее Pentium 3. FCE Ultra - превосходный эмулятор dendy, nes, которому по плечу большинство игр. Он является чем то средним между двумя предыдущими эмуляторами. Ест мало ресурсов, вместе с тем обладает кучей настроек, который удовлетворят даже самого опытного геймера. Для включения русского языка, нужно зайти в опции, далее нажать на language и выбрать русский. Версия 0.98.15 доступна по этой ссылке:

Как запустить игру (ром) на Денди

Допустим вы скачали эмулятор и сам ром, т.е. у вас должно быть два файла: один с расширением «.nes» (ром с игрой), второй «.zip» (эмулятор). Чтобы запустить игру, вам необходимо извлечь программу эмулятор и запустить ее. Я покажу как запустить ром, на примере эмулятора Nestopia :

После запуска эмулятора, нажимаете на файл/ открыть (file/open ). Далее вам нужно выбрать папку, в которой у вас лежит файл с расширением «.nes» т.е сам файл скаченной игры. Открываете его в этой программе и можете играть. Единственное, неплохо бы еще настроить кнопки управления, графику, звук. Но здесь трудно дать какие-либо рекомендации, ибо все будет зависеть от личных предпочтений игрока, и от железа, на котором работает эмулятор. Так же можете настроить куда будут производиться сохранения, посмотреть на какие кнопки делать быстре сейвы, если в вашем эмуляторе будет возможность записи видео и звука - так же укажите заранее папки, куда это все будет сохраняться. Если вы активно пользуетесь этой программой - на диске может прилично набраться фото и видео материалов, вплоть до нескольких гигабайт!

Вот в общем и все открытие ромов…

Эмулятор для игры на смартфоне с ОС ANDROID можно скачать

Loading...Loading...