|
Перевод Spyro 3: Взлом и программы
|
|
| aleksusklim | Сообщение # 1 Воскресенье, 26.06.2011, 14:19 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Работа с текстовой частью перевода введётся на code.google.com/p/spyro3-rus, обсуждение перевода (а не взлома) В темеПеревод Spyro 3: Текст В этой теме происходит обсуждение перевода, а также создание софта для потрошения игры. Важные сообщения: Структура WAD-файлов Спец. символы и File Paint 1 | Извлечение и добавление текста | О звуке | В продолжение о звуке | Вариант перевода Buzz's Dungeon и Midday Gardens
Сообщение отредактировал aleksusklim - Среда, 29.04.2015, 19:51 |
| |
| |
| steeldragon | Сообщение # 361 Воскресенье, 05.05.2013, 18:01 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата (DrWho) Если я не ошибаюсь, при перерисовке Incomniac Games были некоторые проблемы у вас. Цитата (steeldragon) Табличка хранится в 006 субфайле. В смысле, вторая копия таблички. Которая и была моей проблемой. Еще есть предложения?
|
| |
| |
| MrModez | Сообщение # 362 Воскресенье, 05.05.2013, 18:11 |
Дракон Подросток
 Житель Города
«611»
Где: Не в городе Драконов
|
Ребят, не ленимся, заходим в соседнюю тему, оцениваем мои минусовки к катсценам. :)
I'm MrModez Мои новые треки в стиле Спайро: Desolate Forest Skate Park - Spyro Custom Track Lofty Farms - Spyro Custom Track Gleaming Coast - Spyro Custom Track
|
| |
| |
| DrWho | Сообщение # 363 Понедельник, 06.05.2013, 00:38 |
Мудрый Дракон
 Почетный Житель
«1371»
Где: Не в городе Драконов
|
Цитата (aleksusklim) http://i.piccy.info/i7....rip.png Мне почему-то сначала показалось, что это так по монитору ударили и результат заскринили.Добавлено (06.05.2013, 00:38) --------------------------------------------- Чуть не забыл: Цитата (aleksusklim) GH образа SYSTEM.CNF А зачем вы использовали от GH - файл SYSTEM.CNF?
|
| |
| |
| aleksusklim | Сообщение # 364 Понедельник, 06.05.2013, 01:00 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Цитата (DrWho) Мне почему-то сначала показалось, что это так по монитору ударили и результат заскринили.
LOL !
Цитата (DrWho) А зачем вы использовали от GH - файл SYSTEM.CNF?
Вы хоть читали его содержание? Перетащите его в окно Блокнота!
P.S А вообще, просто у парадокса был PSX.EXE в качестве загрузчика, но я решил ему не доверять такое ответственное дельце.
Есть! Я снял копию со всего своего сайта http://klimaleksus.narod2.ru/
Вернее всю файловую часть – ветку ./Files/ и частично ./site/ – всё кроме HTML-костяка. Плюс почти всё из ./Other/, но корень пока не отзаркалил.
Встречайте мой новый домен http://klimaleksus2.ucoz.ru/ ! Например, наш список проб:
http://klimaleksus2.ucoz.ru/Files/SOUNDS/
И естественно, пополняться он будет ТОЛЬКО по новой ссылке. Причём я пока даже не могу об этом написать в старой копии, ибо нет доступа на запись…
А цифра «2» в названии теперь специально – чтобы длина строки любой ссылки осталась прежней.
Короче, если вдруг весь мой старый сайт накроется, просто поменяйте «klimaleksus.narod2» на «klimaleksus2.ucoz» и всё будет как прежде!
Сообщение отредактировал aleksusklim - Понедельник, 06.05.2013, 01:21 |
| |
| |
| DrWho | Сообщение # 365 Понедельник, 06.05.2013, 01:22 |
Мудрый Дракон
 Почетный Житель
