|
Страница 1 из 1
|
[ Сообщений: 6 ] |
|
Подскажите софт для работы с NES ROM-ами
Автор |
Сообщение |
29 окт 2013, 19:27 |
|
Зарегистрирован: 06 апр 2008, 13:46 Сообщения: 119
|
Решил поковыряться немного во внутренностях игр для NES. Но не хотелось бы изобретать велосипеды. А то я умудрился изучая код написать свои программы для упаковки и распаковки RLE  Подскажите, есть ли софт, который умеет отображать содержимое загруженного двоичного файла так, как это делают HEX-редакторы, только вместо символов ASCII должны отображаться символы из указанного CHR файла? Также, чтобы не создавать отдельные темы, наверняка есть такой софт, но я не нашёл. Есть какой-нибудь консольный или GUI редактор NES файлов, позволяющий, допустим, посмотреть, сколько PRG и CHR секций в дампе, извлечь их, а потом из извлечённых собрать обратно другой NES файл? Я так понимаю, примерно таким образом вытягивают менюшки из многоигровок. Вручную в обычном HEX-редакторе вычислять границы каждой секции очень неудобно. И ещё  Есть ли какие-то готовые оптимизаторы CHR, которым можно было бы скормить пачку NAM файлов (name table), а он бы нашёл, допустим, какие символы из CHR не используются и т.д. Также интересно, есть ли какой-то софт, который позволил бы массово поменять местами символы в CHR, и соответственно автоматически исправить их коды в связанных NAM файлах. Это может быть полезным. Например, я написал немного усовершенствованный RLE, который умеет «упаковывать» не только повторяющиеся символы, но и пачки символов, идущих «по возрастанию» и «по убыванию». Мои name table файлы это упаковывает на процентов 30 лучше. То есть меняя порядок символов в CHR табличке можно получать лучшую степень сжатия. Вот программа, позволяющая менять последовательность символов в CHR файле с автоматическим обновлением связанных NAM файлов была бы очень кстати. Особенно если пойти дальше, и реализовать что-нибудь вроде Хаффмана — в CHR можно будет сразу размещать символы по частоте встречаемости  В принципе, все описанные программы достаточно просты и их можно самому написать, но если уже есть готовые, то зачем изобретать велосипед?
Последний раз редактировалось VEG 29 окт 2013, 21:00, всего редактировалось 2 раз(а).
|
 |
29 окт 2013, 20:50 |
|
Основатель сайта
Зарегистрирован: 21 июл 2007, 15:40 Сообщения: 2232 Откуда: Москва
|
|
 |
31 окт 2013, 21:36 |
|
Зарегистрирован: 14 авг 2009, 21:03 Сообщения: 13
|
VEG писал(а): Подскажите, есть ли софт, который умеет отображать содержимое загруженного двоичного файла так, как это делают HEX-редакторы, только вместо символов ASCII должны отображаться символы из указанного CHR файла?
Также, чтобы не создавать отдельные темы, наверняка есть такой софт, но я не нашёл. Есть какой-нибудь консольный или GUI редактор NES файлов, позволяющий, допустим, посмотреть, сколько PRG и CHR секций в дампе, извлечь их, а потом из извлечённых собрать обратно другой NES файл? Я так понимаю, примерно таким образом вытягивают менюшки из многоигровок. Вручную в обычном HEX-редакторе вычислять границы каждой секции очень неудобно.
Не совсем понял, если ты имеешь ввиду просто просмотр(и редактирование) графики, так их более десятка найдется - тайловые редакторы, например yy-chr. Так вопрос о многоигровках, или просто разрезке - не понимаю что там сложного. Ну если тебе надо 100 ромов разрезать, можешь написать программу, в заголовке же указывается количество. По последнему врядли такое существует, но зачем это надо? Что-ты там пересжимать собрался. 
|
 |
01 ноя 2013, 10:51 |
|
Зарегистрирован: 24 июл 2007, 10:41 Сообщения: 569
|
На NES используются такие трюки как interleave данных. То есть к примеру часть одной палитры может начинаться на середине другой палитры, поэтому общий подход сложно реализовать. Нужно конкретно смотреть для каждой игры.
Например в Bomberman CHR хранится в виде ROM, поэтому его легко менять.
А вот например в Battletoads CHR хранятся в виде запакованных данных, по типу RLE, при этом CHR ROM как такового нет, потому что там VRAM на картридже. А эти CHR динамически на лету распаковываются прямо в VRAM при загрузке.
Там всё делалось на асме, соответственно экономили каждый байт, так что не получится так как ты хочешь. Игры NES это не просто отдельно данные + программа - это всё вперемешку.
|
 |
01 ноя 2013, 15:10 |
|
Зарегистрирован: 06 апр 2008, 13:46 Сообщения: 119
|
Ti_ писал(а): Не совсем понял, если ты имеешь ввиду просто просмотр(и редактирование) графики Нет, я имел в виду просто просмотр содержимого любого файла, только в качестве «шрифта» должен использоваться выбранный CHR. Я уже нашёл такую программу:  Правда, она не очень удобно сделана, но жить можно  Нужно для того, чтобы по-быстрому найти в роме игры хотя бы намёки на текст, сжатые при помощи RLE бэкграунды и даже спрайты. Ti_ писал(а): так их более десятка найдется - тайловые редакторы, например yy-chr. Здесь очень клёвый софт я нашёл. NES Screen Tool, от отечественного разработчика. Автор очень талантлив, у него на сайте много качественных полезностей: http://shiru.untergrund.net/software.shtml Ti_ писал(а): Так вопрос о многоигровках, или просто разрезке - не понимаю что там сложного. Ну если тебе надо 100 ромов разрезать, можешь написать программу, в заголовке же указывается количество. Так я же и писал выше, что ничего сложного, но велосипеды изобретать не хочется. Но похоже, что таки придётся  Ti_ писал(а): По последнему врядли такое существует, но зачем это надо? Что-ты там пересжимать собрался.  Оптимизировать tile set для одного name table умеет NES Screen Tool. Вот хотелось бы такую же функцию, но для пачки name table. Ну, тоже можно самому написать, забавная алгоритмическая задачка, расположить тайлы в таком порядке, чтобы бэкграунды лучше сжимались  org писал(а): На NES используются такие трюки как interleave данных. То есть к примеру часть одной палитры может начинаться на середине другой палитры, поэтому общий подход сложно реализовать. Нужно конкретно смотреть для каждой игры. Это понятно, но не ясно, чему из описанного выше это противоречит  Если в каких-то играх нет секции для CHR — это же не значит, что софт по работе со стандартными CHR секциями в NES файлах не нужен. И такой софт есть.
|
 |
01 ноя 2013, 17:00 |
|
Зарегистрирован: 14 авг 2009, 21:03 Сообщения: 13
|
VEG писал(а): Оптимизировать tile set для одного name table умеет NES Screen Tool. Вот хотелось бы такую же функцию, но для пачки name table. Ну, тоже можно самому написать, забавная алгоритмическая задачка, расположить тайлы в таком порядке, чтобы бэкграунды лучше сжимались  Да будет забавно, особенно если на один и тот же тайлсет скажем будет десяток разных nametables 
|
 |
|
|
Страница 1 из 1
|
[ Сообщений: 6 ] |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|