Воскресенье | 22.12.2024 |08:55
Приветствую Вас Гость Мира Спайро | RSS
Модератор форума: nihonjin, aleksusklim, alteya, Томас  
Перевод Spyro 3: Взлом и программы
aleksusklimСообщение # 1 Воскресенье, 26.06.2011, 14:19
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Работа с текстовой частью перевода введётся на code.google.com/p/spyro3-rus, обсуждение перевода (а не взлома) В темеПеревод Spyro 3: Текст
В этой теме происходит обсуждение перевода, а также создание софта для потрошения игры.
Важные сообщения: Структура WAD-файлов Спец. символы и File Paint 1 | Извлечение и добавление текста | О звуке | В продолжение о звуке | Вариант перевода Buzz's Dungeon и Midday Gardens


Сообщение отредактировал aleksusklim - Среда, 29.04.2015, 19:51
 
aleksusklimСообщение # 526 Вторник, 23.06.2015, 00:29
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Смотрите: http://txti.es/
Наткнулся случайно.

Позволяет создавать свои странички с простейшей вики-разметкой (детали пока не проверял).
Адрес страницы можно задать (например, использовать свой псевдоним).

Пароль редактирования каждой страницы можно выбрать (можно любой, можно на все одни и тот же).
Можно ставить ссылки, то есть например вести одну свою страницу как индекс, в которой размещать ссылки на все остальные, а на каждой из таких – ссылаться на это оглавление.

Каждый из нас может вести свои странички, мы можем сослаться отсюда с форума на индексную страничку каждого из нас, а уж тот будет сам как хочет располагать там ссылки.

Надо посмотреть, можно ли там хоть как-нибудь делать таблицы…

Мне показалось, что штука в целом удобная, особенно для всяких там микроэнциклопедий или плавающих сообщений.

Забавнее всего то, что не требует регистрации в системе (и e-mail можно даже не вписывать).
Пароль к страницам можно поменять, как и удалить сами страницы.

Как идея, будем пользоваться?
На вид системка очень даже шустрая.

Если да, то нам нужно общее пространство имён, например преффиксовать наши страницы «spyro3rus-…». Имя автора для удобства (запоминания адресов) лучше в URL не вписывать, но в самом тексте желательно указать.

Да, там нет контроля версий и никакого совместного редактирования, но эй, нам это почти ни разу и не было нужно!
Зато я так понял, что там такой дизайн, что на самом медленном соединении через самое медленное устройство можно будет и читать и править.


but nobody came
 
steeldragonСообщение # 527 Вторник, 30.06.2015, 20:44
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата aleksusklim ()
http://txti.es/
Сказали бы вы про это чуть пораньше... а теперь я и не знаю, надо оно нам или нет. Я свой сайт потихоньку собираю по кусочкам, а переводчиков что-то не видать...
======

Так или иначе, продолжаю взлом.
Таблица шрифта в EXE похоже, одинакова во всех версиях Spyro2/3, исключая японскую Spyro Tondemo Tours.
Местонахождение таблиц (все адреса в dec):
356296 - Spyro 3 GH
366292 - Spyro 3 Platinum
343716 - Spyro 2
362304 - Spyro 2 (Europe)

Напоминаю, длина таблицы равна 256 байтам.
 
aleksusklimСообщение # 528 Пятница, 14.08.2015, 22:44
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Не сочтите за дезертирство, просто сотрудничество…
 
aleksusklimСообщение # 529 Среда, 10.02.2016, 01:46
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Так, я тут хочу немного освежить знания.

Во-первых, есть теория, что если в субфайле данные 4 байта по смещению 16 и 64 совпадают –то это субфайл из Spyro2 (просто как для автодетектора).

Во-вторых, в четвёртом сусб-субфайле первое смещение первого прыжка равно 48 для Spyro3, и 44 для Spyro2. Оттуда до таблицы объектов для Spyro3 – 12 прыжков, а для Spyro2 – восемь. А ещё три прыжка – и начало большого оконечного листа указателей.