«1371»
Где: Не в городе Драконов
|
Цитата (aleksusklim) Вы хоть читали его содержание? Перетащите его в окно Блокнота! О, действительно. Просто я где-то вычитал, что он обычно идентичен в PS1 и PS2. Но глянув, немного иная структура: PS2: BOOT2 = cdrom0:\SLUS_206.84;1 VER = 1.01 VMODE = NTSC PS1: BOOT = cdrom:\SCUS_944.67;1 TCB = 4 EVENT = 16 STACK = 801FFFF0
Но все равно: почему тогда вы не использовали из обычного пиратского перевода (к примеру от Вектора)? Он идентичен и в обычной версии, и в GH.
Цитата (aleksusklim) P.S А вообще, просто у парадокса был PSX.EXE в качестве загрузчика, но я решил ему не доверять такое ответственное дельце! Сборник не ParaDoX составлял, а какая-то шарашка. К сожалению - неизвестно какая. ParaDox крякнули только 3ю часть. Кстати, можно по сути решить сейчас проблему с зависанием во 2й части: нужно искать ближайщий уровень в 3м мире и там должно быть зависание. По-моему уровень называется болото, но я не уверен. Надо ковырять эксешник, отвечающий за запуск 2й части и там смотреть. Проблема - неправильный опостров. Нужно вставлять именно свой (по крайней мере я сравнил с GH 3й части) - на стандартной клавиатуре он должен совпасть. И проверять образ. Ну, либо в крайнем случае могу кинуть SCUS'ку без такого зависания. К чему я сказал о 2й части? Да просто к тому, что когда оригинальные названия миров в 3й части переносил в SCUS, я скопировал из интернета названия уровней. И что я получил? Подходил к уровням животных - зависание. Это то самое, которое происходит во 2й части.
Сообщение отредактировал DrWho - Понедельник, 06.05.2013, 01:27 |
| |
| |
| steeldragon | Сообщение # 366 Понедельник, 06.05.2013, 18:45 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата (aleksusklim) Я сделаю и конвертор и деконвертор, если только пойму, как именно считывать и совмещать полоски… У меня есть на этот счёт кое-какие соображения... Изображение "плывёт" именно там, где абсолютно чёрный фон, без эффектов, ведь так? Вот эти сине-зелёно-жёлтые полосы, с другой стороны - явно не графическая информация. Что, если HEX значения этих желто-зелёных пикселей указывают, сколько чёрного добавить перед очередным кусочком изображения? (Про сине-зелёную полосу по центру рискну предположить, что это что-то вроде проверочных данных. Игра просто не показывает изображение, если в нём есть изменения. По крайней мере, у меня так, надо бы ещё несколько раз проверить...)
|
| |
| |
| aleksusklim | Сообщение # 367 Среда, 08.05.2013, 01:23 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Готово!
Я взломал кодировку «мясорубки» таблички и любой похожей графики.
Расшифровать могу однозначно, а вот собрать обратно пока не пробовал, но кажется, что будет бесконечно много вариантов, надо убедится, что игра примет любой.
Итак, формат: 0) Переходим к началу исходного файла. 1) Считываем очередные два байта. 2) Назовём первый NUL, а второй CPY. 3) Удваиваем оба. 4) Пишем в выходной файл NUL нулей. 5) Копируем из исходного файла в выходной CPY байт. 6) Переходим к пункту 1 из текущей позиции. 7) Выйти из цикла нужно, когда будет достигнут конец исходного файла.
Получается, что данные сплошь пронизаны индексами, которые не могут отстоять друг от друга более чем на 510 байт (255*2).
Естественно, написал конвертер.
Поскольку размеры конечного файла не обязаны быть 512 пикселей по ширине, нужен ещё метод принудительного раздвигания строчек, чтобы открывать в PGG.
Однако нам повезло, и табличка имеет ширину ровно 512, так что выходной файл моего алгоритма можно напрямую подавать на вход PGG2, как если бы это был субфайл с тайлами.
Пока единственный глюк – табличка как бы сдвинута, её будет нужно разрезать и переставить части местами, а именно: http://klimaleksus2.ucoz.ru/Files/GH/logo_23.png
Скорее всего, табличка именно так и располагается в ресурсах. Если найдёте другую графику, пропущенную через мясорубку, то обязательно проверьте мою программу и на ней. А вот собственно и программа: http://klimaleksus2.ucoz.ru/Files/2/strip.rar
Перетащите шестой субфайл на «strip.bat», а полученный .new на PGG.exe (лучше уже с заплаткой)
И подумайте, как именно будем конвертить наше лого обратно. Похоже, понадобится ещё одна программа, которая сделает все ПОЧТИ чёрные пиксели абсолютно чёрными, чтобы наша кучка полосок не превзошла по объёму оригинальную, а ведь чёрного цвета у нас явно меньше…
А насчёт изменения размеров и добавления пустоты – если картинка меньше 512, то можно будет её раздвинуть, зная оригинальный размер (через TileMolester или мой PictureViewer.pas) – вызовите strip.exe с такими параметрами: «исходный файл» «целевой файл» «оригинальная ширина» «новая ширина»
Сообщение отредактировал aleksusklim - Среда, 08.05.2013, 01:28 |
| |
| |
| DrWho | Сообщение # 368 Среда, 08.05.2013, 02:13 |
Мудрый Дракон
 Почетный Житель
