[r][i][color=gray][url=http://klimaleksus.narod2.ru/Other/realms/336.txt]#336[/url], 09.04.13[/color][/i][/r] [quote=steeldragon]Вообще, тут всё равно искажений много, что в первом, что во втором случае.[/quote] На чём же остановимся? А так если что – я сводил в Corel Photo-Paint X3. [quote=steeldragon]Вот! Идеально.[/quote] Ладно, согласен. Правда всё равно как-то стрёмно смотрятся абсолютно одинаковый стиль верхней и нижней надписей, но мне это уже не принципиально. MrModez, исходники выложите, вдруг потом что-то захотим изменить (да и вообще, в чём вы работали?) [quote=steeldragon]Вот патч[/quote] А почему старая версия? Есть же http://klimaleksus.narod2.ru/Files/2/SmartPatcher1V2.rar А ведь удачно да, с патчами придумано? Быстро и удобно, можно сразу несколько объединять. Шрифтик неплохо смотрится: http://klimaleksus.narod2.ru/Files/GH/font.jpg [quote=steeldragon]Я тоже не поверил.[/quote] Потрясающе. Разрыв устоев какой-то: [quote=steeldragon](только, это, поставьте как можно большее замедление у эмулятора. Табличка мелькает очень быстро.)[/quote] Ой, да ничего не быстро. Это как раз тот момент «проявления», на котором я тестил изменённые палитры. Да что там палитры, она плевать хотела на изменение всей картинки! Да, вы Колумб. Открыли наконец тайну, [b]как же игра умудряется засунуть все текстуры в окошко 512x512[/b]. Ответ: НИКАК. Идеи насчёт «скрытых данных» меня посещали ещё в тот миг, когда я прочитал в SDK про D-cache «scratch-pad». Это некий килобайт данных, который располагается не в оперативной памяти. Он маппится на другой виртуальный адрес и разрешён для чтения, записи и даже выполнения кода. Он не мелькает в дампах памяти, хотя игра постоянно им пользуется. Зачем? В SDK сказано, что он в пять раз быстрее ОЗУ, но зато в него нельзя читать напрямую с диска (или ещё откуда-то, но ассемблер вправе хозяйничать как захочет). [color=white]Ещё она тайная лазейка для Spyro Con Mensajes Subliminales, но не об этом сейчас…[/color] Я всё собирался про этот кеш отписаться в теме про Взлом, потому что туда как раз можно выгружать строки текста, декодируемые нашим алгоритмом шифрования-сжатия. Я уже всё проверил – на момент отрисовки текста содержимое D-кеша считается «мусором», который не используется и затирается игрой. Следовательно мы можем [i]на время[/i] записать туда что-то – для передачи функции рисования. Как же повезло, что за этот промежуток игра не юзает D-кеш! Кажется, он резко портится при движении игровой камеры в пространстве. Поэтому сохранить туда что-то на долгое время (даже на один фрейм) не получится. Однако использовать как небольшое (1024 байта) хранилище для отрисовки каждой строки в самый раз! Надеюсь нам не понадобятся строки большей длины? Так, о чём это я… Есть ли вероятность, что табличка загружается в D-кеш? Конечно нет. Есть ли вероятность, что существуют другие подобные «внешние» области для хранения информации? Скорее всего. Да, D-кеш не выгружается в 2Мб ОЗУ, но независимо существует в памяти Epsxe, поэтому поменяв адрес в MemGet можно и его вытаскивать. Но хватит про кеш, лучше про дамп. Итак, 2Мб ОЗУ. Меня мучил вопрос, почему какой-нибудь кодозадрот из Sony не выгрузит ассемблерный код во VRAM? Чтобы его нельзя было изменить никакими читами и он не мелькал в дампах памяти? Везде сказано, что CPU не способен напрямую читать VRAM, он может лишь попросить GPU выгрузить в оперативку нужную фреймбуффера. Но я ни разу не слышал, может ли GPU читать напрямую из ОЗУ? Так оказывается, что может! Зачем тогда вообще нужен VRAM? Кажется, чисто из-за скорости. Меня поражало, почему в Spyro1 при нажатии на паузу, во VRAM попадает небольшой скриншот экрана, поверх которого рисуется меню. Ведь он затирает собой текстуры! А игра легко восстанавливает их без обращения к CD. Где же она их хранит в это время? Оказывается, всё до гениального просто – текстуры могут спокойно выгружаться в ОЗУ, загружаться обратно [b]и даже считываться напрямую[/b]! Очень красноречивый скриншот: http://klimaleksus.narod2.ru/Files/GH/dump.jpg Почему мы видим табличку, хотя её текстур нет? Да потому что её текстуры располагаются только в ОЗУ и читаются напрямую. На скорость не особо влияет, потому что рисовать на этот момент игре нужно только эту самую одинокую табличку. Сдампил память и открываю в PGG2 (видели в японской теме мою заплатку для неё– чтобы нормально любые файла открывала?) Там же есть ползунок справа от View – вот и покрутите его с инкрементом примерно по 400. Ну то есть – сначала View на нуле, потом на 400, потом на 800, потом на 1200… И в какой-то миг: http://klimaleksus.narod2.ru/Files/GH/dump.png Есть хорошая новость – она не нарезана, а лежит ровно. И плохая – я без понятия, как она там оказалась… И её нет в EXE! А ещё у неё отсутствуют палитры (32768 цветов). Так что ищ[u]и[/u]те! Теперь через PGG2. Открываете любой субфайл и рассматриваете на предмет наличия сей таблички. …Ох, впарили вы работки. А я хотел и в Тексте и во Взломе отписаться, да новые пробы (от ShellyPes) выложить в Озвучивании, и AceCombat в Японской обсудить…