Для каждой строки текста или имени верно следующее: на неё есть локальный указатель, на сам который есть другой начальный указатель из этого листа. Таким образом я зафиксировал «свойства» любой оригинальной строки: номер субфайла и суб-субфайла; индекс в листе соответствующего указателя (или смещение от начала файла к нему); значение этого указателя = индекс настоящего указателя; значение настоящего указателя = место для оригинальной строки; длинна (отведённая) оригинальной строки.
Всё это в предположении, что мы не будем менять элементы в листе между собой. Однако есть хороший способ «выключить» элемент листа: просто приравнять своему смещению. Он воздействует сам на себя, а целевой указатель (который мы уже заменим, скажем, абсолютным адресом в EXE) останется рабочим и нетронутым (проверено, но не тщательно). Таким образом имеем три состояния:
• лист не тронут, указатель не тронут (строка на своём месте);
• лист не тронут, указатель локально изменён (строка сдвинута);
• лист выключен, указатель абсолютен (EXE или яичная зона, другой суб-субфайл).

А ещё отведённое место под строки может быть больше, чем фактическая длинна. Когда остаток от деления этой длинны на 4 не равен трём. Короче, суть в том, что если последний терминирующий ноль находится не в последнем байте своего «слова» (четырёх байт), то остальные байты этого слова резервируются нулями, иногда давая нам 1,2 или даже 3 дополнительных символа (последний ноль затирать нельзя).

Строки теста, в отличие от имён, содержат в своём первом байте смещение, на которое надо отступить вперёд, чтобы добраться до самого текста. Во многих случаях это просто число 1. Вообще оно отвечает за поведение диалога (движение камеры, персонажа, анимацию, выдачу шаров и яиц, открывание мостов…), но я не знаю, как; а попытки повлиять сбрасывают игру.

Если строка «выключена» (скажем, это «имя» таблички, которого нет) – в первом байте пишется 255, остальные три – зарезервированы. Так уж вышло, что во многих объектах есть несколько фиктивных строк в конце, которые ничего не делают (а может и делали бы, надо попробовать-таки заактивировать их…) и выключены. Но при этом все указатели по вышеописанной схеме валидны. Наличие таких пустышек дарит нам дополнительные места для текста, учитывая, что все реплики одного (физически) персонажа следуют подряд – текст можно «сдвинуть». Причём фишка с остатком четырёх и дополняющими нулями действует и на все промежуточные тексты, несмотря на то, что текст не обязан быть выровнен по четырёхбайтовым словам, видимо это просто их компилятор перестраховался.
Итого имеем потенциальные байты с каждой реплики, плюс – иногда подарочек в конце.
Однако его нельзя просто так брать, чтобы указатель на 255-0-0-0 остался валидным.
И есть простейшее решение!

Сам объект персонажа с текстом (88-байт структура) имеет на первом же месте указатель на свои 12 байт дополнительных данных, из которых ему нужны только 8 (я уже где-то писал, что в них записано – там есть номер озвучки по уровневому списку озвучек; потом найду и вспомню ), а оставшиеся четыре равны значению 255-0-0-0, которое не меняется и во время выполнения. Сразу после него – указатели сначала на имя, потом на все реплики; все они – те самые, на которые был указатель в списке.

В итоге, детектор «говорящего» объекта:
1) FF000000 после его дополнительных данных.
2) Наличие указателя на +4 и +8 (от данных предыдущего пункта) в оконечном листе.
Попробую отфильтровать так, и узнаем, хватает ли этого.

Так вот, те самые указатели на пустышки можно прямо вот так локально же и перенаправить на 4 байта, которые находятся перед указателем на имя персонажа.

Иллюстрация:
http://klimaleksus.narod.ru/Files/H/edit_01.png
Выделены 12 байт дополнительных данных персонажа.
Всё, что начинается с имени, и до самого конца (покажу чуть ниже) – можно вроде как переформатировать, чтобы избавится от подряд стоящих нулей в этом блоке текста – например после самого имени их аж 4 (три из который пойдут нам в плюс), потому что имя состоит из четырёх букв (а было б из трёх – не получили б ничего. Зоя…)

Кончается так:
http://klimaleksus.narod.ru/Files/H/edit_02.png
Выделены «лишние» заглушки под строки, которые можно отобрать себе. Курсор стоит за последним символом текста – и снова удача, это начало новых четырёх байт, три из которых забираем. Итого я насчитал (включая ещё один байт там между репликам) аж 26 дополнительных символов на все тексты этого персонажа.

Вроде неплохо.
Только я пока никак не могу придумать хороший-удобный способ вносить тексты по этой схеме.
Получается, всё надо заранее планировать таким образом, что тексты будут вноситься не строками, а сразу персонажами, потому что свободное место можно делить меж его репликами.


but nobody came
 
