[r][i][color=gray][url=http://klimaleksus.narod2.ru/Other/realms/204.txt]#204[/url], 02.11.12[/color][/i][/r] Пытался найти модели букв в Spyro3. Сначала попробовал написать на Делфи прогу, которая по известным свойствам найдёт похожие модели в файлах или дампе ОЗУ игры. А свойства такие: – Первый байт < 128 и >0; – Второй тоже >0 и возможно < 128; – Четвёртый байт равен 255; – Три адреса расположены последовательно и вплотную (разница между вторым адресом и первым минус «значение первого байта, умноженное на три» отличается от нуля не больше, чем на 4) – Адреса делятся на четыре без остатка; – Нет одинаковых вершин (тройки координат различны) – Нет одинаковых полигонов; – Перед нормалями нулевой байт; – Полигоны используют все имеющиеся вершины (нет лишних) – Второй указатель показывает на 7F-7F-7F-00; – У полигонов первый бит равен 1, а второй нулю; 31 и 32 тоже нулю. – Опционально, адреса бывают абсолютные (но минус 2147483648) Я получал список смещений, по которым соблюдались все (или несколько) заданные правила (в Spyro1). Затем кастовал его на дапм Spyro3. И знаете, что? Ничего. [b]Я не нашёл ни одной похожей модели![/b] Не понимаю, в чём проблема… Тогда я попытался в WinHex вручную отталкиваться от 7F-7F-7F-00 и посмотреть на все вхождния. Их оказалось не очень много (по счётчику – ~250, но часто подряд). Некоторые абсолютно не модели, потому что повторяются несколько раз, имея нули между собой. Другие же по смыслу очень похожи, но данные идут по-другому. Ниже нулевые столбцы повторяются два раза – «XX-XX-XX-00=XX-XX-XX-00»: http://klimaleksus.narod2.ru/Files/STARS/7F_1.png Хотя по нашей структуре первые четыре байта должны быть существенны, а ноль после них: «XX-XX-XX-XX=00-XX-XX-XX». Я попробовал грохнуть эти данные, заменив на «simulate encrypted data». Игра отреагировала плохо, часто вылетала, а GPU сходил с ума: http://klimaleksus.narod2.ru/Files/STARS/7F_2.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_3.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_4.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_5.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_6.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_7.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_8.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_9.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_10.jpg Можно заметить, что остались объекты, которые не пользуются текстурами, а покрываются монотонным цветом: алмазы, Спаркс, Зоя, золотые буквы.) Затем я принялся менять данные выше блока 7F-7F-7F-00, где должны быть «помехоустойчивые» координаты вершин. Всё верно, игра приняла. Но это были не модели, а МИР! Я «подпортил» части 3D пространства: http://klimaleksus.narod2.ru/Files/STARS/7F_11.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_12.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_13.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_14.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_15.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_16.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_17.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_18.jpg Глюки, естественно, были нематериальны. Ещё я поискал строку 7F-7F-7F-00 в дампе Spyro1. И тоже нашёл подобные части мира. Модифицировал их и получил идентичный эффект: http://klimaleksus.narod2.ru/Files/STARS/7F_19.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_20.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_21.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_22.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_23.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_24.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_25.jpg В дампе также были в конце и «наши» модели: http://klimaleksus.narod2.ru/Files/STARS/7F_26.jpg http://klimaleksus.narod2.ru/Files/STARS/7F_27.jpg Но вот нормальные «наши» модели в Spyro3 я так и не обнаружил. Есть предположение, что из них удалена фигня 7F-7F-7F-00, а адреса устроены иначе, поэтому я ничего и не нашёл. А ещё я так и не понял, за что отвечает 001.bin, извлечённый из 009 субфайла Spyro1 ENG. Там странные данные, часто имеющие области «7C». В памяти располагаются точно так же: http://klimaleksus.narod2.ru/Files/STARS/7F_0.png Похожие вещи встречаются и в дампах Spyro3. Причём я коцал их и в той и в той игре, но либо не замечал [i]никакого[/i], либо эмулятор резко вылетал (скорее всего, тогда я задевал указатели). Я ломал килобайты данных, но игре было плевать – я совершенно не понимаю, за что же они отвечают. Кстати, в Epsxe на софтовом плагине есть «debug mode», который если поставить вместе со «stretch to full window size», то определённая в «key configuration» последняя кнопка будет отображать весь VRAM вместо игрового окна. Так можно видеть имеющиеся текстуры или отслеживать глюки GPU.