Автор Тема: NESseparator - выдирание игр из многоигровки NES для новичков!  (Прочитано 6479 раз)

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

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2350
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Текущая версия - 1.0.3 Собственно, в приложении сама программа. Пока ещё очень сырая, но уже кое-как работает.

Описание работы:

Возьмём для препарирования какой-нибудь ром с интересными многоигровками. Я взял ром Super New Year Cart 15-in-1 (Hummer team)(Unl)[!].nes
Его можно скачать в приложении.

Я предположил (путём нескольких опытов), что в роме игры весят по 262160 байт. Как я проводил эти опыты? Просто можно увидеть в многоигровке знакомую игру, а потом найти её в интернете и посмотреть в каком-нибудь редакторе графики, что собой эта игра представляет.

Например, одна из таких существующих в природе игр - Zen_Intergalactic_Ninja_(U).nes - в ней поровну графики и кода. (262160 - 16(хедер)) / 2 = 131072 байта. Поэтому я и разделил ром на такие части (первая картинка).


Дальше всё просто - нужно найти, в каких частях находится графика игры. К примеру, я захотел найти игру WAR.

Её код оказался в 5-ой части, а графика - в 10-ой. Хедер в готовый ром я загрузил из рома Zen_Intergalactic_Ninja_(U).nes После этого игра WAR сразу заработала.


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

Параметры для выдирания игры показаны на второй картинке. Хедер тоже загружен из рома Zen_Intergalactic_Ninja_(U).nes, но тут есть один нюанс!

Обратите внимание, что графики - целых 4 части, поэтому в хедере нужно изменить число 10 на 40. Иначе игра не будет правильно работать после того, как вы войдёте в первую комнату.

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

5-ая цифра - код игры. 01 - 16384 байта. Минимальная часть кода. Т.е. 08 - это 131072 байта.
6-ая цифра - графика игры. 01 - 8192 байта. Минимальная часть графики.  Т.е. 10 - это 131072 байта.
« Последнее редактирование: 07 Февраль 2015, 20:16:29 от Guyver(X.B.M.) »

Оффлайн s1nka

  • Пользователь
  • Сообщений: 1569
  • Пол: Мужской
    • Steam
    • Просмотр профиля
Guyver(X.B.M.), спасибо за софтину. Полезная штука.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2350
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Обновил немного. Добавил интервал, который будет пропущен после header'а.

Для чего это нужно? Попробую объяснить.

допустим, у нас в многоигровке ром, который мы ищем, весит 24592 байта. Из них по нашим предположениям код занимает две трети от веса минус хедер = 16384 байта. Но мы не знаем, где именно в роме находится этот кусок кода. Допустим, мы начнём искать так: первые 16384 байта, следующие 16384 байта, следующие 16384 байта и т.д. А код находится во второй половине первого диапазона и в первой половине второго диапазона! И в итоге мы его пропустим!

Поэтому при первом поиске мы ищем так:

16 байт
1 кусок 16384 байт
2 кусок 16384 байт
3 кусок 16384 байт
...

При втором поиске ищем так:

16 байт
пропускаем 8192 байта
1 кусок 16384 байт
2 кусок 16384 байт
3 кусок 16384 байт
...

При третьем поиске:

16 байт
пропускаем 16384 байта
1 кусок 16384 байт
2 кусок 16384 байт
3 кусок 16384 байт
...

Т.о. мы каждый раз будем смещать поиск на минимальный интервал и в итоге 100% найдём код в роме.

- добавил загрузку кода и графики из файлов на компьютере.
- добавил мультизагрузку кода и графики.
- добавил перемещение кода и графики по списку.
« Последнее редактирование: 07 Февраль 2015, 20:33:45 от Guyver(X.B.M.) »

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Блин, такое объяснение... Я выяснил, что в Action 52 игры в среднем весят по 40 килобайт. И что это мне даёт?..

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
Блин, такое объяснение... Я выяснил, что в Action 52 игры в среднем весят по 40 килобайт. И что это мне даёт?..
это тебе дает исчерпывающую информацию, сколько кода и сколько графики в каждой игре. используй мозг, если он есть

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Action 52 не дал себя распаковать. Видать, прога действительно сырая.
CaH4e3, для таких манипуляций (тем более для новичков в ромхакинге) - должны быть хоть какие-то наглядные пособия, видеоуроки. И не нужно сразу обвинять в недостатке мозгов, если программа ещё "зеленая", а откуда что брать - новичкам пока неизвестно.
Научите сначала на простых примерах, а потом уж ругайте.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
В принципе выгледит по технологии памяти разбиение ромов.
Это уже что-то... ^_^

Оффлайн Grongy

  • Emu-Land Team
  • Сообщений: 827
  • Пол: Мужской
    • Просмотр профиля
