Текущая версия - 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 байта.