| Разработка и ромхакинг > Ромхакинг и программирование |
| NESseparator - выдирание игр из многоигровки NES для новичков! |
| (1/2) > >> |
| Guyver(X.B.M.):
Текущая версия - 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 байта. |
| s1nka:
Guyver(X.B.M.), спасибо за софтину. Полезная штука. |
| Guyver(X.B.M.):
Обновил немного. Добавил интервал, который будет пропущен после 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% найдём код в роме. - добавил загрузку кода и графики из файлов на компьютере. - добавил мультизагрузку кода и графики. - добавил перемещение кода и графики по списку. |
| lancuster:
Блин, такое объяснение... Я выяснил, что в Action 52 игры в среднем весят по 40 килобайт. И что это мне даёт?.. |
| CaH4e3:
--- Цитата: lancuster от 20 Февраль 2015, 20:48:00 ---Блин, такое объяснение... Я выяснил, что в Action 52 игры в среднем весят по 40 килобайт. И что это мне даёт?.. --- Конец цитаты --- это тебе дает исчерпывающую информацию, сколько кода и сколько графики в каждой игре. используй мозг, если он есть |
| lancuster:
Action 52 не дал себя распаковать. Видать, прога действительно сырая. CaH4e3, для таких манипуляций (тем более для новичков в ромхакинге) - должны быть хоть какие-то наглядные пособия, видеоуроки. И не нужно сразу обвинять в недостатке мозгов, если программа ещё "зеленая", а откуда что брать - новичкам пока неизвестно. Научите сначала на простых примерах, а потом уж ругайте. |
| krocki:
В принципе выгледит по технологии памяти разбиение ромов. Это уже что-то... ^_^ |
| Grongy:
--- Цитата ---Action 52 не дал себя распаковать. Видать, прога действительно сырая. --- Конец цитаты --- :facepalm: А ничего, что некоторые игры могут использовать общую графику, звук и прочие составляющие? А если учесть криворукость программистов, они вообще могут быть неразделимы. |
| lancuster:
Хорошо. А Elf Load кто-нибудь может вынуть? 200-in-1_-_Elfland_(Unl)[].rar Я предполагаю, что ром этой игры весит 40 килобайт. |
| CaH4e3:
--- Цитата: lancuster от 21 Февраль 2015, 01:34:30 ---Action 52 не дал себя распаковать. Видать, прога действительно сырая. CaH4e3, для таких манипуляций (тем более для новичков в ромхакинге) - должны быть хоть какие-то наглядные пособия, видеоуроки. И не нужно сразу обвинять в недостатке мозгов, если программа ещё "зеленая", а откуда что брать - новичкам пока неизвестно. Научите сначала на простых примерах, а потом уж ругайте. --- Конец цитаты --- причем тут прога, она тупо делит ром на куски, это можно делать любым другим способом и также собирать обратно. тысяча программ режут файлы кусками и сливают обратно. надо понимать, что есть игры, засунутые в искусственные многоигровки, каждая сама по себе, о других ничего не знает, так что если ее отделить от остальных, будет работать также, а есть многоигровки, написанные целиком как одна игра с множеством разных подыгр. Ты не можешь ничего оттуда выдрать тупым разделением, потому что --- Цитата: Grongy от 21 Февраль 2015, 05:25:57 ---:facepalm: А ничего, что некоторые игры могут использовать общую графику, звук и прочие составляющие? они вообще могут быть неразделимы. --- Конец цитаты --- это не криворукость программистов, это так написана игра, которая называется "многоигровка экшон 52"... 200в1 из той же серии, там кажадая игра хачена так, чтобы влезать в стркутуру многоиргровки и под ее управлением и маппером. вырезать оттуда простым делением ничего нельзя. Добавлено позже: --- Цитата: lancuster от 21 Февраль 2015, 12:02:02 ---Хорошо. А Elf Load кто-нибудь может вынуть? 200-in-1_-_Elfland_(Unl)[].rar Я предполагаю, что ром этой игры весит 40 килобайт. --- Конец цитаты --- предполагать ты можешь сколько угодно, только непонятно, на чем такие предположения строятся лол |
| lancuster:
--- Цитата ---200в1 из той же серии, там кажадая игра хачена так, чтобы влезать в стркутуру многоиргровки и под ее управлением и маппером. вырезать оттуда простым делением ничего нельзя. --- Конец цитаты --- Хорошо. А есть программа (не на DOS), которая сможет перебить маппер, чтобы можно быть и на телефоне в эту многоигровку сыграть?.. |
| black jaguar:
правда. затюкали человека. назовите тогда тему "программа - разбивалка любых файлов на мелкие. только для тру хацкеров" :neznayu: а потом люди жалуются, что на почту приходят - а там на них орут по любому вопросу или тут каждый себе и машину чинит и сам себе хлеб из деревенских колосьев делает вручную? ну чтобы на все руки мастер |
| krocki:
Блин! Автор же сказал прога сырая, по этому больше ручками приходится работать. <_< |
| CaH4e3:
а я о чем тут говорю лол нет такой программы, которая за тебя все вообще будет делать, ручками что-то тоже делать приходится... кому надо - делает, остальные хоят и ноют, чтобы им кто-то сделал |
| lancuster:
Тогда можно было и не писать "для новичков". Новичок в ромхакинге вообще не знает таких тонкостей. |
| gotten:
Так у тебя запросы нелепые, из разряда сделайте мне из компьютерной игры psp игру. Какие еще тонкости? |
| lancuster:
--- Цитата: gotten от 22 Февраль 2015, 01:12:06 ---Так у тебя запросы нелепые, из разряда сделайте мне из компьютерной игры psp игру. Какие еще тонкости? --- Конец цитаты --- Да самые обыкновенные. Вместо того, чтобы дать понятный ответ, на что рассчитывать, используя данную программу, что она может и чего не может - я вначале должен был выслушать эту кучу "лол-комментов", а затем уж - правду-матку. Разве так можно с людьми?.. |
| blackbird_ru:
lancuster, я тебе писал все нужные ссылки. Прочитал бы ты всё, понял бы, что программ, которые по одному клику могут менять маппер - не существует и не может существовать. Как и универсального выдирателя игр из многоигровок. |
| blackbird_ru:
И да, твоя многоигровка в формате унф, а не нес. Поэтому тупая обрезка в проге не поможет, там формат другой. |
| lancuster:
--- Цитата: blackbird_ru от 22 Февраль 2015, 09:16:56 ---lancuster, я тебе писал все нужные ссылки. Прочитал бы ты всё, понял бы, что программ, которые по одному клику могут менять маппер - не существует и не может существовать. Как и универсального выдирателя игр из многоигровок. --- Конец цитаты --- Ну, это я понял. Но я читал, что есть какая-то утилита, которая дампит ромы под определенные мапперы для записи на флэш-карик. Однако, к сожалению, её не так просто найти. :( Добавлено позже: --- Цитата: blackbird_ru от 22 Февраль 2015, 09:24:57 ---И да, твоя многоигровка в формате унф, а не нес. Поэтому тупая обрезка в проге не поможет, там формат другой. --- Конец цитаты --- Извини за глупый вопрос, но... Есть ли преобразователь UNIF ромов? |
| Навигация |
| Главная страница сообщений |
| Следующая страница |