Цитата
Action 52 не дал себя распаковать. Видать, прога действительно сырая.
:facepalm: А ничего, что некоторые игры могут использовать общую графику, звук и прочие составляющие? А если учесть криворукость программистов, они вообще могут быть неразделимы.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хорошо. А Elf Load кто-нибудь может вынуть? 200-in-1_-_Elfland_(Unl)[].rar
Я предполагаю, что ром этой игры весит 40 килобайт.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
Action 52 не дал себя распаковать. Видать, прога действительно сырая.
CaH4e3, для таких манипуляций (тем более для новичков в ромхакинге) - должны быть хоть какие-то наглядные пособия, видеоуроки. И не нужно сразу обвинять в недостатке мозгов, если программа ещё "зеленая", а откуда что брать - новичкам пока неизвестно.
Научите сначала на простых примерах, а потом уж ругайте.
причем тут прога, она тупо делит ром на куски, это можно делать любым другим способом и также собирать обратно. тысяча программ режут файлы кусками и сливают обратно. надо понимать, что есть игры, засунутые в искусственные многоигровки, каждая сама по себе, о других ничего не знает, так что если ее отделить от остальных, будет работать также, а есть многоигровки, написанные целиком как одна игра с множеством разных подыгр. Ты не можешь ничего оттуда выдрать тупым разделением, потому что
:facepalm: А ничего, что некоторые игры могут использовать общую графику, звук и прочие составляющие? они вообще могут быть неразделимы.
это не криворукость программистов, это так написана игра, которая называется "многоигровка экшон 52"...
200в1 из той же серии, там кажадая игра хачена так, чтобы влезать в стркутуру многоиргровки и под ее управлением и маппером. вырезать оттуда простым делением ничего нельзя.

Добавлено позже:
Хорошо. А Elf Load кто-нибудь может вынуть? 200-in-1_-_Elfland_(Unl)[].rar
Я предполагаю, что ром этой игры весит 40 килобайт.
предполагать ты можешь сколько угодно, только непонятно, на чем такие предположения строятся лол
« Последнее редактирование: 21 Февраль 2015, 19:11:37 от CaH4e3 »

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Цитата
200в1 из той же серии, там кажадая игра хачена так, чтобы влезать в стркутуру многоиргровки и под ее управлением и маппером. вырезать оттуда простым делением ничего нельзя.
Хорошо. А есть программа (не на DOS), которая сможет перебить маппер, чтобы можно быть и на телефоне в эту многоигровку сыграть?..

Оффлайн black jaguar

  • Пользователь
  • Сообщений: 1865
    • Просмотр профиля
правда. затюкали человека.
назовите тогда тему "программа - разбивалка любых файлов на мелкие. только для тру хацкеров"  :neznayu:
а потом люди жалуются, что на почту приходят - а там на них орут по любому вопросу
или тут каждый себе и машину чинит и сам себе хлеб из деревенских колосьев делает вручную? ну чтобы на все руки мастер

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
Блин! Автор же сказал прога сырая, по этому больше ручками приходится работать. <_<

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
а я о чем тут говорю лол нет такой программы, которая за тебя все вообще будет делать, ручками что-то тоже делать приходится... кому надо - делает, остальные хоят и ноют, чтобы им кто-то сделал

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Тогда можно было и не писать "для новичков". Новичок в ромхакинге вообще не знает таких тонкостей.

Оффлайн gotten

  • Пользователь
  • Сообщений: 4748
  • Пол: Мужской
    • Просмотр профиля
Re: NESseparator - выдирание игр из многоигровки NES
« Ответ #15 : 22 Февраль 2015, 01:12:06 »
Так у тебя запросы нелепые, из разряда сделайте мне из компьютерной игры psp игру. Какие еще тонкости?

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Re: NESseparator - выдирание игр из многоигровки NES
« Ответ #16 : 22 Февраль 2015, 08:21:19 »
Так у тебя запросы нелепые, из разряда сделайте мне из компьютерной игры psp игру. Какие еще тонкости?
Да самые обыкновенные. Вместо того, чтобы дать понятный ответ, на что рассчитывать, используя данную программу, что она может и чего не может - я вначале должен был выслушать эту кучу "лол-комментов", а затем уж - правду-матку. Разве так можно с людьми?..

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
lancuster, я тебе писал все нужные ссылки.
Прочитал бы ты всё, понял бы, что программ, которые по одному клику могут менять маппер - не существует и не может существовать.
Как и универсального выдирателя игр из многоигровок.

Оффлайн blackbird_ru

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

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
lancuster, я тебе писал все нужные ссылки.
Прочитал бы ты всё, понял бы, что программ, которые по одному клику могут менять маппер - не существует и не может существовать.
Как и универсального выдирателя игр из многоигровок.
Ну, это я понял. Но я читал, что есть какая-то утилита, которая дампит ромы под определенные мапперы для записи на флэш-карик. Однако, к сожалению, её не так просто найти. :(

Добавлено позже:
И да, твоя многоигровка в формате унф, а не нес.
Поэтому тупая обрезка в проге не поможет, там формат другой.
Извини за глупый вопрос, но... Есть ли преобразователь UNIF ромов?

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
lancuster, есть - ucon64.
Но штука в том, что унф использует как описание кастомного маппера. Формат ты поменяешь, но может оказаться, что маппера в нес формате просто нет для рома.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
lancuster, есть - ucon64.
Но штука в том, что унф использует как описание кастомного маппера. Формат ты поменяешь, но может оказаться, что маппера в нес формате просто нет для рома.
Однако я всё же попробую. Надеюсь, он не на DOS заточен?

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хотел задать вопрос по OneBus. Каким образом в сборниках с этим маппером там располагаются игры? Сплошняком или же раскиданы по частям?
И почему, когда я делал дамп кода и графики, то на nrom эти игры работали, а когда я вырезал кусок целиком вместе с графикой - перестали работать вообще? Может, я что-то не так делаю или заголовок неправильный задал?

Добавлено позже:
Вот архив с вынутыми ромами, если что:
« Последнее редактирование: 23 Ноябрь 2016, 21:07:18 от lancuster »