Насчёт сжатой графики, <GD>:
По адресу hC3E3E-hC3E87 расположены (как бы блоком) сжатые тайлы букв P,R,E,S,T,A и рисунка переднего плана (листья) - они отображаются на заставке с надписью "Press Start"...
Вот некоторые экспериментальные факты:
а) Изменение первого байта (по адресу hC3E3E) на +-1 очень сильно изменяет в игре надпись и листья.
б) Далее идут несколько байтов, изменение которых на +-1 незначительно изменяет некоторые буквы (располагает пиксели по горизонтали)
в) Далее то же самое, что и а) - один байт - изменение его прилично искажает тайлы.
г) То же самое, что и б) и т. д...
Если же изменить значения всех байтов этого блока на AA (b10101010) либо CC (b11001100) или т. п., то в памяти вместо надписи и рисунка переднего плана будет отображаться ряд вертикальных полосок (xbpp?)
Ещё: выше блока расположены подозрительно упорядоченные байты: 90 91 92 00 93 94 95 96 97 98 99 9A 04 9B 9C 9D 9E 9F 1F 70 A0 A1 00 A2 A3 A4 A5 A6 A7 A8 A9 03 AA AB AC AD AE AF (дерево Хаффмана?), но их изменение уже влияет на предыдущий блок - логотип Nintendo...
Ниже блока тоже есть такие байты, только не успел пока с ними разобраться)
Попробуй разобраться с этими байтами, разложи на биты, проанализируй, поэкспериментируй, в общем, нужно узнать, какой алгоритм используется для сжатия графики в роме...
Думаю, здесь применяется один алгоритм сжатия - узнать бы какой - тогда и декомпрессор/преобразователь графики в 1-2bpp (и наоборот) несложно будет написать, и графику всю сжатую вытащить
Отредактировано ReCom (2008-05-31 22:36:13)