aleksusklimСообщение # 530 Среда, 10.02.2016, 11:21
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
А чего я торможу-то? Это же задача о рюкзаке! У нас есть персонажи, у которых массив текста. Неважно какого. У нас есть набор строк, которые надо разместить. Можно ж любые к любым! А еще можно замутить фишку, что когда самая короткая строка не влезает, то она автоматом уходит в EXE.
Основной алгоритм работает перебором - норм.
steeldragon, у вас так?
 
steeldragonСообщение # 531 Среда, 10.02.2016, 16:13
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Я только что нашёл дополнительное место для текста.
Третий субфайл уровня заканчивается конструкцией вида "00000000FFFFFFFF00000000" и после этого ещё много-много нулей, около пол-килобайта минимум. И они все загружаются в память! И не используются, по-видимому.

Конкретное количество нулей зависит от уровня, обычно от половины до полутора КБ, однако в Sunny Villa свободно аж десять килобайт.
 
The_Werewolf_ThunderСообщение # 532 Вторник, 01.03.2016, 17:25
Аватар The_Werewolf_Thunder
Яйцо
Житель Города
«58»
Где: Не в городе Драконов
Здравствуйте. Извините, если помешала. Это я, очередной доброволец, хорошо знающий английский язык и мечтающий стать переводчиком иностранной литературы, великий Спайрофан по совместительству. Могу чем помочь, или лучше не путаться под ногами?

Я - Последний Безмолвный Царь. Берегитесь моего царского могущества!
_____________

ВСЕ СИПУХИ - ДЕМОНЫ! ЗАПАСЙТЕСЬ СОЛЬЮ, ЧИСТЫМ ЖЕЛЕЗОМ И СВЯТОЙ ВОДОЙ - ОНИ УЖЕ В РИЛМСЕ НАРЯДУ С ДРУГИМИ СОВАМИ!
_____________

- Это удивляло бы , если б я была драконом.
- Но... Тогда кто ты?
- Я оборотень. А теперь беги. Ну, чего ждёшь?
- Зачем?
- Ну, это обычная реакция. Нас все боятся.
- Вас просто не понимают...
 
aleksusklimСообщение # 533 Вторник, 01.03.2016, 21:43
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата The_Werewolf_Thunder
Это я, очередной доброволец, хорошо знающий английский язык и мечтающий стать переводчиком иностранной литературы, великий Спайрофан по совместительству.


Вау.

Не, у нас тут просто сова улетела, хотя вы:

Цитата The_Werewolf_Thunder
Вот уже все эти годы, с самого основания сайта, я регулярно захожу сюда, слежу за его жизнью.


– по идее всё тут знаете как у нас устроено.
Я полагаю. Ну вообще да, /f48 всегда был неприметненький такой…

Цитата The_Werewolf_Thunder
Могу чем помочь, или лучше не путаться под ногами?


Я… так, я тут пилю конвертер неба Spyro1 в небо Spyro2/3 (меня просто сильно приспичило). И даже если я его закончу, то вряд ли смогу в данное время быть чем-то полезен с практической точки зрения. К сожалению.

Цитата The_Werewolf_Thunder
Здравствуйте. Извините, если помешала.


(Тома-а-ас!! Возьми собачку, а?..)

Уф, что мы имеем… Насколько я помню, тексты Spyro3 GH застыли в некоем предфинальном состоянии. Они вроде готовы, но мы их что-то не до конца доредактировали. В прочем, как обычно. Правда steeldragon уже неоднократно собирал пробные патчи текстов (которые я даже не открывал). Нужен бы кто-то, кто потащит паровоз на финиш…
Прямое задание дать не могу, я уже давно запутался, и там надо ветку Текста перечитать, чтобы понять, на чём ж мы тогда застопорились. Надо сообразить, если ли у нас где-то собранные тексты. А вообще, если вы на самом деле видели, как у нас тут происходит процесс перевода, то мне очень хотелось бы узнать ваше мнение насчёт «Чё ж нам делать-то!?». Не то чтобы мы не знали, просто может какая новая идея полезная будет насчёт упорядочивания горы текстов…

Spyro1 JAP по-моему, переведено. Да, там кажется просто редактирование-утверждение осталось. Ох…
Spyro2 JAP тоже, но там было катастрофически мало обсуждений, многие уровни ещё нечитаны по-серьёзному.

Spyro2 EN (на русский), кстати, вроде как идёт хорошо и относительно активно. О, там требуется редактирование новых переведённых текстов. Которые довольно высокого качества сами по себе; если же чисто искать и исправлять ошибки – то лучше Spyro2 JAP вычитывать.

Spyro2 UKR (с английского на украинский) наверное можно пока не трогать, ждём возможного появления переводчика; это неприоритетный проект в его отсутствие.

