Форум Эму-Россия
http://forum.emu-russia.net/

Подскажите софт для работы с NES ROM-ами
http://forum.emu-russia.net/viewtopic.php?f=214&t=5037
Страница 1 из 1

Автор:  VEG [ 29 окт 2013, 19:27 ]
Заголовок сообщения:  Подскажите софт для работы с NES ROM-ами

Решил поковыряться немного во внутренностях игр для 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 можно будет сразу размещать символы по частоте встречаемости :)

В принципе, все описанные программы достаточно просты и их можно самому написать, но если уже есть готовые, то зачем изобретать велосипед?

Автор:  Eevon [ 29 окт 2013, 20:50 ]
Заголовок сообщения:  Re: Подскажите софт для работы с NES ROM-ами

Вот тут посмотри. Может что и пригодится:
http://www.zophar.net/utilities/hexutil.html
http://www.zophar.net/utilities/nesutil.html
http://www.zophar.net/utilities/nesdev.html

Автор:  Ti_ [ 31 окт 2013, 21:36 ]
Заголовок сообщения:  Re: Подскажите софт для работы с NES ROM-ами

VEG писал(а):
Подскажите, есть ли софт, который умеет отображать содержимое загруженного двоичного файла так, как это делают HEX-редакторы, только вместо символов ASCII должны отображаться символы из указанного CHR файла?

Также, чтобы не создавать отдельные темы, наверняка есть такой софт, но я не нашёл. Есть какой-нибудь консольный или GUI редактор NES файлов, позволяющий, допустим, посмотреть, сколько PRG и CHR секций в дампе, извлечь их, а потом из извлечённых собрать обратно другой NES файл? Я так понимаю, примерно таким образом вытягивают менюшки из многоигровок. Вручную в обычном HEX-редакторе вычислять границы каждой секции очень неудобно.

Не совсем понял, если ты имеешь ввиду просто просмотр(и редактирование) графики, так их более десятка найдется - тайловые редакторы, например yy-chr.

Так вопрос о многоигровках, или просто разрезке - не понимаю что там сложного. Ну если тебе надо 100 ромов разрезать, можешь написать программу, в заголовке же указывается количество.

По последнему врядли такое существует, но зачем это надо? Что-ты там пересжимать собрался. :)

Автор:  org [ 01 ноя 2013, 10:51 ]
Заголовок сообщения:  Re: Подскажите софт для работы с NES ROM-ами

На NES используются такие трюки как interleave данных. То есть к примеру часть одной палитры может начинаться на середине другой палитры, поэтому общий подход сложно реализовать. Нужно конкретно смотреть для каждой игры.

Например в Bomberman CHR хранится в виде ROM, поэтому его легко менять.

А вот например в Battletoads CHR хранятся в виде запакованных данных, по типу RLE, при этом CHR ROM как такового нет, потому что там VRAM на картридже. А эти CHR динамически на лету распаковываются прямо в VRAM при загрузке.

Там всё делалось на асме, соответственно экономили каждый байт, так что не получится так как ты хочешь.
Игры NES это не просто отдельно данные + программа - это всё вперемешку.

Автор:  VEG [ 01 ноя 2013, 15:10 ]
Заголовок сообщения:  Re: Подскажите софт для работы с NES ROM-ами

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 файлах не нужен. И такой софт есть.

Автор:  Ti_ [ 01 ноя 2013, 17:00 ]
Заголовок сообщения:  Re: Подскажите софт для работы с NES ROM-ами

VEG писал(а):
Оптимизировать tile set для одного name table умеет NES Screen Tool. Вот хотелось бы такую же функцию, но для пачки name table. Ну, тоже можно самому написать, забавная алгоритмическая задачка, расположить тайлы в таком порядке, чтобы бэкграунды лучше сжимались :)

Да будет забавно, особенно если на один и тот же тайлсет скажем будет десяток разных nametables :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/