Автор Тема: Как эмулятор узнает под какой маппер написана игра? (NES)  (Прочитано 4725 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ruslansh

  • Пользователь
  • Сообщений: 265
    • Просмотр профиля
Привет, подскажите каким образом эмулятор узнает под какой маппер написана игра? Дело в том что на сколько я знаю вся инфа прописана в первых 16 байтах рома, но вот тогда интересно то что при замене этого куска кода от игры с другим маппером - эмулятор без проблем запускает игру. Как он узнает под какой маппер эта игрушка?
Изготовление картриджей для Денди (Famicom) на заказ. Картриджи делаю на мапперах NROM, CNROM. UNROM, AOROM, ANROM, SLROM (MMC1), MMC3 (TLROM), ММС3 (TSROM).

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1391
  • Пол: Мужской
    • Просмотр профиля
По контрольной сумме рома.

Оффлайн ruslansh

  • Пользователь
  • Сообщений: 265
    • Просмотр профиля
Так получается что у разных игр с одним маппером одинаковая контрольная сумма? В заголовке тогда какая инфа прописывается?
Изготовление картриджей для Денди (Famicom) на заказ. Картриджи делаю на мапперах NROM, CNROM. UNROM, AOROM, ANROM, SLROM (MMC1), MMC3 (TLROM), ММС3 (TSROM).

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1391
  • Пол: Мужской
    • Просмотр профиля
Нет, контрольные суммы разные. Просто встраивают базу данных контрольных сумм разных ромов в эмулятор.

Оффлайн ruslansh

  • Пользователь
  • Сообщений: 265
    • Просмотр профиля
Ну тогда подскажите следующее  - я хочу запустить игру на эмуле под другим маппером - как это сделать? Ну про базу пока единственное объяснение, так как ромы с "левыми" заголовками запускаються без проблем - этож какая база должна быть - как то нецелесообразно получается :), в заголовке намного проще. Но тогда почему игры запускаются если маппер прописан в загаловке :) ???
Изготовление картриджей для Денди (Famicom) на заказ. Картриджи делаю на мапперах NROM, CNROM. UNROM, AOROM, ANROM, SLROM (MMC1), MMC3 (TLROM), ММС3 (TSROM).

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1391
  • Пол: Мужской
    • Просмотр профиля
В тех ромах которые эмулятор запускает даже с неверным заголовком действительно стоит поменять один байт и он уже не запустит его правильно. Проверка по контрольным суммам идет как дополнение. Неизвестные ромы, которых нет в базе запускаются по заголовку.

Оффлайн ruslansh

  • Пользователь
  • Сообщений: 265
    • Просмотр профиля
Да реально, в центре рома заменил нулями 16 байт и эмуль не запустил его, в нестопии как почистить базу? - мне надо чтоб по заголовкам запускались ромы.
Изготовление картриджей для Денди (Famicom) на заказ. Картриджи делаю на мапперах NROM, CNROM. UNROM, AOROM, ANROM, SLROM (MMC1), MMC3 (TLROM), ММС3 (TSROM).

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1391
  • Пол: Мужской
    • Просмотр профиля
Это к авторам эмуляторов. Я вижу только один вариант-менять или добавить данные в ром.(может быть прокатит если в конце файла добавить что нибудь лишнее, расширив его). Ну или поискать эмулятор, который базу не использует.

Оффлайн ruslansh

  • Пользователь
  • Сообщений: 265
    • Просмотр профиля
Во точно,спасибо!

Еще дай ссылку пожалуйста, где описывается содержимое заголовка мапперов.
Изготовление картриджей для Денди (Famicom) на заказ. Картриджи делаю на мапперах NROM, CNROM. UNROM, AOROM, ANROM, SLROM (MMC1), MMC3 (TLROM), ММС3 (TSROM).

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
ruslansh, Зависит от эмулятора, VirtuaNES в заголовке ищет и можно спокойно менять мапперы.
А вообще, есть же опенсурсные, та же Нестопия, качаешь код да смотришь.

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1391
  • Пол: Мужской
    • Просмотр профиля

Оффлайн ruslansh

  • Пользователь
  • Сообщений: 265
    • Просмотр профиля
спасибо всем!
Изготовление картриджей для Денди (Famicom) на заказ. Картриджи делаю на мапперах NROM, CNROM. UNROM, AOROM, ANROM, SLROM (MMC1), MMC3 (TLROM), ММС3 (TSROM).