Нес файлы. Эмуляторы денди. Для чего нужен файловый формат.NES

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

Все денди игры существуют в таком формате как: NES. Этот формат просто так не открыть. Для открытия формата NES нам понадобиться эмуляторы денди игр.

Эмуляторов денди существует очень много, но удобных и нормальных всего лишь несколько.

Ниже перечислены эмуляторы денди, которые можно скачать сразу нажав на ссылку.

Для себя я отобрал два эмулятора, которыми я пользуюсь.

Первый это VirtuaNES 0.97e, который я использую почти для всех игр.

И второй Nestopia 1.40, который я пользуюсь для открытия многоигровок.

На примере эмулятора VirtuaNES 0.97e, я сейчас объясню: как играть игры денди на компьютере?

Сначала скачайте его себе на компьютер:

Потом разархивируйте архив и откройте разархивированную папку VirtuaNES.

Затем откройте файл "VirtuaNES.exe".

Открыв мы увидим черный экран и вверху надписи "File(F)" и т.п.. Это и есть эмулятор.

Шаг 1. Открытие игры.

Для того чтобы открыть игру нажмите сверху надпись "File(F)" и выберете "Open(O)". Или просто нажмите сочетание клавиш "Ctrl+O".

Перед нами появиться окошко "Open Rom file". Здесь указываем путь / выбираем саму денди игру, которую хотим открыть.

И нажимаем кнопку "Открыть".

При открытии некоторых игр будет выходить окошко, в котором написано:
"Because a NES header is illegal, there can be the thing that does not work normally. Do execute?".

При появлении такого окошка нажимаем кнопку "Да".

Все игра денди открыта. Уже можно играть.

Шаг 2. Настройка управления

Уже можно играть, но как? Мы же незнаем клавиш управления. Давайте настроим их.

Для настройки управления нажимаем сверху "Option(C)" и выбираем "Controller(C)".

Для настройки управления первого игрока, у вас должна быть открыта вкладка "Controller1".

Для второго игрока вкладка "Controller2".

Во вкладке первого игрока у вас должно быть выбрано в двух столбиках "10FPS".

Для себя я поставил клавиши управления, которые показаны на скриншоте ниже. Такая настройка управления достаточно удобна.

Для второго игрока настраиваем также, только клавиши управления другие.

Шаг 3. Открытие файла сразу и всегда

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

Необходимо открыть игру формата nes, затем выбрать "Выбор программы из списка вручную" и нажимаем "OK".

Ставим галочку около надписи "Использовать ее для всех файлов такого типа" и нажимаем "ОК".

Все теперь вы можете запускать все скачавшие игры с нашего сайта сразу.

Вам не нужно будет открывать эмулятор и нажимать "File(F)" и т.д.. Нужно будет просто открыть игру.

Если у вас не высветились на мониторе таки надписи, то вам нужно навести курсор на игру и нажать правую кнопку мыши.

Потом нажать "Открыть с помощью" и "Выбрать программу". Затем нажимаем "Обзор".

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

Нажимаем "OK" и смело можем играть.

Для паузы игры нужно нажать пробел, а для продолжения игры клавишу P.

При постоянном нажатии пробела игра идет в режиме замедления.

Если при прохождении игры вам нужно закрыть её, а потом, когда появиться свободное время для игры продолжить игру с того же момента. Нужно нажать клавишу S для сохранения и L для продолжения игры.

И так… Вы скачали любимую игру на денди и решили ее запустить. Потыкавшись в файл с расширением «.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 можно скачать

Лучший эмулятор 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”.