Автор Тема: Как программно идентефицировать rom (есть ли доступная база rom'ов с md5/sha?)?  (Прочитано 5114 раз)

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

benderamp

  • Гость
Всем привет. Идея следующая - написать плагин для файлового менеджера (в КДЕ в linux), который сможет идентефицировать rom-файлы в текущем каталоге и показывать для них превью-картинки (в точности как для jpg/png/... файлов), а в свойствах файла будет видно всю информацию о выбранном rom-файле - название игры, год выпуска, производитель и тп. Получается, что стандартный файловый менеджер превращается в достаточно удобный каталогизатор/браузер rom-файлов (в новой версии КДЕ по этим данным можно даже осуществлять глобальный поиск).

Сами такие плагины написать не проблема (я это уже сделал) - проблема в том, как можно идентефицировать rom-файл из моей программы. Насколько я понимаю, достать всю требуюмую информацию из игры невозможно - даже если предположить, что там есть например год и производитель, краткого описания (с возможностью перевода на разные языки) и артворка с картриджа в качестве превью-картинки получить из ром-файла точно не получится. Значит как мне кажется остается один путь - нужно идентефецировать каждый ром-файл по его уникальной md5 или sha1 или еще какой-нибудь сумме и искать по ней информацию в какой-нибудь глобальной базе всех известных науке ромов.

Вот по последнему пункту хотел спросить совета/помощи. Доступна ли такая база (контрольная сумма -> информация по игре) где-нибудь в природе, чтобы ее можно было использовать? Сама смог найти проект M.A.M.E - там как раз все игры хранятся в общей базе и в принципе их можно искать по sha1 (там есть некоторые технические неудобства в API, но их можно обойти). Но насколько я понял, M.A.M.E имеет цель собирать информацию/эмулировать только один узкий класс игр (для игровых автоматов), а мне все-таки хотелось бы, что бы это работало хотябы для ромов от Денди, Сеги и Нинтендо64 (т.к. сам в них играл).

По поводу моего проекта - вот здесь есть скриншоты, как это уже работает (в качестве примера взял 2 игрушки и заполнил для них информацию в базе - для других ромов это будет работать, если положить в базу больше записей): http://romdigger.sourceforge.net/

Все исходники доступны под GPL, если кому интересно, могу дать ссылку на бинарники для openSuse.

Оффлайн HoRRoR

  • Пользователь
  • Сообщений: 983
  • Пол: Мужской
  • Ромхакер
    • Просмотр профиля
Идентифицировать можно по чексамме/хидеру. А баз дофига - Romcenter, DataBaser, GoodXXXX, etc.
Думаю, вскрыть форматы этих баз труда не составит.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3593
    • Twitter
    • Просмотр профиля
У No-intro есть датники для основных картриджевых приставок, там и црц32 и мд5, http://gbadat.altervista.org/.
Goodxxx придется вскрывать и доставать суммы руками, да и сам автор очень бесился в свое время по поводу доставания его баз и использования при создании датников для ромцентра.
Для ГБА и прочих "некстгенов" датников несколько, на ноинтро есть отдельнй проект по НДС, база обновляется каждый день.

benderamp

  • Гость
Спасибо! Похоже, что базы no-intro для начала будет более чем достаточно.

benderamp

  • Гость
Добавил базу ромов NES c No-Intro - пара новых скриншотов в действии:

Список ромов в файловом менеджере в виде таблицы с метаданными (файлы распознаются по md5 сумме файла):
http://romdigger.sourceforge.net/kde3_no-intro_db_backend.png

Тот же список, только отфильтрованый по слову "ninja"; такая фильтрация - стандартная функция файлового менеджера, фильтр работает не только по имени файла, но и по словам в метаданных:
http://romdigger.sourceforge.net/kde3_no-intro_db_backend_filtered.png

Информации по игре в базе No-Intro вообще мало - по сути она дает только название игры, которое и так обычно присутсвует в названии файла точно в таком же виде, ну еще платформу. Хотелось бы видеть хотябы еще год издания и производителя, и совсем бы круто жанр и краткое описание. Базы Romcenter и GoodXXX очень похожи на эту - смотрел датники Romcenter - вся информация по сути таже, возможно только отличается по количеству игр. Вообще нет нигде картинок для игр (а ради них по сути все и затевалось) - все это есть только в базах M.A.M.E и еще нашел Caesar, но они только для игровых автоматов.

А есть доступ к базам уровня примерно как здесь (на emu-land.net)?

Оффлайн R4kk00n

  • Пользователь
  • Сообщений: 367
    • Просмотр профиля
В OfflineList, вроде как, есть как раз нужная информация. Другое дело, что не совсем понятно, где эти базы искать...
Для Амиги и С64 есть что-то на lemonamiga/lemon64. Lemonade, в частности — фронтенд для WinUAE с информацией и картинками.

Добавлено позже:
О, под GameBase тоже есть кое-то (внизу страницы там линки на конкретные базы)

benderamp

  • Гость
OfflineList уже совсем горячо - датники (в xml) есть и в дистрибутиве, и можно скачать отдельно. Картинки они качают отсюда (в дистрибутиве их похоже нет) http://nesofflinelist.free.fr/imgs (все точно - в датнике у "Zen Intergalactic Ninja" тэг <imageNumber>2071</imageNumber> и картинка http://nesofflinelist.free.fr/imgs/2001-2500/2071b.png как раз из этой игрушки).

GameBase тоже очень похоже имеет все необходимое - картинки точно есть в дистрибутиве, правда кажется поменьше, чем в OfflineList.

Спасибо за информацию!

benderamp

  • Гость
Добавил иконки из OfflineList - пока все еще только для NES

http://romdigger.sourceforge.net/kde3_konqueror_icons.png

http://romdigger.sourceforge.net/kde4_dolphin_icons_big.png

Кому интересно, больше информации как скачать/установить и т.п. есть на http://romdigger.sourceforge.net

Всем спасибо за помощь