Цитата The_Werewolf_Thunder
Знакомьтесь, и принимайте в свои дружные, стойкие ряды. Приятно наконец подать голос.


Так вы это… теперь типа с нами, да?
На полпути не бросите, ни через месяц не забудете?
^^


but nobody came
 
steeldragonСообщение # 534 Среда, 02.03.2016, 00:17
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата aleksusklim ()
Надо сообразить, если ли у нас где-то собранные тексты.
Вот здесь всё, что собиралось ранее: https://github.com/VectorDelta/spyro3-rus/
Так, просто напоминаю...
https://github.com/VectorDelta/spyro3-rus/blob/master/Text_levels3.csv - таблица со, вроде бы, последними версиями текстов. На данный момент там около половины всех текстов уровней.
 
The_Werewolf_ThunderСообщение # 535 Среда, 02.03.2016, 06:43
Аватар The_Werewolf_Thunder
Яйцо
Житель Города
«58»
Где: Не в городе Драконов
< Теперь типа с нами, да?
Ну типа да. Конечно, только если сами не выгоните :)
Ну ничего, когда найдёте для меня работу, я тут же прийду. Пока пойду поблуждаю по текстам.


Я - Последний Безмолвный Царь. Берегитесь моего царского могущества!
_____________

ВСЕ СИПУХИ - ДЕМОНЫ! ЗАПАСЙТЕСЬ СОЛЬЮ, ЧИСТЫМ ЖЕЛЕЗОМ И СВЯТОЙ ВОДОЙ - ОНИ УЖЕ В РИЛМСЕ НАРЯДУ С ДРУГИМИ СОВАМИ!
_____________

- Это удивляло бы , если б я была драконом.
- Но... Тогда кто ты?
- Я оборотень. А теперь беги. Ну, чего ждёшь?
- Зачем?
- Ну, это обычная реакция. Нас все боятся.
- Вас просто не понимают...
 
aleksusklimСообщение # 536 Среда, 02.03.2016, 17:35
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата steeldragon
Вот здесь всё, что собиралось ранее


Ну да, ну да, в этом вы смыслите получше меня.

Цитата steeldragon
таблица со, вроде бы, последними версиями текстов.


А-а. Так, понял.
А у нас есть таблица с тем, что ещё не попало в эту «финальную» таблицу?
Или насчёт этого как бы гоу ту форум?
Я просто никак ничего не упорядочивал уже давно. Всё что я делал – предлагал правки на форуме путём цитирования…
Наверное всё это не так уж просто собрать.

Может надо было текст красить – тот, который обсуждён? В смысле, прямо в содержимом цитируемого сообщения (но выделять только фразы, а не всякий флуд).
С одной стороны так уже поздновато делать, но с другой – надо ж что-то придумать, чтобы систематизировать работу.

Ну то есть я так понимаю, что на форуме есть такие тексты, которые уже редактировались, но не попали в список финально утверждённых, так? Их надо как-то обособить, чтобы продолжить над ними работу. Ну или хотя бы пересчитать уровни, которые ещё надо обсудить.

Не, я конечно понимаю, что нас всего двое, но я данное время абсолютно не в настроении в чём-то копаться и что-то собирать. Вообще, суда по моим последним из числа небесполезных комментарием, всё что я могу в отношении текста – раз в энное время лишь увеличивать кучу обсуждаемого текста путём цитирования и предявления претензий к нему.
И я даже стал уходит в более «чистые» темы, избегая того бардака в нашей, который развёл ранее, а за собой не убрал. Я помню, как-то ж пытался убирать за собой ошмётки обсуждаемых фраз из Lost Fleet, но та поток так и не поставил.

Вот мне сейчас и кажется, что любое моё действие в отношении текста сделает только хуже. А бездействовать тоже не хочется…

Цитата steeldragon
На данный момент там около половины всех текстов уровней.


Может как-то порциально сделать? Объявим некоторое количество текстов как «утверждено.tmp», и больше НЕ будем их трогать, вообще. Каждый новый обсужденный уровень кидаем туда, причём безжалостно, грубо говоря по схеме «перевод – претензия редактора – правка автора», без бесконечных затягиваний одной реплики на две формуных страницы.
А потом уже в итоге проглядим все уровни, может даже прослушивая озвчку или сортируя по персонажам.

Цитата The_Werewolf_Thunder
Ну типа да.


О, мой любимый стиль цитат!