«1371»
Где: Не в городе Драконов
|
aleksusklim, а золотые буквы на порталах как будете реализовывать? Ведь там русскими буквами не получится сделать это дело. Названия уровней привязаны к SCUS файлу (другими словами названия миров в SCUS'ке идентичны названию на порталах), то есть надо либо отвязку делать (что означает, надо глубоко-глубоко копать, к тому же не факт, что образ станет корректно работать после этого), либо оставлять это дело как есть. Что думаете на этот счет?
|
| |
| |
| steeldragon | Сообщение # 369 Среда, 08.05.2013, 16:49 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата (aleksusklim) Если найдёте другую графику, пропущенную через мясорубку, то обязательно проверьте мою программу и на ней. https://dl.dropboxusercontent.com/u/34707934/Games/etc/s3translation/SCEA.png Файл 003, надпись "SCEA Presents". "Presents" слегка наклонено. https://dl.dropboxusercontent.com/u....sal.png Файл 004, лого Universal. Наклонено и наблюдается какое-то раздвоение. https://dl.dropboxusercontent.com/u....ext.png Файл 005, текст возле этого лого. Некоторые строчки опять наклонены. Наклонение происходит, как я понял, из-за несоответствия ширины, но почему некоторые строчки в одном файле нормальные, а некоторые - наклонённые?
|
| |
| |
| aleksusklim | Сообщение # 370 Четверг, 09.05.2013, 19:10 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Цитата (DrWho) aleksusklim, а золотые буквы на порталах как будете реализовывать? Ведь там русскими буквами не получится сделать это дело. Названия уровней привязаны к SCUS файлу (другими словами названия миров в SCUS'ке идентичны названию на порталах), то есть надо либо отвязку делать (что означает, надо глубоко-глубоко копать, к тому же не факт, что образ станет корректно работать после этого), либо оставлять это дело как есть. Что думаете на этот счет? Come on… Всё уже давно решено. Не хочу сейчас всё-всё объяснять, ибо steeldragon знает, а вы никак (?) помочь не сможете в этом. Просто поверьте, что всё в порядке, дела стоят только за поиском букв и конвертером моделей.
Цитата (steeldragon) почему некоторые строчки в одном файле нормальные, а некоторые - наклонённые?
Ошибка в программе.
Исправил! Всё теперь вообще чётко работает.
Плюс, написал конвертор обратно в игровой формат. Сам не прожигал, но уверен, что будет работать.
Ну алгоритм, наверное, понятно какой – искать нули и данные; пока набираются нули читать дальше, если стало больше 255 – слить в файл FF00; если пошли данные, то сохранять их отдельно, если стало больше 255 или встретился очередной ноль, то записать в файл кол-во нулей, за ним кол-во данных и дальше слить сами 510 байт данных. До тех пор, пока не кончится исходный файл, потом слить остаток и вписать два ноля (0000).
Интереснее, что именно считать нулями. Если истинные нули, то любая закодированная и расшифрованная графика не изменится, ибо такое сжатие без потерь. Но в целях экономии места и более сильной архивации, я предусмотрел некий порог, цвета ниже которого считаются чёрными.
Способа два – среднее арифметическое и максимальный канал.
Первый – суммируются все три канала, делятся на три и округляются в большую сторону, затем сравниваются с порогом, и если он строго меньше, то не считаются нулями. Второй – вычисляется максимальный из трёх каналов, сравнивается с порогом, и не считается нулём если строго больше его.
Каналы декодируется известным методом «GGGR-RRRR = 0BBB-BBGG». Надеюсь я ни в чём не ошибся, ведь без специальных проверок правильность «порога» не выявляется, лучше взгляните на код: Код … stream.ReadBuffer(arr,2);a1:=arr[0];a2:=arr[1]; r:=a1 and 31; g:=(a1 shr 5)or((a2 and 3) shl 3); b:=(a2 shr 2) and 31; if m=0 then begin z:=(r+g+b)/3;i:=Ceil(z); end else begin i:=r;if g>i then i:=g; if b>i then i:=b; end; if i<=s then begin …
Короче, теперь всё чётко извлекается, даже без разрывов или сдвигов: http://klimaleksus2.ucoz.ru/Files/PABCDistr.zip
Проверять удобнее всего через Picture Viewer, для него всё ещё нужен PascalABC: http://klimaleksus2.ucoz.ru/Files/2/strip.png
Сделал новую версию, исправив незначительные ошибки. Код в архиве вместе с новой версией strip: http://klimaleksus2.ucoz.ru/Files/2/strip2.rar
Интерфейсы изменились: «decode.bat» – раскодировать файл (субфайл); «encode.bat» – закодировать обратно без потери качества; «compress.bat» – установить степень сжатия и закодировать; «find.bat» – закодировать файл 19 раз с различными уровнями сжатия.
Причём на «decode» и «encode» можно перетаскивать сразу несколько файлов!
Нашу графику пропустите через «encode», и если размер превышает оригинальный, но попробуйте «find» и выберите из всех меньших оригинала файл с наибольшим размером.
Обнаружилась проблема: размеры логотипа из 006 и из 007, как я понял, различны. Новый: 512х149.
Что будем делать?
|
| |
| |
| steeldragon | Сообщение # 371 Четверг, 09.05.2013, 22:14 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата (aleksusklim) Просто поверьте, что всё в порядке, дела стоят только за поиском букв и конвертером моделей. Вот только абсолютно непонятно, где эти буквы искать. (Может быть, в начале 009 файла? Или же они вообще дублируются на каждый уровень?) За примерно неделю поисков я узнал только назначение 001 субфайла - хранение анимаций Спайро и возможно, его же модели. Кто хочет убедиться - занулите промежуток примерно с 90000 по 105000 (в десятичной), получается весьма живописный результат. Также в конце файла есть еще какие-то данные, но игра не замечает их исчезновения.
Цитата (aleksusklim) Обнаружилась проблема: размеры логотипа из 006 и из 007, как я понял, различны. Новый: 512х149.
Что будем делать? Обрежем, ужмём... А может, игра примет и файл побольше размером?
Цитата а ведь чёрного цвета у нас явно меньше… Не то чтобы меньше - у меня ощущение, что его там нет вообще...
Цитата (aleksusklim) Плюс, написал конвертор обратно в игровой формат. Чегой-то на оригинал вывод программы не похож... Сильно не похож...
Цитата (aleksusklim) Но в целях экономии места и более сильной архивации Самый больший файл получается по "стандартному" методу, 57 КБ. Самый маленький - "+9", 37 КБ. ... Вставил в игру самый крупный. Результат... ну, он есть... https://dl.dropboxusercontent.com/u....e-1.jpg Кодировал вот это изображение: https://dl.dropboxusercontent.com/u....ew3.bmp Да, знаю, он не соответствует по размеру... Завтра вырежу кусочек и попробую ещё раз.
...Закодировал оригинал. Результат - такой же, я уже скармливал энкодеру и 24-битные, и 8-битные BMP разных размеров, но результат один - на экране какая-то непонятная кашица. 8 - бит: https://dl.dropboxusercontent.com/u....e-2.jpg 24 - бит: https://dl.dropboxusercontent.com/u....e-3.jpg Ещё и перевёрнутая.
Сообщение отредактировал steeldragon - Пятница, 10.05.2013, 14:35 |
| |
| |
| aleksusklim | Сообщение # 372 Понедельник, 13.05.2013, 19:18 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
http://spyro3-rus.googlecode.com/svn....dia.htm
!!
Как вам?Добавлено (13.05.2013, 19:18) ---------------------------------------------
Цитата (steeldragon) но результат один - на экране какая-то непонятная кашица
КАК!? Каким местом вы её прожигали!?
Блин, я всё сделал и нормально! Даже ужатую на «+5»!
Ровно так, как должно быть.
Почему у вас криво?
Вам что (на выбор): алгоритм, скриншот, патч?
|
| |
| |
| steeldragon | Сообщение # 373 Понедельник, 13.05.2013, 19:19 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата (aleksusklim) Как вам? Ничего так... Признаю, это гораздо удобнее отдельной программы не-пойми-где.
Кстати, как видно на этом скриншоте, порезанная табличка может быть и больше оригинала.
Цитата (aleksusklim) КАК!? Каким местом вы её прожигали!? Блин, я всё сделал и нормально! Даже ужатую на «+5»!
Ровно так, как должно быть.
Почему у вас криво?
Вам что (на выбор): алгоритм, скриншот, патч? Возможно, я что-то не так сделал? 1. Закодировал оригинал, 8-битный. 2. Вставил с помощью AWM. 3. Поменял WAD с помощью RipBIN.
Тогда, если можно, алгоритм.
Сообщение отредактировал steeldragon - Понедельник, 13.05.2013, 19:23 |
| |
| |
| aleksusklim | Сообщение # 374 Понедельник, 13.05.2013, 20:45 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Цитата (steeldragon) Закодировал оригинал, 8-битный.
Come on...
*Декодите 006. *Перетаскиваете на PGG.exe. *Get/Put, ну вы поняли. *Сохраняете. *Энкодите через Find.bat и берёте как я сказал. *Замещаете ЦЕЛИКОМ оригинальный 006, остальное -- нулями.
|
| |
| |
| steeldragon | Сообщение # 375 Понедельник, 13.05.2013, 20:48 |
Старейшина Драконов
 Редактор
«422»
Где: Не в городе Драконов
|
Цитата (aleksusklim) Come on... *Декодите 006. *Перетаскиваете на PGG.exe. *Get/Put, ну вы поняли. *Сохраняете. *Энкодите через Find.bat и берёте как я сказал. *Замещаете ЦЕЛИКОМ оригинальный 006, остальное -- нулями. !!!... Я почему-то думал, что на входе принимает исключительно BMP... Почему - сам не знаю...
|
| |
| |