Поковырявшись обнаружил такую интересную закономерность. Не вся графика ей подчиняется, но кое-что подчиняется.
Идет сжатый кусок. Он заканчивается байтом FF. Потом идут 2 байта (зачем?), потом опять сжатый кусок до байта FF.
IDA дизасмит на Win x32 нормально. Можно и разобраться.
У меня вот какой вопрос. По рому я полазил. Нашел таблицу имен (name table, тайловую карту) в пожатом виде
для начальной заставки. Её начало и конец. Разжалась правильно. А можно ли как-то в отладчике узнать, что
происходит чтение именно с этого смещения в РОМЕ? То есть задача: есть смещение в роме, нужно найти смещение
в памяти. Может есть какие-нибудь алгоритмы?
> а ты посмотрел что в папке IDA/loaders по 2штуки их? *.ldw и *.l64. По-крайней мере те лоадеры, что уменя 32 битные. (хотя может ты из сорса компилил?)
Я не компилил, скачал с какого-то сайта, засунул и забыл. Потом просто через виртуалку разжал, сохранил и все.
Вот видео прохождения демо уровня, только парень создал
Red Falcon под MAC.
http://www.youtube.com/watch?v=_42lhQTY-noМне интересно самому покопать - поковырять. Потому что много интересного узнаешь о создателях-программистах.
> Я про НЕС мало знаю,
Если есть мэппер, как правило 1 банк остается в памяти всегда. Остальные переключаются по ходу.
У меня их всего 6. И все программные (есть еще CHR-ROM, но в случае моего рома, этого нет.
> Насчет FCEUD
Их так много версий, что я путаюсь, где какая. Вот эту я собрал прям из сырцов - fceux214.
Там под все студии есть проекты, под мак и unix.
И все равно нужного функционала не достает! Например, везде в манах пишут - щелкните
правой кнопкой на hex редакторе и выберите Go To Rom Ofsset (или как-то так), но такого
пункта вообще нет, а чем он заменен непонятно.
Почему я не могу посмотреть в том же hex редакторе SPR-RAM?
CPU могу, PPU могу, а SPR-RAM - нет?
Очень много игр в NES пожато именно RLE. Пришлось написать свой просмотрщик - распаковщик.
Могли бы за 10 лет эмуляции такую тулзу внедрить. И много чего не достает в отладочных целях.