А вообще, что у вас там с цитированием? С некоторых пор я цитирую вообще вручную, обрезая всякие бесполезные идентификаторы сообщения после «;».
И тут где-то был плагин для браузера, чтобы отключить визуальный редактор сообщений (правда я даже не знаю, глючный ли виз-редактор сейчас).
Вот он:
ucoz_wysibb_hide_3.crx
ucoz_wysibb_hide_3.js
ucoz_wysibb_hide.xpi
За работоспособность в хроме и мозилле не отвечаю, сам использую только для оперы-престо. А ещё я бы порекомендовал «Типографскую раскладка Ильи Бирмана».

Цитата The_Werewolf_Thunder
когда найдёте для меня работу, я тут же прийду.


У нас ещё есть висячие обсуждения переводов названий миров. Было бы интересно услышать ещё одно мнение!


but nobody came
 
steeldragonСообщение # 537 Среда, 02.03.2016, 22:45
Аватар steeldragon
Старейшина Драконов
Редактор
«422»
Где: Не в городе Драконов
Цитата aleksusklim ()
А у нас есть таблица с тем, что ещё не попало в эту «финальную» таблицу?

Не-а. И это не "финальная версия", а скорее "последние обновления". А неполная она потому что я так и не закончил собирать тексты...

Цитата aleksusklim ()
Их надо как-то обособить, чтобы продолжить над ними работу. Ну или хотя бы пересчитать уровни, которые ещё надо обсудить.

Вообще, это довольно мутный вопрос. Тот же Molten Crater, к примеру, совсем забросили... Легче перечислить уровни, которы уже триста раз обсуждались. Сделаю на днях списочек...

Цитата aleksusklim ()
Каждый новый обсужденный уровень кидаем туда, причём безжалостно, грубо говоря по схеме «перевод – претензия редактора – правка автора»,

Вы ли это, или ваш аккаунт захватили? =)
Обоими руками за.
 
aleksusklimСообщение # 538 Четверг, 03.03.2016, 00:06
Аватар aleksusklim
фдулыгылдшь
Редактор
«1066»
Где: Не в городе Драконов
Цитата steeldragon
Тот же Molten Crater


Ух-ты, я вспомнил, что там было последний раз.
А где она?

Цитата steeldragon
Обоими руками за.


Да не, изначально-то было всё нормально. Логично сначала всё обсудить, а потом утверждать.
Но сейчас мы остались с кучей текстов и абсолютно без редакторов, так что надо попытаться что-то поменять.

У меня вообще чувство, что тему Текста надо ребутнуть, путём создания новой. Она стала даже морально слишком толстая.

Слушьте, давайте попробуем. Ещё раз скажу, что я сам ничего собирать не хочу. Однако будет здорово, если вы сумеете переварить всё наше текущее состояние, и трансформировать его в новую тему типа «Spyro3: Финал», где вы как-то по-умному опубликуете то, что ещё надо «обсудить» – а там я, в принципе, уже смогу предложить свои правки как я обычно делаю. Только установите какой-нить регламент, чтобы потом эти правки можно было полегче переваривать дальше. Подумайте насчёт выделения цветом, или указания номера редактируемой фразы… в общем, что-нибудь новое и полезное. А то я сам уже боюсь что-то предлагать))

Цитата steeldragon
Вы ли это, или ваш аккаунт захватили?


«Кто ты такой, фдулыгылдшь, и что ты сделал с нашим aleksusklim'ом?»

Ну а я пока попробую вернуть себе права редатора раздела.


but nobody came
 
EvgeniyСообщение # 539 Вторник, 22.03.2016, 10:02
Аватар Evgeniy
Яйцо
Житель Города
«9»
Где: Не в городе Драконов
smile Приятно знать, что для третьей части делают перевод. А для второй будет? (про первую не спрашиваю, ибо сменить 3D-шрифты довольно-таки трудно, если вообще возможно)

spyro is cool! Activision is fools!
 
LOLСообщение # 540 Среда, 23.03.2016, 11:13
Аватар LOL
Стрекоза
Новопоселенец
«16»
Где: Не в городе Драконов
Я не уверена что тут будет какой нибудь перевод, просто перевод down of dragon превратили в чат

- Кто ты?
- Я - восьмое чудо света.
- Почему?
- Потому, что я на половину дракон и на половину грифон
- А как это?
- Не задавай мне лишних вопросов!
- Почему?
- * взглянул пылающим взглядом*.

Ресторан " Dragons " - мы открылись после ремонта
 
Поиск:

Кто нас сегодня посетил

Для добавления необходима авторизация