Результаты поиска
|
|
aleksusklim | Сообщение # 91 | Тема: Перевод Spyro 3: Текст Суббота, 14.04.2012, 00:43 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Пре-скриптум: Так. Мой ответ для: http://www.spyro-realms.com/forum/48-11180-151921-16-1334349602 Я нихрена не понял, что случилось за эти два дня!!
Quote (aleksusklim) Короче, можете продолжать ничего не скачивать…
Quote (DrWho) Хотя я думаю, aleksusklim заглянет в эту тему, да скажет что-нибудь на этот счет.
Эй! Вы что думаете, что я вас всех кинул!?
…Нет конечно. Я это дело не брошу. Просто появился дружественный проект. По переводу Spyro1, но с японского. Предлагаю объединить усилия по взлому графики и звуков, тем более что шрифт (наш) мы там уже взломали. Остальное на подходе. Просто переход ко взлому чего-то новенького мне приятнее, чем бесполезная писанина сюда.
Вот та тема:
http://www.spyro-realms.com/forum/2-11306-3
Теперь все должны читать не только эту тему, но и ту ветку. Потому что методы взлома у нас общие. Так что если я долго не отвечаю тут, значит я занимаюсь чем-то важным там (отлистайте на вторую страницу и посмотрите.)
Quote (DrWho) А так, спроси у aleksusklim, он вроде как знает сколько переводить осталось.
Я!?
…А кто вообще хоть что-то переводит?
Да и потом, даже если будет несколько переводов одного мира – это только к лучшему. Выберем наиболее верный (не «точный», не «правильный», а именно «верный»)
Обсуждения? Обсужде-е-ения-а-а-а!? Где-е-е вы-ы-ы-ы? Я жду не дождусь вас!!
Quote (DrWho) А так, спроси у aleksusklim, он вроде как знает сколько переводить осталось.
Quote (DrWho) Нехитрые вопросы, но:
По делу.
Quote (DrWho) 1. Когда примерно будет готов перевод?
Метим на 3/5 этого года. Наверно…
Quote (DrWho) 2. Какая версия игры будет использоваться для этого?
Давно бы пора дать ссылку на Greatest Hits. Да хоть в первом *вездесущем* сообщении от Спай.
Quote (DrWho) 3. Он будет ставиться отдельно или вшит в игру?
Вопрос, кстати, актуальный, зря убрали.
Проще и логичнее было бы сделать перевод единым целым с игрой. Но если мы так и не научимся менять длину чего-либо, то финальный образ диска будет иметь размер точь-в-точь как оригинал. А значит перевод можно организовать в виде патча или прошивателя-руссификатора.
Но сейчас это настолько неважно, что я посоветовал бы даже не задумывать об этом.
Quote (devdoki) Скажите пожалуйста, а много голосов на озвучку набралось?
Ох… Что, никто так и не понял, ЧТО я хочу получить от озвучки!? И разве ЭТО мне не способен дать spyro-realms.com?
Слушайте, чешуйчатые жители: СКОЛЬКО ВАС?
Quote (devdoki) просто дать мне исходник текста,
Мысль верная, скоро будет реализована.
Quote (Spyro1998) Прочитав все заявки я вроде-бы неувидел ниодного, кто переведёт одну вещь.
Вы видите кого-то, кто переводит что-то другое?
Quote (Spyro1998) Вы переводите текст игры, но вы забыли про мультики между боссами или при освобождении героев…
Стоп-стоп, я-то о них не забыл! И я давно уже предлагал переводить cutscenes. Вот ссылка на все тексты:
http://Klimaleksus.narod2.ru/Files/Cutscenes.txt
Quote (Spyro1998) может я смогу перевести их, а видео с субтитрами буду кидать сюда. Как идея?
Ах, стоило мне раньше ответить… но было интересно, до чего вы дойдёте…
Просто… Просто вы подошли к этому процессу не с той стороны…
Quote (DrWho) Вполне хорошая идея.
Да ну нет же…
Хотя…
Почему я не ответил раньше? Потому что я не думал, ДО ЧЕГО у вас это дойдёт… (я уже так привык к тому, что в этой теме никто не работает, что я просто не поверил в ваши, Spyro1998, силы)
Quote (Spyro1998) Прочитав все заявки я вроде-бы неувидел ниодного, кто переведёт одну вещь.
Quote (DrWho) Просто: 1. народ не может определиться какую версию игры переводить. 2. народу лень переводить игру.
Хм.. Я тоже вначале подумал, что пытаются сказать «Я прочитал все заявки, но не увидел ни одного, кто хоть что-нибудь перевёл» Кажется, имели в виду другое…
Quote (Spyro1998) Наконец-то я перевёл мультфильмы 1 мира ( Мир Ранней Весны ).
Ну вы пипец…
Quote (Spyro1998) Ну так мне продолжать?
Нет, погодите!!
Quote (DrWho) Продолжай :)
Блин…
Quote (Spyro1998) убрать голоса и оставить фоновый звук
Вы – звукооператор? Ладно, попробуйте!
Quote (devdoki) Правильно ли я поняла, что вы уже хотите начать работу над озвучиванием?
Не-ет…
Quote (Spyro1998) Да в принципе озвучку уже можно начинать,
Рано!!
Quote (Spyro1998) чтобы ваши голоса в точности подходили под движении рта в игре.
Вот это относится только к cutscenes. А их я планировал оставить на конец работы…
Quote (DrWho) Сейчас пока прогресс идет на озвучке, а потом уже можно будет текст до конца переводить
Вы счас поняли, что сказали!?
Quote (DrWho) (кстати, лучше всего кинуть перевод в GH версию, она единственная не переведенной осталась
На заметку: мы и переводим GH !!!!!!!!
Quote (devdoki) Скажите пожалуйста, я единственный женский голос?
Опять двадцать пять…
Голосов будет дальше некуда.
Quote (DrWho) Необязательно. Можно использовать изменитель голоса и тогда будут разные голоса.
А с чего такая честь одному лицу? У нас 500+ треков (не сцен). Если будет хотя бы 50 человек, что мы сможем их раскидать так, чтобы голос дублировался только через десяток других голосов (полсотни потому что 500 людей мы в самом деле наберём вряд ли)
«Изменитель голоса» ? Продемонстрируйте, отвечу.
Quote (Spyro1998) может быть заменить другой музыкой?
Менять можно. Но только ОЧЕНЬ похожей, создающей ту же обстановку. А нельзя найти источник этой музыки? Может это какая-нибудь классическая ретро песня? Или что-то менее известное. А даже если и уникальный трек – может где-то на просторах интернета существует его читая оригинальная версия? Попробуйте поискать, прежде чем заменять на собственную.
Quote (DrWho) Попробуй это сделать.
Так…
Я вижу тут, что вы вдвоём принимаете генеральные решения (влекущие за собой кардинальное изменение результата и самой концепции перевода) единолично без голосования!?
Почему я ещё не так сильно задавался вопросом озвучки – потому что РАНО!!!
Это только я понимаю!?
Почему рано? Да потому что у нас нет ТЕКСТА! А вы собираетесь уже всю игру озвучить не имея нужного обсуждённого всехустраивающего материала? First we must establish all Russian translations of ALL dialogues! Или, говоря по-русски, мы сперва должны утвердить все русские переводы ВСЕХ диалогов! Потому что вы не можете озвучивать не имея русского текста. НО! Вы просто берёте и сами его переводите как пожелаете. И предоставляете ОЗВУЧКУ вместо ТЕКСТА! А если ваш собственный текст не верен? Если он кого-то не устраивает? Или если мы под концом захотим что-либо переименовать (имя персонажа или местности)? Что будет тогда? А я отвечу: вам всем придётся ПЕРЕОЗВУЧИВАТЬ заново всё что вы успели выложить.
И зачем вам это надо?
Поймите же, нельзя сейчас озвучивать. До тех пор, пока не будут готовы тексты. Иначе вы просто сделаете всю работу зря!!
И вы сейчас ждёте от меня дальнейших инструкций для решения этой проблемы. А они у меня есть!
Актёры, слушайте внимательно:
Первое. Перечитайте эту тему от самого начала до самого конца. Потом прочитайте всю тему с японским переводом. Зачем? А потому что раз уж вы хотите озвучивать наш проект, то будьте добры, изучите принципы его работы.
Второе. Переводите тексты! Не озвучивайте их сразу, а пока только дайте перевод. Пусть он будет чётко попадать в речь героя, задайте ему соответствующую музыку, попытайтесь примерить его в сценку. Но пока – только текст.
Третье. Не думайте, что в озвучивании будут принимать участие менее десятка человек. Вспомните то, что я говорил о разделении ролей. У нас КУЧА монологов (а по-другому их не назвать), которые должны быть озвучены разными людьми. Ну так, как я предложил – каждый может выбрать любого персонажа, который ему нравится. И на полных правах будет озвучивать именно его. А вот главные роли (я уже перечислял) мы должны отдать только тем, кто сможет ДОКАЗАТЬ, что он озвучит героя лучше всех! Выкладывайте пробы, пытайтесь, озвучивайте – как тренировка. Мы оценим всех общим голосованием и определим победителей. Но всё это – только тогда, когда весь текст игры будет переведён и утверждён общим обсуждением (включая названия сцен). Ясно? Сейчас нельзя озвучивать! Хотите быстрее перейти к озвучке – переводите тексты сценок. Обсуждайте их. Выберите лучший перевод. А потом тренируйтесь, если претендуете на главные роли. Попробуйте себя в лице разных персонажей, а мы все вместе оценим ваш голос и выберем лучшего! (как обычно, голосовать «за себя» запрещено!) То есть когда у нас появится хотя бы человек 5 – 15 на каждую роль (можно выставлять себя сразу на несколько ролей, тогда больше шансов озвучивать хоть кого-нибудь), они представят нам озвученный ими материал, и мы объявим голосование. Каждый из вас отдаст голос по категориям. Одна категория – один персонаж. Каждый выберет другого участника, который, по его мнению, озвучил этого персонажа лучше всех. Потом посчитаем голоса и определим, кто набрал больше баллов в каждой категории. И только потом начнётся общая озвучка и звукомонтаж. Все согласны? Если нет, то вносите сразу поправки. Если что, то регламент тоже можно вынести на голосование!
Четвертое. Видео и YouTube. Не, ну в самом деле! Вот вы нашли куда заливать результаты… А e-mail!? Какая безысходность! Что, Спайропедия или Google Code не спасут нас? Или создать сайт на каком-нибудь FTP сервере, где можно организовать систему прав и приоритетов, доступов с паролем? Просто почта – наихудщий вариант… Теперь видео. Один грубый вопрос: Нахрена? Зачем снова и снова копировать оригинальное изображение, которое мы не в силах изменить? Мы делаем только ЗВУК. Причём тут вообще YouTube!? Короче так. Нужно чтобы кто-то выдернул из GH все cutscenes в видео-варианте. Без звука вообще, одно изображение. Причём наименьшего разрешения (зачем фоткать 1024*768 монитор, если игра в оригинале выдаёт примерно 512*222, который можно ещё в два раза уменьшить без особых потерь). Это видео для каждой сценки нужно выложить в общий доступ (не на YouTube!), чтобы его мог скачать каждый актёр. Потом извлечь из ресурсов игры оригинальный звук сцен, который мы и заменим. Его тоже выложить в общий доступ. А свои озвученные варианты – тоже в mp3 (я расписывал метод), которые ми и будем оценивать. Ведь существует способ, который позволит запускать одновременно видео и музыку из разных файлов! Каждый просто скачает все интересующие его чужие озвучки и воспроизведёт их поверх оригинального видео. Это в разы сэкономит трафик. Поэтому перестаньте выкладывать видео! (Я даже не попытался открыть и вашу, Spyro1998, озвучку, потому что видео у меня по любому не откроется и не скачается. Так что советую вам выложить её в mp3)
И перечитайте эту тему ещё раз!
P.S.
Вспомнил кое-что ещё про cutscenes. Во-первых мы, хакеры, ещё не поняли, где там звук (в WAD) и как его вытащить. То есть у нас пока нет оригиналов из ресурсов. И? Так ведь существуют многоязычные версии Spyro3. И сценки в них переведены-озвучены несколько раз. Вытекает две вещи: 1) Есть шанс, что музыка записана отдельным каналом, на который накладывается соответствующая текущему языку озвучка. 2) Если нет, то можно выкачать один ролик на разных языках, где музыка будет 100% совпадать, а голос разный. Вдруг мы найдём специальную звуковую программу, которая проанализирует по частотам это «родственные» файлы и выдаст нам ту их составляющую, которая одинакова во всех. Шанс есть, так что погодите музыку менять!
but nobody came
|
|
| |
aleksusklim | Сообщение # 92 | Тема: Перевод Spyro 3: Текст Суббота, 14.04.2012, 01:27 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Quote (DrWho) Смотри предыдущую страницу, я перевел 3й мир полностью
Я когда писал этого не видел!!
Quote (DrWho) P.S: Ответы в почте смотри.
Спасибо))
Quote (DrWho) И вопрос: 1й и 2й мир полностью переведены? Потому что в гугле лежат только 3 уровня из этих двух миров.
Я вконец запутался...
P.S
Spoky Swamp мне оставьте!
but nobody came
|
|
| |
aleksusklim | Сообщение # 93 | Тема: Стихи Воскресенье, 15.04.2012, 13:02 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Quote (DrWho) Аналогично (хотя я читать не особо люблю, но быстренько проглядел и понравилось, некоторые моменты почитал даже).
Ну хоть так))
Стихи! Ещё стихи! Для Первого Апреля (с опозданием), но стихи! Совершенно новый стиль для меня. Сначала рифмую по три строки, а потом 18 подряд!!
Пародия на ожидаемый конец света. Было самостоятельным стихотворением. А потом я его примерил к Армагеддону от Дарки… Ничего так, вроде подошло!
(по поводу ямбахорея, трудноритмовых строк и ошибочноподанных выражений: 1 – это сделано специально; 2 – это добавляет акцента на выбранный участок; 3 – это, в конце концов, «пародия», и могу писать что захочу!)
«Астроном» (по картине DarkyTheDragoness «Armageddon»)
В Луну полетел астероид из Марса, Ось у земли наклонилась потом, Ходят теперь полюса ходуном! В Африке видели снежного барса, В Арктике ламы ютятся прекрасно, Рыбы на суше уж ищут свой дом.
В этот же день появились осколки Крупной кометы и метеорит Скоро планету в секунду спалит! Всюду ведутся активно раскопки, Прячутся люди под землю в коробки, Солнце потухло, а воздух горит!
Спутник Юпитера бросил орбиту, Сатурн растерял половину колец, Галактике скоро настанет конец! Звёзды взрываются, космос разбитый, Чёрные дыры отныне открыты, Озоновый слой испарился, подлец!
Гамма-лучи пронизали живое, Флора погибла, вздыбились моря – Нагрянет последняя мира заря! Зловещие крики доносит порою Отравленный ветер свирепой грозою, И атомный взрыв – лишь разруху творя…
Дым всё закутал, кромешная тьма, Вулканы проснулись, растаяли льды, Больше нет чистой еды и воды! Город разрушен, упали дома, Вот затрещала, сломалась земля, А человек не уйдёт от беды.
Гул, всё сверкает, разверзнулся ад, На кладбищах зомби встают из могил… Монстр подземный проснуться решил! Пришельцы-убийцы к нам тоже летят, Бьют без разбора мужчин и ребят: Ужас один – континент захватил.
Нужен герой, и притом нужен срочно, Кто не боится геенны огня, Кто не страшиться вселенского зла: Он одолеет чудовище мощно, Он защитит человечество точно, Он победит, только «он» – это я…
…Я выхожу сквозь порывистый ветер, Пыльно и знойно, не видно ни зги, Покинули силы, остались мозги. Тут пред собою я дьявола встретил, В пасти его гибли женщины, дети, Грива сверкает, кружатся пески…
Я посмотрел ему в глаз очень строго, Так, что злодей испугался немного: Он увидал астронома, пророка, Чья воля стала крепка и широка, Кто выбирал поколеньям дорогу, Кто управлять мира зрением мог бы;
Кто не позволит бездумно, жестоко Всё поглотить – никогда и нисколько, Чьи предсказанья добры и высоки, Чьей мыслью пишут истории строки, Кто не допустит такие наскоки На жизнь и смысл – великий, глубокий…
Демон в смятении, грусти, тревоге, Он осознал возрожденья истоки, Он забывает людские пороки, Он принимает мирские уроки, Он оставляет ключи на пороге И отступает обратно в чертоги.
…К Луне полетел астероид из Марса, Но промахнулся. Комета потом Мимо скользнула в пространстве большом. Сегодня декабрь, 2000 двенадцать, Придёт Новый Год как всегда безопасно: Это нам сон рассказал астроном. Добавлено (15.04.2012, 13:02) --------------------------------------------- Ой, я ж ссылку на картину дать забыл! Оригинал, 3500*4500, (4 Мб): http://www.deviantart.com/downloa....ess.jpg Поменьше: 670*800, (100 Кб): http://i.piccy.info/i7....ess.jpg
but nobody came
|
|
| |
aleksusklim | Сообщение # 94 | Тема: Перевод Spyro 3: Взлом и программы Воскресенье, 15.04.2012, 13:05 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Quote тему разделили на две части
Моё мнение? Стало хуже!!Добавлено (15.04.2012, 13:05) --------------------------------------------- Взлом шрифта.
В теме перевода японской версии я придумал 100%-ный алгоритм взлома любой графики в любой игре:
http://www.spyro-realms.com/forum/2-11306-151384-16-1333556799
Теперь настало время изменить наш шрифт! Давайте сперва взглянем на него в оригинале:
Разбираемся. Шрифт как бы записан в прямоугольную таблицу. Все серые знаки имеют одну палитру 16 цветов, а разноцветные кнопочки – другую. В ней используется только 4 цвета + чёрный, а остальные 11 цветов – пустуют. Что нам нужно? Первое – перерисовать каждую букву. Формат букв – квадрат 12*9 пикселей. Вот смотрите:
Это я внедрил туда другую палитру. Она находится в полоске внизу (вернее, это не она, а просто полоска покрашена в цвета палитры). Чуть правее находится 12*9 в белой рамке, который я разрисовал этими цветами. Он характеризует одно знакоместо. Покрываю этим все буквы:
Дальше интереснее. Засовываем их в игру, сперва изменив надпись на перечисление почти всех букв через пробелы:
http://i.piccy.info/i7....nt4.png
На первый символ «Х!» не смотрите – это я так отделил начало надписи, он не совпадёт. А вот всё остальное:
http://i.piccy.info/i7....nt5.png
(там всё ровно, просто из-за такой раскраски кажется, что строки наклонные) Анализируем эти скриншоты и понимаем, что всегда отрисовывается область 12*9. НО! Взгляните на пробелы. Они иногда короче, иногда длиннее. Всё это надо выяснить… Это может означать, например то, что если вместо запятой «,» использовать широкую «W», то последующий пробел можно пропустить. И ещё куча моментов, где удастся отвоевать несколько знакомест. Что с «Й» да «Ё»? Заметили: они уже есть! Это «~» в нижнем ряду во втором столбце; и «’’» в последнем столбце предпоследнего ряда. Но как их вызвать… А я узнал как! Это делается через собачку «@» и последующий управляющий символ. Точно не знаю, но это может быть «Е@i», «Е@d», «Е@?», «Е@a», «Е@!» – надо ещё проверять. Но какой ценой!! Целых ТРИ знакоместа для одной буквы! Ну уж нет… Лучше нарисуем «Ё» да «Й» сами где-нибудь на других буквах, чем так жертвовать…
Перерисуем шрифт? Сначала структура: Каждая буква занимает неполную часть 12*9 + тень. Эта самая тень в точности копирует контуры буквы, но сдвинута на один пиксель по диагонали в нижний правый угол. Тень монотонна. А буква покрашена в диагональный серый градиент. На всё отводится 16 цветов. Притом первый – чёрный прозрачный. Как перерисовать? Есть идея: Белым цветом на чёрном 12*9 рисуем силуэт буквы. Так для каждого знака (даже для тех, которые не изменим – чтобы они на отличались от истинно «наших» впоследствии). Потом копируем силуэт и сдвигаем вправо-вниз – получаем тень. Изменяем её цвет. Накладываем силуэт на заранее подготовленное поле 12*9 с уже нарисованным на нём нашим градиентом (буква будет как бы вырезана из прямоугольника, чтобы сквозь силуэт проглядывал градиент). Далее накладываем готовый знак (заполненный градиентом) на тень, получая конечный символ. И так с каждым!
Кто этим займётся?
Мне самому, честно говоря, не очень хочется – долго. Но я могу расписать метод ещё раз на примере нескольких букв.
TO-DO:
1) Утвердить цвета градиента. 2) Нарисовать исходный 12*9 в этих цветах. 3) Определить цвет тени (или даже два, почему нет?) 4) Придумать силуэты всех букв и знаков.
А что с цветными кнопками? Проще всего было бы оставить их как есть. Но! Вспомните кнопки Spyro1? Может нарисуем свои? Или хоть тень добавим? Я не художник, но фантазёр. Поэтому свою задумку воплотить не смогу… Жду кого-нибудь с хорошей фантазией и способностями к рисованию!
but nobody came
Сообщение отредактировал aleksusklim - Суббота, 14.04.2012, 01:06 |
|
| |
aleksusklim | Сообщение # 95 | Тема: Перевод Spyro 3: Взлом и программы Воскресенье, 22.04.2012, 22:00 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Комментарий из двух частей!
Quote (Spyro1998) ( я не первый раз этим занимаюсь)
Даже так! Ну ладно, попробую объяснить способ взлома… Но первое: я ещё не уверен во всех тонкостях, поэтому способ лишь примерный. Его надо доработать! Иначе, если бы он был мне абсолютно ясен, я бы сам нарисовал шрифт! Второе: алгоритм взлома графики – сумма всех моих умозаключений в этой теме + ветке японского Spyro1, поэтому вы должны их прочитать, иначе не поймёте, что надо делать.
Есть поле 12х9 пикселей. Оно полностью в нашем распоряжении. Высота обычно ровно 9, но некоторые буквы (например «m» строчная и несколько длинных как «q») немного короче по высоте. Так что последнюю границу пикселей лучше не занимать. С длиной сложнее. Она зависит от толщины заменяемой буквы. То есть «W» даст все 12, а вот «i» может и сильно стиснуть. Но поле всегда 12х9. Делаем букву.
…Мой пример не совсем честный. Я использовал Word, рисуя в нём иллюстрирующую таблицу, вместо того, чтобы практиковаться на текстуре шрифта. Потому что нужно ещё кучу работы сделать, чтобы определить цвета градиента и заполнить ими поле. Но даже потом – нас ждут ещё десятки проверок, по результатам которых мы приравняем каждую букву нужному знакоместу. Идеи на этот счёт:
– Цифры не трогать. – Только верхний регистр. – Символ «точки» и «запятой» переместить на самые широкие буквы, чтобы не ставить после них пробел. – Создать символ «многоточие», чтобы «. . .» не занимал три байта. – Найти два сливающихся символа и написать в них «НЕТ». Смекнули? Мы станем переводить «No» как «QW», что отобразит «НЕТ». Потому что узкое «no» встречается почти везде. – Также и «Spyro» = «UVXYZ» = «СПАЙРО»! Только найти бы буковки правильные… – Можно переназначить стрелочку « [ », добавить к ней тень – а то она словно невтемная… – Перерисовать символы кнопок, но это уж потом. – Буквы «Й» и «Ё» вывести как отдельные буквы, а не использовать диакритику. – Можно дорисовать скобочки «(» и «)»
Объяснение концепции создания поля символов.
Имеем 12*9 пикселей и 14 цветов для разукрашивания его. Почему 14? Потому что первый – чёрный – прозрачность. Остаётся 15. Но нужна ещё тень (ведь используем её?). Так что 14. Но если будет меньше, то можно оставить экстра цвет для каких-нибудь ещё нужд или тень многотонной сделать. Раскрасить поле можно ровно по диагонали или под наклон. Как выполнить второе я не догадался, а вот диагонально – легко: http://Klimaleksus.narod2.ru/Files/GH/abc1.PNG (Цвета только для примера, и каждая цифра – один цвет). Хм.. Использовано только 10 цветов. А если чуть расточительнее: http://Klimaleksus.narod2.ru/Files/GH/abc2.PNG О! Уже чуть ли не перебор. Но пока пойдёт. Примерно так будет выглядеть готовое поле: http://Klimaleksus.narod2.ru/Files/GH/abc3.PNG Тёмные цвета, разумеется, должны быть в углу, но Word не имеет такой палитры. Но нам пока без разницы, ибо это лишь пример.
Теперь очищаем поле. Рисуем на нём одним цветом саму букву. Монотонно. А потом другим добавляем ей тень. Я сделал это сдвигом на один пиксель вниз и вправо. Ну я не знаю… Предложите что-нибудь получше, если считаете, что так не канает. Рисуем трёхцветный макет: http://Klimaleksus.narod2.ru/Files/GH/abc4.PNG
Это всё должно быть на настоящем bitmap на самом деле. А пока – суть вот в чём: Делаем цвет буквы прозрачным, а тени – последним не использованным (15-тым) и накладываем его поверх нашего поле. Выходит: http://Klimaleksus.narod2.ru/Files/GH/abc5.PNG
Похоже? – На что!? Теперь сами цвета. Нельзя же использовать реально белый, серый и чёрный! Взглянем на оригинальную палитру: http://Klimaleksus.narod2.ru/Files/GH/abc6.PNG Что тут у нас… Третий – цвет тени. Последние три цвета не используются, но свободны (возможность их применения я доказал в комментарии выше на скриншотах) Однако наши цвета должны быть такими же, но не этими. Ну… желтоватыми! Равномерный плавный жёлто-коричнево-болотный градиент на 14 цветов. Как? Не знаю… Можно в фотошопе задать ровный градиент от самого светлого (прямо со скриншота) до самого тёмного (но не тени и не чёрного!), а потом плавный градиент превратить в 8-битный BMP. Только с 15-ти цветной палитрой. Это легче сделать в Corel-Photo-Paint (описал в японской теме). А уж из созданных адаптированных цветов собрать поле 12*9…
Потом нарисовать все буквы, включая те, которые мы не хотим менять (и цифры!), иначе они просто испортятся при внедрении нашей палитры. Придется перерисовывать вообще всё.
И последняя часть – расположить все буквы в тайле шрифта так, чтобы они определяли нужные байты выбранным способом. По этому сопоставлению мы выведем таблицу перекодировки, которой будем шифровать все шрифты.
Можно сделать один общий шрифт и внедрять его во все уровни, либо для некоторых уровней создать свой особый шрифт и перекодировку. Пока не знаю зачем, но возможно пригодиться!
В атласе по идее есть свой другой шрифт. Я его ещё не исследовал, но думаю, что он почти такой же. Там предлагаю вывести в отдельные символы римские «I» и «II», потому что многие яйца спарены по заданиям (Скейтинг 1 / Скейтинг 2 и.т.д), чтобы номер «два» не занимал одно лишнее знакоместо.
Объёмные буквы. Пока для их взлома проделано работы – 0%. Но если мы их не взломаем, то прощай кубок за лучший перевод… А если всё-таки хакнем, то придётся считаться с их таблицей соответствия. То есть наше сопоставление шрифта должно быть равно сопоставлению объёмных букв, потому что некоторые слова идентичны и там и тут. Но скорее всего эти самые буквы будут гораздо сильнее привязаны к размерам (у нас 12*9, а там будет n-ное количество полигонов на символ, что свободы не прибавляет…), и придётся наверно наше сопоставление шрифта под них подгонять. Но это потом.
Всё! Приступайте к перерисовке, если поняли меня. Но у меня такое чувство, что на 100% меня понимает только nihonjin.
Взлом ДЛИНЫ текста! (да, я доковырялся и до неё…)
Ставил кучу опытов на файлах Greatest Hits (только не спрашивайте, где я их взял!). По звуку, по графике, по текстам. Сначала общие факты: – Если в эмуляторе сохранить savestate, то она будет работать даже без диска или образа (да хоть Run BIOS), но только до тех пор, пока не произойдёт глобальная смена действия. Это например показ атласа, гибель, выход в подуровень или любой другой портал. – Назойливая Зоя ещё как может появляться! Достаточно загрузить сохранёнку взломанной версии. А «текущие яйца» приравниваются количеству «атласных яиц» как раз про загрузке сохранёнки. – Файл SPEECH.STR какой-то коцаный. Его просто так нельзя скопировать. Можно через WinHex>Tools>OpenDisk и дважды щёлкнуть на файле, выделить всё и сохранить. Но я не уверен, что его потом можно будет также внедрить обратно. Разве что обычным копированием как файла в CdGenPS2. – Многие субфайлы, их части и сам SCUS_944.67 грузятся в ОЗУ прям как есть. Без изменений, без адаптации. То есть прямое изменение файла «в натуре» приведёт точно к такому же изменению оперативной памяти. А ведь там вся индексация…
Думаем дальше. Я взял уровень Spooky Swamp (потому что перевёл его) и ставил эксперименты над ним. А также над главным EXE. Как лежат имена уровней? Null-terminated. Лады, а как используются? По-очереди? А вот фиг! Они работают с указателем на адрес каждого вхождения. А сами строки разделены нулями – одним, двумя, тремя или четырьмя. Почему? Посмотрим: Нули заменены решётками, строки перенесены вручную, логически. Видим, что количество знаков в любой строке кратно четырём. То есть строка «Harbor Speedway» – 15 символов. Это (4)*4-1. Поэтому имеем один нулевой разделитель. А следующая через одну «Haunted Tomb» – 12 символов. Это (4)*3. Однако ноль на конце необходим, поэтому (4)*4-4. Зачем? Потому что система 32 бита. И 90% всех переменных – четырёхбайтные. И поэтому нужно обязательно соблюдать порядок, чтобы надпись вдруг не сдвинула все последующие данные, иначе чтение переменных или адресов пойдёт промеж настоящих квартетов. Так может сдвигать разрешено, но всегда на (4)*n?
Не-а. Хоть на 4, хоть на 16, хоть на 1024 – любой сдвиг содержимого убивает игру. Иногда не убивает, а плодит глюки: живые существа начинают бегать, падать, проходить сквозь стены и.т.д.
Но где-то же лежит адрес на строку! Как бы его найти…
Продолжение ниже
Сообщение отредактировал aleksusklim - Воскресенье, 22.04.2012, 22:24 |
|
| |
aleksusklim | Сообщение # 96 | Тема: Перевод Spyro 3: Текст Воскресенье, 22.04.2012, 22:00 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Мой комментарий из четырёх частей!
Читайте на следующей странице. Спасибо DrWho, Serlutin.
Сообщение отредактировал aleksusklim - Воскресенье, 22.04.2012, 22:28 |
|
| |
aleksusklim | Сообщение # 97 | Тема: Перевод Spyro 3: Текст Воскресенье, 22.04.2012, 22:08 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
ЧАСТЬ 1
Quote (DrWho) Поскольку есть перевод 3го мира полностью, 2х уровней из 2го мира и 1го уровня из 1го мира, можно поступить так: Пока у меня есть время, я переведу 4й мир.
Куда ж вы торопитесь!? Того и гляди за неделю всю игру переведёте! Выполните за день двухмесячную работу? Где терпение и последовательность?
Quote (DrWho) Если реально постараться, успеем максимально к концу 2012 года :) Т.е. в год дракона появится Русская Greathest Hits версия игры Spyro 3.
Именно ради этого-то мы и работаем. Странно не знать!
Quote (Spyro1998) Просто хочется побыстрей закончить перевод и т.д. , чтобы наконец попробовать то, что мы создаём вместе.
Далеко ещё до конца. Нужен шрифт и взлом звука.
Quote (Spyro1998) А видео из YouTuba мне удалить?
Мне – без разницы: я его там никогда не увижу!
Quote (Тигрёнок13) В переводе от DrWho Манибэг зовётся Денежник. Может назвать его Купец?
Где вы были раньше, когда я объявил голосование?
Quote (Калим) Мне кажется что лучше имена не переводить... Это только мое мнение
Не переводите. А мы переведём))
Quote (Akai) Я тоже считаю, что лучше не переводить имена. Нашу Любу(Любовь) инострашки же не будут на свой лад переделывать, right?
В общем случае да. Но если там особый контекст, то можно и перевести. Не в лоб, а адекватно.
Quote (DrWho) BamBoo Paradise и Sr. Bird уровни переведены, остались остальные уровни, включая 2й мир.
Их кто-нить проверил на ошибки? А то вы сейчас забросаете нас переводами и мы запутаемся, где проверенные, а где ещё «сырые».
Quote (Akai) То есть, по-другому никак? Оригинальный текст вообще отсутствует и из игры его не вытащили? D:
А чем мы там на десять страниц занимались!?
Quote (Spyro1998) У меня 2 вопроса по переводу 1-ого мира. 1) Ферма Кродад - Я думаю имя так и надо оставить?! 2) Предупреждение Зои о взломанной игре - надо переводить? Ведь если она нам это скажет, то весь труд насмарку, а ведь мы хотим добиться, чтобы игра была в порядке!
Во! Он дело говорит… (Ответ ниже по течению)
Quote (Тигрёнок13) …так ещё и сколько секунд своей жизни вы потратите, выговаривая это слово…
Так-себе аргумент.
Quote (DrWho) Эти кнопки трогать НЕ надо.
Ага. А то наткнёмся на ляпы типа «Л1/Я2»!
Quote (DrWho) Крайний вариант - Лесник.
А прикольно! И креативно. Причём никак не связано с «Hunter». Это правильный ход мыслей! Везде бы так.
Quote (Serlutin) Ааааа. У меня сейчас чувства, как у aleksusklim'a
!!
Quote (Serlutin) Поэтому Spyro превратиться в Спиро.
Не, ни в кого он не превратиться!
Quote (Serlutin) Кошельков, которого предлагает aleksusklim. Вариант интересный, но опять же откуда русские в Мире Драконов?
Хороший аргумент. Мы же не эмулируем Россию? Мы же не назовём какой-нибудь уровень Кремлём? В игре нет ничего русского. Китайское есть (панды), а русских нет. Поэтому не будем превращать Чеширского кота в Масленичного.
Так что я тоже теперь за Толстосума.
Quote (DrWho) Кошельков - нет, это уже на русского человека смахивает. И к тому же ассоциация сразу же с кошельком денег. Но он же не кошелек? Поэтому этот вариант тоже отбрасывается.
Э! Ничего себе…
Quote (DrWho) Похоже даже у того же вектора перевести на Спайро не получилось, из-за ограничений в кол-ве символов. У Hunter 2 варианта возможно: Хантер и Лесник (его в какой-то версии так и называли, Лесником). Лесник... мало подходит. Ассоциация с лесом, а в некоторых уровнях Лесник не подойдет под имя. Поэтому остаётся как вариант, оставить его Хантером.
Всё успокойтесь. Я ломанул длину. Имена – проще всего (проще текстов фраз). Поэтому я вам любое имя в любом уровне могу сделать любой длины. Но даже и без этого у «Hunter##» всегда есть один свободный символ. Я научу считать. Берёте имя. Дописываете к нему «#». А потом дополняете его «#» до тех пор, пока общая длина не станет кратна четырём (4,8,12,16,20,24,28,32,36,40 символов), если ещё не кратна. Итого оказываются дописаны от одной до четырёх решёток. Вы можете заменить их буквами, но так, чтобы хоть одна осталась свободна. Поэтому к каждому имени можно приписать несколько символов. Ничего, один, два или три. Для конкретно «Hunter» – одру букву.
Quote (dovahkiin) По мне Moneybags-Денюжный мешок,мешок с деньгами или на крайний случай БОГАЧ - так это слово и переводится!!!
Он бедняк! Иначе бы не просил бабло на каждом шагу… попрошайка!
______ (Вперёд, в прошлое!) ––––––
Я не редактор текстов, но могу им стать. Но не хочу! Что думать о текстах? Давайте я сейчас не буду толковать о точности/красивости фраз по отношению к оригиналу. Взгляните на перевод как на конечный продукт! Он должен быть лучшим. Не содержать ошибок. Причём не только орфография/грамматика/пунктуация, но и менее значимые моменты. Их много. Я все не вспомню, но есть несколько вещей, на которые проверить очень легко. Это частые однокоренные слова, повторения одного слова и труднопроизносимые или дублирующиеся сочетания (даже не в одном тексте, а в нескольких соседних!). Они губят богатство русского языка! Пример:
Quote (DrWho) Бентли: Может быть это наша последняя битва, Спайро. Колдунья спланировала использовать этого монстра, чтобы уничтожить все, что стоит на её пути, начиная с нас двоих. Ладно, у нас нет времени на болтовню, битва с этим монстром нас ждёт. Я буду тебе кидать различные вещи для атаки.
Я понял, что у ВАС, и что с ЭТИМ. Зачем всё твердить и твердить одно и то же? This-this-this не стоит всюду прямо переводить (вы же «I am the translator» не переведёте как «Я есть тот самый переводчик»!). Многие слова можно опускать или заменять синонимами. Вместо «этого монстра» в одном варианте написать «вон того монстра», в другом просто опустить. А слово «монстр» можно синонимировать на «чудовище». «вещи для атаки» – ну не рубашкой же драться! Хоть «предметы». «спланировала использовать» (господи, помилуй…) – канцелярит ужасный! (если б это Бёрд сказал, я б ещё промолчал) Слово живое и мёртвое – рулит!
Quote (nihonjin) DrWho, перевод в целом хорош но…
Ва-ау! Да вы чудо-редактор! Браво!
Quote (DrWho) Ошибки подправил, ибо их проверить не успел, а текст в 2 часа ночи написал до конца.
Да куда ж вы всё время торопитесь? Я вот – проведу эксперимент. А потом ещё один. А потом ещё. И вместо того, чтобы описать результаты и выложить на форум, мне приходит в голову продолжение опытов. И ещё эксперимент. Придумываю работу и выполняю её. А когда уже почты забываю, с чего всё началось – только тогда пишу инструкцию. А вы – наоборот! Провели эксперимент, написали об этом. Получили результат – тут же написали ещё раз. Новый опыт – моментально новая запись. А никто ведь не требует сиюминутный ответ. Может сбавите темп-то?
Quote (DrWho) Текст вполне читабельный
Это диагноз… (лечение ниже)
Quote (nihonjin) В принципе можете пока писать переводы любой длины и не подгонять его сейчас, но всё-же неплохо бы подсчитывать число символов.
Может стоит делать как вы – писать «оригинал», «прямой перевод» и «конечный перевод»? То есть сперва полностью перевести каждую буковку, а потом убрать всё лишнее. Чтобы впоследствии не возникало вопросов «куда делось "wizards of Felinia"»
Quote (Spyro1998) 1 Вопрос, а как мы будем переводить титры ( если будем ) ?
Ещё один хороший вопрос об «излишности перевода»
Quote (Serlutin) Это издевательство. Не надо заставлять всех читать столько. Те, кто переводит текст, могут оставаться только в этой теме.
Ага? А то, что люди не знают, какую мы версию переводим? Как извлекать тексты? Какие существуют ограничения? Когда я вижу полное непонимание ситуации, мне кажется, что вся предыдущая работа была проделана зря. Так что я настаиваю.
Quote (Serlutin) чистоте дискретизации
Чиста, как алмаз! (Шутка)
Quote (Serlutin) К тому же переводчики люди творческие. А творческие люди могут и не захотеть читать 9 страниц о программном коде.
Я тоже творческий человек, иначе бы не написал те девять страниц и 60000 символов в этом сообщении!
Quote (Serlutin) Конечно рано об этом говорить, но всё-таки лучше отдельной версией. Чтобы можно было скачать образ, записать на диск и играть на приставке.
Кстати, я ещё ни разу не проверял, будет ли консоль читать вручнуюзаписанные диски. Как-то пробовал на CD-RW – не вышло. Да и времени тогда не было.
Quote (Serlutin) Не, чёрточка тут явно лишняя. Мы метим к 35 году.
Шутку оценил!
Quote (Serlutin) Кстати, маленький совет. Я и aleksusklim рекомендуем (не заставляем) прочитать книжку Норы Галь «Слово живое и мёртвое».
А я бы ещё прибавил неплохую статейку: http://www.lazy-games.com/job/memo.htm Или моя текстовая копия: http://klimaleksus.narod2.ru/Files/translate.txt Но только далеко не все правила относятся к нам. Поэтому я не советую им следовать! Но прочитать будет не лишним.
Quote (Serlutin) Нет. Эта музыка тоже была написана Коплендом. Вернее это даже не музыка, а музыкальные фоны. Видимо поэтому, как отдельный трек это нигде не выкладывалось.
…А у Копленда есть адрес электронной почты?...
Quote (Serlutin) В Спайро 2, она точно была соединена. Не думаю, что 3-й части, что либо изменилось.
Понять бы, чем ещё вытащить… А то ничего из моего арсенала не берёт!
Quote (Serlutin) А первую часть озвучило целых 6 (шесть) человек.
В ка..ком смысле шесть? Вот этот момент поподробнее можно?
Quote (Serlutin) Ну а вообще, моё мнение на счёт озвучки отрицательное. Потому что большего, чем безэмоциональный бубнёшь в микрофон не получится. Актёры на то и актёры, что создают иллюзию, они играют. А в случае озвучки, играют с голосом. Без профессионализма получится не лучше, а то как бы не хуже, чем у пиратов.
(А как вы представляете себе игру, в которой текст на русском, а читают его на английском!? Люди же, вместо того, чтобы наслаждаться нашим переводом, только и будут делать, что ИСКАТЬ ОШИБКИ!! Я так ни за что не подставлюсь!)
Ну вот почему я такие обвинения всегда беру не свой счёт? Я – АКТЁР!! Или примите это, или докажите обратное. Почему вы не считаете людей актёрами? Что, мы все безэмоциональные? Мы плохо говорим? Кто из вас никогда не подражал героям любимых фильмов? Кто никогда не рассказывал анекдоты с чувством? Кто никогда не пересказывал свои захватывающие приключения друзьям? Нам дан дар – язык. Он делает нас людьми. Вот животные это не могут – передать что-то на расстояние так, что слушатель поверит в него настолько, что ему будет казаться, что он там был. Передать чувства, эмоции, настроение своим голосом. Я так умею! Неужели я один? Хорошо, если даже ВЫ так не можете, то это не значит, что не может никто. Давайте в следующий раз, когда вы будете утверждать, что все непрофессионалы – не актёры и бездарны, то сделайте пометку в скобочках – «за исключением Клименко» – вот тогда я успокоюсь! А сейчас я буду выкладывать сюда творения свои. И плевать я хотел на обвинения в эгоизме:
1) Про Хатико: Стих – http://www.sunhome.ru/poetry/188761 Озвучка – http://Klimaleksus.narod2.ru/site/Speak/files/06.mp3 (2,6 Мб)
2) Новое смешное: Стих – http://www.sunhome.ru/poetry/188898 Озвучка – http://Klimaleksus.narod2.ru/site/Speak/files/05.mp3 (1 Мб)
3) Мультик «Партия» (наконец… уф, запарился же я с ним!) Стих – http://www.sunhome.ru/poetry/182811 Видео – Из 20 частей, по 1,5 Мб, итого ровно 29 Мб! http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part01.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part02.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part03.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part04.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part05.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part06.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part07.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part08.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part09.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part10.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part11.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part12.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part13.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part14.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part15.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part16.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part17.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part18.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part19.rar http://Klimaleksus.narod2.ru/site/Graphic/avi/party/party.part20.rar
А теперь попробуйте доказать мне, что я плохой актёр!
До сих пор в конкретно области ПЕРЕВОДА от меня было мало пользы. Так давайте я запишусь сразу и в переводчики, и в редакторы. Правила такие. Переводчик предоставляет перевод чего-либо. Редактор отвергает его, мотивируя чем-либо. Переводчик перерабатывает и снова выкладывает текст. Редактор опять ищет в нём ошибки. И так до тех пор, пока оба не останутся довольны!
Сообщение отредактировал aleksusklim - Воскресенье, 22.04.2012, 22:44 |
|
| |
aleksusklim | Сообщение # 98 | Тема: Перевод Spyro 3: Текст Воскресенье, 22.04.2012, 22:20 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
ЧАСТЬ 2
DrWho – сегодня вы переводчик, а я ваш редактор:
Quote (DrWho) Бьянка: Послушай меня, дракон Спайро... Теперь все вполне серьезно... Колдунья планирует устроить ловушку, чтобы поймать тебя, и если она тебя поймает... Тебе не следует этого знать... Советую тебе взять Охотника с собой и идти до того... до того... я не могу это сказать. Иди!
Listen to me, dragon... Spyro... this is serious now. The Sorceress is planning a trap for you, and if she catches you... believe me, you don't want to know what she's going to do... Look, I promise to take good care of the rest of the eggs. I mean it. Just take Hunter and go back home before... before... I can't say it, just go!
«Дракон Спайро» – тут на мой взгляд, имеется в виду другое. Раньше она обращалась к нему брезгливо, мол, «дракон». А здесь – первый раз, когда Бианка назвала его по имени. Она хотела сказать «Послушай меня, дракон…» но после паузы осторожно добавила «…Спайро…» – тут подчёркивается её доброта. Сейчас она действительно хочет помочь, а не уничтожить. Поэтому многоточия обязательны!
А где перевод «Look, I promise to take good care of the rest of the eggs. I mean it.» !?
«поймать тебя, и если она тебя поймает» – ну можно было заменить синонимами? Или в первом случае опустить (тем более что этого нет и в оригинале)
Quote (DrWho) Денежник (если хватает): Ха-Ха, колдунья имеет на руках действительно хорошие деньги. Но я могу освободить это животное, если заплатишь приличную сумму.
Heh heh, the Sorceress has a real prize on her hands here... it took two dozen rhynocs to capture this dimwitted furball, so you'd better believe he's not going to get out cheap...
Так-с… Или поясняйте, или исправляйте!
Quote (DrWho) Зоя: Привет ещё раз, Спайро. Эта вещь сделает тебя неуязвимым, но к сожалению, на определенное время. Используй, чтобы пройти сквозь огневые разветвители. Ты найдешь яйцо, если пройдешь сквозь них.
«вещь» – хоть бы «магия»? «разветвители» – а что это? Хоть «сопла» или «пушки»! «пройти» – «пройдёшь» – это раз. Выделяйте букву «ё» – это два!
Quote (DrWho) Юджин: Почему бы тебе не поискать народу из других миров? Тогда мы сможем построить ракету. Принцесса Эми: Я бы помогла с ракетой, но не хватает народу. Если ты позовёшь ещё народу, я смогу помочь
Один раз можно. Два – перебор! А уж три – идиотизм…
Quote (DrWho) Бентли: Я верю, что жители этих земель планируют создать ракетную установку. Чтобы помочь тебе с путешествием. Я помогу тебе чем смогу, но моей помощи будет недостаточно. Поэтому приведи из каждого мира жителя, чтобы мы смогли построить тебе ракетную установку.
Синонимы… где вы!?
Quote (DrWho) Безумный Эд: Не думал, что эта штуковина умеет летать... Хорошо что я не лечу.
Во втором случае нужно «полечу».
Quote (DrWho) Грета: Ракета готова к полету, Спайро! Взлетай когда пожелаешь.
Не-а! «Лакета готова к полету, Спайло! Взлетай когда пожелаешь.» – но можно ещё придумать специально слова с буквой «Р»
Quote (DrWho) Принцесса Эми: Взбирайся, Спайро! Не волнуйся, наши инженеры никогда не проваливаются с постройками.
Ну… хоть «ошибаются» или «просчитываются».
Quote (DrWho) Зоя (рядом с табличкой): Принцесса Эми показала мне путь в Морские Рифы. Она говорит, что там спрятано яйцо. Думаю, Спаркс может проверить это. Войти в Морские Рифы? Да. Нет.
«это проверить»
Quote (DrWho) Зоя: Когда я увидела гигантского ската, я думала, что тебе конец, Спаркс. Но ты показал ему. Магия яйца дала дополнительную жизнь для Спайро.
When I saw that giant stingray I thought you were a goner, Sparx, but you sure showed him. Now the magic from the egg has made you even stronger, so you can take one more hit for Spyro.
«Магия яйца сделала даже тебя сильнее, и ты можешь дать дополнительную жизнь для Спайро». Но лучше ещё перефразировать.
Quote (DrWho) Алекс: Пару медведей поставили лазерную защитную систему для нас. Но со своими ластами я не могу управлять этим. Думаю, у тебя не возникнет проблем с этим. Входи туда. Как только захочешь выйти, нажми треугольник чтобы выйти оттуда.
Ох… Убирайте, убирайте дубликаты!
Quote (DrWho) Алекс: (когда чисто): Когда я доберусь до этого медведя... Дам по морде своими ластами.
«Своими ластами» второй раз! Нет, сейчас ваш перевод нисколько не лучше Русских Пиратов… (можно «моими ластами» на крайняк)
Quote (DrWho) Ернест: Юстас и я хорошо проводили время строя снеговиков, пока злая колдунья не оживила их и не сделала их злыми. Теперь пока они рядом, пройти не получится.
Куча ляпов. Первое: что за «Ернест»? Вы б ещё «Йернест» написали! (Эдуард же не Едуард…) Здесь нужно «Э» – «Эрнест». Второе: «колдунья» – с большой буквы. Третье: если колдунья «злая», то пусть снеговики будут «плохими», а не злыми. Четвёртое: «их» два раза подряд. Пятое: «время строя» и «теперь пока» – нужны запятые.
Quote (DrWho) Ернест: Как насчет того, чтобы растопить тебе этого снеговика с помощью лазера? Я бы это сделал, но ласты не позволяют.
Фф… Может, «чтобы ты растопил» или вообще «тебе» убрать.
Quote (DrWho) Ернест (чисто): Я знал, что нам следует иметь лазерную установку.
«держать», если речь о хранении, или «использовать», если о применении.
Quote (DrWho) Юстас (подобрано): Брр.. Не знаю почему, но почему-то я себя чувствую ооооочень холодно.
«почему-то» убрать немедля!
Quote (DrWho) Табличка (закрыто): Спайро, Я бы очень хотел посетить это место, но я очень занят со своим братом. Если можешь, заходи ко мне. Бентли
«Очень» дважды. Во втором случае можно или «сильно/серьёзно», или «немного».
Quote (DrWho) Бартоломью: Этот Иети отобрал у меня мяч! Я ему сказал, чтобы он мне отдал его или ты его побьшь, но он меня не слушает. Сразиться с Иети? Да. Нет.
«его отдал» + запятая. И «побьЁшь»
Quote (DrWho) Бартоломью: Хе-хе, ты ему преподал урок... Секунду, это не мой мяч!
«Это же не мой» будет лучше.
Quote (DrWho) Бартоломью: Остался всего лишь один раунд. Убей его!
Ну вы кровожадный… «Сломай его» или «Кончай его»! Или просто «Сделай его».
Quote (DrWho) Денежник (не хватает денег): Тебе стоит как можно по быстрее набрать достаточное количество драгоценностей. Сегодня состоится кошачий хоккей, но я не пропущу тебя, пока не будет денег. 800 камней стоит вход.
Убрать «по» или добавить дефис!
Quote (DrWho) -Конечно, я люблю кошачий хоккей -Нет, я не люблю кошачий хоккей.
Как разнообразно…
Quote (DrWho) (Нет) Как хочешь. Ведь ты упускаешь хороший шанс попасть на кошачий хоккей.
Да поняли мы уже!! Хоть бы «на восхитительный/захватывающий кошачий хоккей»!
Quote (DrWho) Будешь играть в кошачий хоккей? Да. Нет.
Поясню позже.
Quote (DrWho) Еррол: Тебе следует взять реванш. Хочешь взять реванш? -Да. -Нет.
«Как разнообразно…» дубль два.
Quote (DrWho) Еррол: Этот носорог злорадствует теперь над тобой после победы, но я думаю это случайность. Тебе стоит взять реванш!
Ах, ещё и здесь…
Quote (DrWho) Еррол: Ты препродал этому носорогу хороший урок. Он решил уйти по хорошему из спорта.
Да что ж, сов других нет? В первом случае «оличный», во втором – через дефис. Так он его всё же «преподал» или «ПреПродал»?
Quote (DrWho) Юджин: Спасибо за помощь. Почему бы тебе не взять в награду это? Носорог пытался зажарить его с помощью лазера, но ты вовремя остановил его.
Ах, местоимения… Сделайте «пытался зажарить яйцо» и всё будет нормально!
Quote (DrWho) Безумный Эд: Будь осторожнее, дракон! Здесь довольно много призраков и других опастностей, некоторые из которых могут привести меня к сокровищам! Безумный Эд: Я думаю сокровища где-то здесь. Попробуй стрельнуть в этот крест. Безумный Эд: Посмотри! Какой-то идиот положил сюда яйцо вместа сокровищ.
Сокровища, сокровища… Почему не «клад» или «несметные богатства»? «опасностей» без «Т», а «вместО» через «О».
Quote (DrWho) Безумный Эд: Я хотел поплавать в своем любимом кислотном озере, но из-за носорогов не могу это сделать. Можешь расправиться с ними, чтобы я смог поплавать в озере?
Один раз исправить на «искупаться».
Quote (DrWho) (Нет) Ах, придется без озера мне теперь жить.
«Ах, теперь придётся мне жить без озера». nihonjin прав…
Quote (DrWho) (Да) Хорошо, Нажми крест для ускорения. Чтобы убить носорогов, тебе нужно добиться хорошей цели, тогда делай атаку с помощью кнопки круг.
«делай атаку» – по-русски говоря, просто «атакуй». Вы этого не знаете? И сразу же:
Quote (DrWho) -Нажми крест для ускорения. -Дождись хорошей цели. -Стреляй с помощью кнопки круг.
«Нажми крест для ускорения» – deja vu… «с помощью кнопки» = «кнопкой». «Wait for red circles to lock on.» – далеко не «дождись хорошей цели». Ну совершенно, и притом очень значимо.
Quote (DrWho) Безумный Эд: Не хотел бы я тебе тревожить снова, но их ещё больше стало! Если ты их сможешь убить, я смогу спокойно плавать в озере. Забраться на лодку? Да. Нет.
«тебЯ». Сможешь–смогу. Во втором случае «буду».
Quote (DrWho) (Да) Отлично! Забирайся на лодку, маленький дракон!
«Забирайся на лодку» – deja vu…
Quote (DrWho) -Нажми крест для ускорения. -Дождись хорошей цели. -Стреляй с помощью кнопки круг.
А второй раз по-другому перевести не судьба? Что твердить абсолютно то же самое!? Хоть бы пунктики местами переставили…
Quote (DrWho) Безумный Эд: Хо-Хо, наконец-то, озеро свободно для плавания! Я бы хотел тебя наградить чем-то очень хорошим, но всё, что у меня есть, это яйцо.
«купания» или «погружения». «есть (тире) это» (то есть, «но всё, что у меня есть – это яйцо»)
Quote (DrWho) Охотник: Спайро, ты как раз во время! Носороги со скейтбордами бросили нам вызов. Они сказали, что ты медленнее, чем Кратер Молтена. Я им сказал, что видел намного быстрее скейтордиста.
Не согласовано + опечатки.
Quote (DrWho) Охотник: Ты готов с ними сразиться? Они поставили яйцо против нас! Поехать с ними? -Поехали! -Не в этот раз. (Нет) Эм... Я думал ты хочешь с ними сразиться. Ну ладно, если захочешь сразиться с ними, возращайся.
Сколько… сколько можно!? «возращайся» = «возвращайся».
Quote (DrWho) (Да) Отлично! Используй мою специальную доску. Каждый раз как ты делаешь трюк, прибавляется ускорение, которое можно использовать с помощью кнопки квадрат. Удачи! -Делать трюки для ускорения. -Ускорение используется с помощью кнопки квадрат.
Трюки «исполняются/выполняются», а ускорение – «активируется/применяется/включается».
Quote (DrWho) Охотник: Теперь когда носорогов нет, хочешь реальный вызов? Я знаю, что ты быстр, но тебе не удастся победить меня, а перед этим всех крабов убить. Хочешь вызов?
«раздавив всех крабов по дороге». «Хочешь вызов?» – где вы слышали, чтоб так звали на бой!? Говорят «Примешь вызов?».
Quote (DrWho) Принять Вызов Хантера? -Поехали! -Нет, мне одного вызова хватило.
Боже…
Quote (DrWho) Охотник: Вууу-Хууу! Я до сих пор самый быстрый в этом мире! Охотник: Может быть ты меня и победил в скейтбординге, но у меня до сих пор все цыплята есть.
В одном случае – «всё ещё».
Quote (DrWho) Охотник (табличка): Аааа, бедный маленький дракон... Может стоит сказать твоему другу пока? Не переживай... ты скоро присоединишься к нему! -Колдунья.
Не видя оригинал, совершенно непонятно… А если взглянуть:
Awwwww, poor wittle dragon... did your friend go bye-bye? Now, now, don't worry... you'll soon be JOINING HIM! -The Sorceress
Так. «Стоит сказать твоему другу "пока" (в кавычках)». Но вообще-то «Может твой дружок пошёл спать?» И главное – «wittle»!! Она с ним «сюсюкается». Перевести как «малюсенький дракончик». «Awwwww»<>«Аааа»! «Awwwww»=«Ой-ой-ой/ути-пути»! «Now, now, don't worry...»=«Но ничего, не вольнюйся» – ЯСНО?
Quote (DrWho) Фабрика фейерверков
ИСПРАВИТЬ ВСЁ!!!
Quote (DrWho) Лиз: Спайро, нам нужна твоя помощь! Злые коты поймали нашу принцессу и захватили замок! Если мы не успеем, кот Азраэль поженится с ней!
Закиньте в Word и посмотрите, что он вам на это скажет.
Quote (DrWho) Лиз: Скорее, Спайро! Если не доберёмся до замка как можно быстрее, принцесса будет вместе с принцем Азраэль!
Склоняйте по падежам!
Quote (DrWho) Принцесса Эми: Охх... Хе-хе... Привет, Спайро! Разве не принц Азраэль был мечтой? Остальные пытались остальные пытались нас то того, чтобы пожениться и мы собираемся сбежать. Принц Азраэль сказал, что даст тебе яйцо если ты никому не скажешь где мы!
«Разве Азраэль не чудо» – или как-то так.
Quote (DrWho) Ср. Бёрд: Хороший день, Спайро! Я бы остался и поболтал ещё, но я опаздываю на... не важно. Она только мне друг, понимаешь... Это такие отношения... Это не является нарушением военного протокола или чего-либо... Что? Что ты на меня так смотришь?
«Она только мне друг, понимаешь...» – «Мы просто друзья…» «протокола» – «устава».
Quote (DrWho) Изабелла: Где же ты был, Джеймс? Мы должны были встретиться ещё час назад. И не надо старых отговорок типа: "вопросы национальной безопасности". Не думала, что этого произойдет... Но замок захватили ведьмы. Мы можем отложить свидание, если ты не избавишься от ведьм.
«Мы ведь отложим свидание,» – ещё один стимул для сержанта.
Quote (DrWho) Изабелла: Итак, вижу эти ракетные установки не показали многое... Я надеюсь аккуратность поможет тебе, поскольку в башне ещё до сих пор полно ведьм.
Неверный перевод от безысходности! Оригинал: «I see those rocket launchers aren't just for show after all...»
~~«На мой взгляд, твои ракетницы не для красоты привинчены, в конце-то концов…»
А где: «I just hope your accuracy is better than your punctuality» - ??? «Надеюсь, твоя аккуратность превосходит пунктуальность» – он ведь опоздал! Вы такой юмор губите!! Как вам не стыдно, DrWho!? Цвай!
Quote (DrWho) Джек: Судя по легендам на высокой горе должен находиться золотой гусь. Я бы хотел оказаться первым человеком, который до него доберётся!
«должен находиться» + «хотел оказаться» = отвратительный канцелярит…
Quote (DrWho) Джек: Я купил недавно какие-то непонятные зерна от медведя с сумкой камней. Он сказал, что они магические, но я ничего не могу с ними сделать. Можешь ими воспользоваться, если хочешь.
И это вы так бездарно перевели «some insta-sprout-ultra-super-grow seeds» - !? Вы уволены!
Quote (DrWho) Джек: Если ты не знаешь или потерял зерна, мы можем заново начать. Начать заново? Да. Нет. Quote (DrWho) Джек: Если ты в западне, мы можем начать заново с этого места. Начать заново? Да. Нет.
Вы оригинал вообще читали? Там «By the way, if you can't figure out what to do next, we can always start over. Start the puzzle over?», переводящееся как: «И кстати, если ты запутался в своих расчётах, мы всегда можем переиграть. Начать головоломку заново?»
Quote (DrWho) Джек: Фуух... Я нашел это яйцо по пути сюда... Похоже его снес золотой гусь. Мы должны поспешить, мы недалеко от гуся!
Второй раз – «Гусь уже близко».
Quote (DrWho) (Нет) Хорошо, тогда удачи! Думаю пазлы это не для меня. Я предпочитаю экшн.
~~«Игры поживее» или «динамичные игры».
Quote (DrWho) Джек: Такого гуся я никогда в жизни не видел.
Довольно!! Прекратите губить шутки. Оригинал: «That's the ugliest goose I've ever seen!» «Да это самый отвратительный гусь, которого я видел!»
Quote (DrWho) Бентли: Я бы рад тебе помочь, Спайро. Но сначала я должен помочь моему младшему брату. Боюсь, что он попал в неприятности, пока меня не было. Quote (DrWho) Бентли: К сожалению я еще должен помочь своему брату Бартоломью. Уровень не завершен, покинуть его? Да. Нет.
Простите, но повторения меня задолбали.
Quote (DrWho) Бартоломью: Эй Бро! Будет круто, если ты уничтожишь этот валун. Одного удара по нему будет достаточно.
Вы сколько раз читаете написанное?
Quote (DrWho) Бартоломью: Я слышал эти большие парни зовут тебя слабаком. Я надеюсь ты им преподашь урок за это?
«вон те» в первом случае.
Quote (DrWho) Бартоломью: Я тренировал этих тюленей, чтобы бросать снежки. Но к сожалению, они сбежали и теперь они против меня!
«они сбежали и собираются мне отомстить» – всё ж получше будет.
Quote (DrWho) Бартоломью: О нет, другой тюлень, только этот хитрее.
«Oh no, another seal, and this one looks really mean.» «другой» = «ещё один». Хитрее? Хм.. ну хоть «похитрее».
Quote (DrWho) Бартоломью: Какой-то носорог заблокировал дорогу с помощью этой коробки. Для тебя не составит проблем подвинуть его для прохода.
Носорога!?
Quote (DrWho) Бартоломью: У меня есть идея, почему бы тебе не расположить эти блоки по середине, чтобы сооружить мост?
«по средине» = в ряд. «сооружить» = соорудить.
Quote (DrWho) Спаркс: Медовая трасса это дом с самыми быстрами пчелами в этом мире. В какой вызов ты хочешь сыграть? Выберите вызов: -Препятствия на время. -Трасса с пчелами -Выйти с уровня.
Вы хуже русских пиратов однозначно. «это» х2. (в первом случае заменить на тире) «быстрЫми» + «пчЁлами». А «вызов»? Поумнее ничего в голову не пришло? «испытание», например?
Сообщение отредактировал aleksusklim - Воскресенье, 22.04.2012, 22:40 |
|
| |
aleksusklim | Сообщение # 99 | Тема: Перевод Spyro 3: Текст Воскресенье, 22.04.2012, 22:22 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
ЧАСТЬ 3
Quote (DrWho) Спаркс (1ое): Самый легкий и быстрый способ пройти уровень в этом порядке: Пролететь через все соты, улья, одолеть всех пчел, ну и на последок убить медведей.
Не будем никого убивать!! «разбить», «сразить» или «атаковать». А «напоследок» пишется слитно.
Quote (DrWho) Спаркс: Урааа! Мы выграли еще одно состязание в победе этого вызова!
Если бы я не знал, что это переведено, я бы сказал: «Это переведено!». Худшая реакция из всех возможных. А «выграли» = «выИграли». Вам бы русский чуток подучить…
Quote (DrWho) Спаркс (2ое): На этот раз твоими оппонентами являются большие шмели! Красные точки ведут путь. Не забывай, что нужно пролететь через каждое зеленое кольцо. -Пролети через все зеленые кольца. -Красные точки покажут тебе путь.
Ну не знаю. Хотя бы «ведут по пути». А второй раз путь заменить на «дорогу».
Quote (DrWho) Спаркс: Мы выиграли яйцо за первое место! Этим шмелям стоит знать лучше как соревноваться с драконами.
Это вообще не по-русски.
Quote (DrWho) Охотник: Осторожно, Спайро. Здесь летает большая овечка вокруг и пытается поймать меня, поскольку я забрал у них яйцо. Подожди меня здесь, я заманю овцу вниз реки меда!
«вокруг летает» и «медовой реки».
Quote (DrWho) Следует Охотнику идти? -Иди, я прикрою тебя! -Хах, это не такая большая проблема. (Нет) Не знаю, спайро, я никогда не видел эту овцу такой злой ещё... (Да) Ладно, я пошел!
Should Hunter go for it? Go ahead, I'll cover you! Nah, it's no big deal.
У вас нет отказа. Я бы перевёл отказ как «Не-а, я бы на это не рассчитывал.» А «ещё» переместить перед «никогда». И «пошЁл»!
Quote (DrWho) Я учел все возможные варианты текста. Переводил сам, в некоторых местах посочинял даже :) Теперь вопрос к aleksusklim, кроме 4го и супер бонус раунда что переводить осталось?
Отвечаю: целиком третий мир.
Весь ваш перевод еле тянет на «удовлетворительно» – и это с учётом ваших первых исправлений! Моя оценка – «3++». Один плюс за старания, второй – за объём.
Поймите меня… Может, вместо того, чтобы перевести семь уровней за один день, стоило перевести один уровень за семь дней? Перевести КЛАССНО… А вы перевели ОТСТОЙНО. «Поспешишь – людей насмешишь…» …Или огорчишь…
Мне стыдно за вас и ваш текст. Я не подозревал, насколько можно было испортить затею перевода. И вы ещё хотели озвучивать!? Да актёров к вашему тексту и близко подпускать нельзя! Что мне с вами делать…
nihonjin, спасайте. Не хочу, чтобы DrWho на меня обиделся. А это уже неизбежно…
Всем теперь кажется, что я пропагандирую ТОЧНЫЙ перевод, но это не верно. Можно изменять смысл. Но только так, чтобы он стал ЛУЧШЕ. А не хуже… Например иногда бывают случаи, когда выражение не переводиться. Ну вот не переводиться – и всё! Что делать? Хуже всего – перевести в лоб. Оно будет звучать совершенно не по-русски. Причём нам по оригиналу понятно, ЧТО пытались сказать. Но просто в русском языке так не говорят. Моё решение проблемы: Измените оригинал. Представьте, что там написано не то, что написано, а то, что ДОЛЖНО там быть. И переведите как нужно. Но обязательно это поясните, иначе можно нарваться на критику.
Мой перевод Spooky Swamp. Первое и самое главное – почти всё переведено в стихах! Жанр хокку мне знаком, у меня есть три стихотворения в этом стиле: http://www.sunhome.ru/poetry/150082 http://www.sunhome.ru/poetry/150516 http://www.sunhome.ru/poetry/188753
Но речь сейчас не обо мне, а о переводе. О {Разнице} беспокоиться не пришлось – в строки в оригинале добавлены пробелы вначале (десять штук), чтобы текст был похож на стих.
Также я сравниваю свой перевод с переводом от русских пиратов. И с оригиналом. И с прямым переводом. В подуровне два светлячка говорят абсолютно одно и то же. В оригинале так. Мои расские пираты перевели как бы несколько раз, но почти одинаково. А вот меня писать дубликаты не заставишь! Поэтому я провёл тотальный анализ своего текста, чтобы слова не повторялись вообще. И я гарантирую качество перевода. Я делал его полторы недели. Сначала я выгрузил оригинальный текст на пяти языках. Потом перевод от русских пиратов. Потом отснял это всё на фотоаппарат. Потом переписал ВСЁ (ну кроме европейских языков) в тетрадь. Трассировал по словарю некоторые фразы на предмет наличия фразеологических оборотов. Сделал построчный перевод. И перевод в стихах. Далее переписал его ещё раз, исключая повторения и исправляя «масленое масло». Ещё немного подумал над текстом. Сыграл в уровень раз десять, чтобы запомнить, что после чего идёт. Переписал перевод ещё раз. И наконец, напечатал его сюда. А в тетради у меня ушло 15 листов (тридцать страниц)! А DrWho за день перевёл мир… Я бы снял перед вами шляпу, если бы в ваших переводах не было хоть половины всех ошибок, что я нашёл.
Начнём с оригинала (О) и пиратского перевода (П):
О: Homer the Firefly П: Светлячок Гомер
Да, меня устраивает такой перевод имени. Но ничего особенного.
О: That gator was mean.\I thought I was a goner.\ Thanks for saving me. П: Привратник подлец\Я думал, мне конец\Спасибо за спасение.
Ну насчёт «подлец» можно поспорить, а остальное нормально.
О: Our tea lamps are dark.\Perhaps your hot dragon breath\could set them aglow. П: Наши лампы погасли.\Может твоё драконье дыхание\Сможет их зажечь.
«может сможет». А так – порядок. …«tea lamps» = «чайные лампы»? Или нет?
О: No happier sight\Have I seen, than a tea lamp\lit by Dragonflame. П: Никакого знака\Я предвижу как наша лампа\Загорится от огня.
Ха! Позор! Они не справились! Непонимание сути. Мой простой перевод: М: Я ничего счастливее не видел, чем чайная лампа, зажжённая драконьим пламенем.
О: Beware the water.\ Snapping jaws of piranha\claim many victims. П: Берегись воды.\Зубастые пираньи съели\Многих смельчаков.
Ну не совсем так. Если быть ближе, то: М: Берегись воды: лязгающие пираньи челюсти требуют множество жертв.
О: Shiny the Firefly П: Светлячок Шайни
Бездарность!! Только «Блеск» и никак иначе!
О: You are brave, dragon.\Much braver than I, by far.\Here, take this darn egg. П: Ты смелый дракон\Намного смелее меня\Забери это чёртово яйцо.
Почти верно. Но почему «darn»? Я пытался понять… Слушал озвучку в оригинале. Но так и не понял. Я изменю это.
О: Come on in.\ -Sheila П: Заходи.\ -Шейла
Да, можно и так сказать.
О: Bubba the Firefly П:Светлячок Бубба.
«Пузырь»? Может в том смысле, что «лёгкий как мыльный пузырёк»? Ладно, оставлю «Бубба», но ещё подумаю.
О: When all lamps are lit\there is a secret in here\that I will show you. П: Когда зажгутся лампы\Откроется секрет\Который я покажу тебе.
Ну не то что бы «откроется», но в целом верно. Можно было бы: М: Когда все лампы будут гореть, я покажу тебе секрет, который здесь есть.
О: The tea lamps are lit!\ Now I'll tell you the secret\of what's in this house! П: Все лампы зажжены!\Теперь я расскажу тебе секрет\Находящийся в этом доме.
Да, всё так. Но «лампы» «зажжены» – повторяется постоянно. Пираты не блещут многословием! Я бы сделал: М: Чайные лампы светят! Теперь я расскажу тебе секрет этого дома.
О: A creepy wizard\lives inside, but hates the light.\He has awoken. П: Чёртов колдун\Жил внутри, но ненавидел свет\Он проснулся.
Со временем напутали. И «Creepy»<> «Чёртов»! Это скорее «злодей/крип(бот)/враг». Просто: М: Злой колдун живёт внутри, но ненавидит свет. Он проснулся.
О: He swore to destroy\whoever lights the tea lamps.\ Better you than me. &[Use Wizard's bombs against him. &[Avoid Gators. П: Он поклялся убить\Того, кто сумеет зажечь лампы.\Пусть лучше тебя, чем меня. &[Используй бомбы против колдуна. &[Берегись охр.
(Во светлячок-кидала!)
Почему сразу «убить» (DrWho, они такие же кровожадные, как и вы!) ? Можно ведь «уничтожить», «разбить», «отомстить» и ещё много более гуманных вариантов. Да надо бы «его же бомбы». И вот ещё значимый момент, который давно следовало осветить:
Spyro
Это момент, когда в любом месте игры появляется зелёная надпись-подсказка, заголовок которой – Spyro (или Шейла/Бентли/Берд/Агент9)! Это он типа, отвечает? Или думает про себя? Или это обращение к нему? Какая разница? Разница в лице. Как переводить? От первого лица (Использую бомбы против колдуна, избегу охраны), от второго лица (Используй бомбы против колдуна, избегай охраны) или в неопределённой форме (Использовать бомбы против колдуна, избежать охраны)? ЭТО ВАЖНО ! Это повлияет на все будущие переводы ВСЕХ диалогов. Нужно определиться раз и навсегда. Раньше я хотел переводить от второго лица («ты будешь делать»), но оказалось, что от второго лица всё поясняется до этого и так. От первого не хочу («я буду делать») – это словно как повтор, «что мы проходили на предыдущем уроке». А вот неопределённая форма («делать» без «буду/будешь/будь») кажется, подойдёт. Либо примите мой довод и ВСЕГДА переводите такие места в неопределённой отвлечённой форме (будто это инструкция) без любых повелительных наклонений; или оспорьте меня, приведя свои аргументы.
О: Moneybags П: Кошелёк
Ну это мы знаем. А вот разговор очень увлекательный:
О: This door is jammed shut.\Only the power of gems\Can hope to move it. &Pay ^^^ gems to open the door? &Sure, just shut up. &No, your haiku poetry stinks. П: Эта дверь заблокирована\Только сила самоцветов\Сможет её открыть. &Надо ^^^ самоцветов для прохода? &Конечно. &Низачто. {да-да, в одно слово!}
Ужас! Позор! Нужно так: М: Эта дверь заперта накрепко. Только мощь {или сила} самоцветов может надеется сдвинуть её. {А дальше характеристика его стихов, причём в обоих случаях отрицательная. Смотрите мой стихотворный перевод ниже.}
Тут такой момент… Он говорит: «This door is JAMMed shut… …оnly the power of GEMS…». Словно «jammed» и «gems» – это одно и то же. Или «причина-следствие», или «характеристика/диагноз». Переводить нужно с умом. Так: «Это КАМЕННАЯ дверь – только сила КАМНЕЙ её откроет». Как вам?
О: You've made a wise choice...\It will mean more eggs for you...\And more gems for me.\ Best of all, Spyro...\I can stop speaking Haiku.\What a sweet relief! П: Ты сделал правильный выбор..\Для тебя это значит больше яиц\А для меня – самоцветов.\Удачи тете, Спайро…\Я могу прекратить хайковать.\Какое милое пособие!
Да-а… В начале ничего, а под конец… Совсем в другую строну ушли! Я: М: Ты сделал мудрый выбор. Это значит больше яиц для тебя и самоцветов для меня. Всего хорошего, Спайро… Я могу перестать говорить в хайку – какое приятное освобождение!
О: Dad gummit, dragon.\Just cough up those stinking gems.\And I can go home. П: Дракон, какого…\Просто притащи мне эти чёртовы самоцветы\И я иду домой.
Вот! Как раз момент, который не переводиться. «Dad» – «Папаша». «Gummit» – «Прилипала». Опять благой мат Толстосума… (интересно, пираты имели в виду «КакОва…» или же «КакавО!»?) «cough up» – «выкашлять/оторвать от сердца/выжать из себя». Но суть всей фразы нам ясна. Ладно, мой перевод увидите потом.
О: I can't let you through.\You're too poor to pass this door.\ Come back with more cash. &[^^^ gems needed to open door П: Я не могу тебя пропустить.\Ты слишком беден, чотоб{да} пройти эту дверь.\Вернись, когда разбогатеешь. &[^^^ самоцветов необходимо.
Можно бы ближе к тексту: М: Я не могу позволить тебе проникнуть: ты слишком беден, чтоб миновать это дверь. Возвращайся с большей наличкой. (чуть не по-русски, но как бы употребить «cash» иначе?)
О: Stop talking to me.\I hate speaking in Haiku.\Just go find some gems... П: Кончай разговоры.\Я ненавижу хайку.\Иди и ищи самоцветы.
Ну да, мол «хорош болтать» и.т.д. А вот «иди и ищи» – слишком много звуков «И» в этой фразе!
О: Sheila П: Шейла
Ясно!
О: This swamp smells so sweet.\The springtime trees are fragrant.\I'm off to kick butt. П: Это болото отлично пахнет.\Весенние деревья благоухают.\А я пойду надеру пару задниц.
Ещё один непереводимый момент. Ну если отбросить вариант, что «butt»=«задница» (кого она будет там лупасить, кроме грибов да камней? Не светлячков же!), то остаётся нечто вроде «Я недалеко от биться мишеней» или «Я попинаю что-нибудь». Но мой вариант гораздо лучше, увидите потом!
О: Basho the Firefly {и} Buson the Firefly П: Светлячок Башо {и} Светлячок Бузон.
Да они же подрывники! Они молотилы-воротилы! Таким тоном и с такой радостью говорят о терроризме, что и перевести нужно соответственно! Я предлагаю: «Молот» и «Кувалда». Или «Молот» и «Топор». Или «Братья Молоты: Топор и Клин»! Как вам?
Всё далее имеет один оригинал и два русскопиратских варианта.
О: We have the bombs here.\We must destroy the egg cage.\But we just go boom.\ \Kangaroo can help!\You can clear the path for us!\Will Sheila help us? &Help the firefly bombers? &Yes, I love your freestyle Haiku. &Sorry, just passing through.
П1: У нас есть бомбы тут.\Мы должны взорвать яичную клетку.\Но мы просто взорвёмся.\\Кенгуру поможет!\Очисти нам путь!\Шейла нам поможет? &Помочь светлячкам? &Да, мне нравится стиль хайку. &Извини, мне пора сваливать. П2: Бомбы у нас тут есть.\Мы должны раздолбать клетку.\Но будем только бум.\\Кенгуру поможет!!!\Ты расчистишь для нас путь!!!\Шейла нам поможет? &Помочь жукам бомбить? &Да, мне нравится стиль хайку. &Извините, мне пора.
Ну как бы… Можно и получше придумать. И куда столько восклицательных знаков?
О: If you clear my path\I can blow up the egg cage.\Poor, poor captive eggs. &Help the twin? &Yes, of course. &No more Haiku... please! П1: Очисти мне путь\Я могу взорвать эту калетку {да}\Ах бедные яички. &Помочь им? &Да, конечно. &Нет, низачто… {да}. П2: Если ты очистишь путь\Я смогу взорвать клетку\Бедные, бедные яички. &Помочь им? &Да, конечно. &Нет, никогда.
Второй вариант немного лучше: «смогу» (условное наклонение) + «если». Но ответ «Нет» переведён шуткоубийсвом. А «captive» – «пленники/пленные» не освещено.
О: The eggs are all free!\Two dragons are born today!\Sheila's my hero. П1: Все яйца свободны!!!\Два дракона родились сегодня!\Шейла мой герой. П2: Все яйца свободны!!!\Два дракона родились счаз!\Шейла мой герой!!
Ничего не добавить, ничего не отнять. А следующая часть повторяется аж четыре раза, но в двух случаях с подсказкой.
О: Yes! It's bombing time!\Here I come, my little eggs,\To free you at last!! П1: Да! Пора бомбить! Ура!!\Я пришёл, мои маленькие яйца\Я освобожу вас счас!! П2: Да! Пора бомбить!!\А вот и я мои маленькие яйца\Я освобожу вас!!! П3: Да! Пора бомбить!\А вот и я! Мои маленькие йца!! {да}\Я освобожу вас!!! П4: Да!!! Пора бомбить!!!\Я иду к вам, мои яйца!!!\Я освобожу вас!!!
Та подсказка для двух последних вариантов соответственно:
О: &[Kick rocks out of the way. &[Stomp on mushrooms. к П3: &[Раздолбать скалы по пути? &[Растоптать грибы. к П4: &[Разбить скалы на пути. &[Раздавить грибы.
Отказ:
О: We will be waiting.\When you return to help us,\We shall bomb again! П1: Мы будем ждать тебя\Ты вернёшься к нам и опять,\Мы будем бомбить!!!! П2: Мы будем ждать.\Когда ты вернёшься помогать\Мы будем бомбить!!!
Типа того.
О: One egg cage remains.\Will you now help my brother\to free the last egg? &Will you help my brother now? &Yes.&No. П1: Осталась одна клетка.\Ты поможешь моему брату\Освободить яйцо? &Ты поможешь моему брату счаз? &Да &Нет П2: Осталась одна клетка.\Ты поможешь моему брату\Освободить яйцо. .&Помочь его брату или нет? &Да &Не
Надо бы «последнее яйцо» (the last egg).
О: OW...\I went boom again.\Big rocks can be kicked, they say,\Mushrooms must be stomped. &Help the twin? &Yes.&No. П1: Я пошёл бомбить…\Большие камни можно раздолбать,\Все грибы – растоптать… &Помочь им? &Да &Нет П2: Я пошёл бомбить!!!\Большие камни можно разбить,\Грибы надо растоптать. &Помочь им? &Да &Нет
Это всё. Ошибки пиратов (орфографические) я выделил сноской «{да}». Потому что их текст я перечитывал вручную (иначе откуда два регистра?) и мог случайно допустить свои опечатки. Поэтому, если где то ошибка без «{да}», то это я напортачил!
Уф, добрались до моего перевода! В стихах. Для тех, кто не знает: правила хайку. Нельзя рифмовать. Должно быть ровно три строчки. Длина первой – пять слогов, второй – семь, и последней – тоже пять. Читается задумчиво и философски (правда в оригинале я этого не услышал). Пишется тоже не прямо, а так, стихотворно. В общем – странно (на простой человеческий взгляд). И я заботился о неповторяемости слов. Я подбирал синонимы. Долго подбирал! За продукт буду отвечать. Если есть ошибки – разнесите меня в клочья, если сумеете.
Сообщение отредактировал aleksusklim - Воскресенье, 22.04.2012, 22:32 |
|
| |
aleksusklim | Сообщение # 100 | Тема: Перевод Spyro 3: Взлом и программы Воскресенье, 22.04.2012, 22:25 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Продолжение
Алгоритм поиска адреса на строку 1) Запускаем Epsxe > Run BIOS. 2) Нажимаем CTRL+H – режим взломщика. 3) Открываем ArtMoney, выбираем нужный процесс (Epsxe/pec) 4) В «(pec) Cheat Hacking Engine» выбираем «Equal value / Char (1 byte)» даём поиск (continue). Потом жмём «Add/Remove R.», вводим «Start: 1 / End : 1FFFFE» – Remove. В таблице окажется лишь два крайних адреса = 0. В ArtMoney – поиск – точное значение – 1 байт – адреса ВСЕ. Потом в PEC – Modify на первое – сделать = 1. В ArtMoney – отсеять =1. Находи несколько адресов, добавляем только первый. Повторяем то же со адресом 801FFFFF. Находим второй в ArtMoney. Если отнять от второго адреса первый, то получим (десятичный) 2097151. Всё верно. Мы только что сопоставили реальные адреса RAM эмулятора виртуальным адресам PlayStation. У меня это числа 0094C020 и 00B4C01F. Все дельнейшие взломы ArtMoney должны быть с опцией «Диапазон адресов – Ваш набор > » и вставить найденные адреса начала и конца. Либо если используете мой Epsxe, то пропустите этот пункт, используйте мои. 5) Перезагрузите Epsxe, выберите образ игры и зайдите в нужный уровень > CTLR+H. 6) Определите надпись для трассировки. Для примера – «Sunrise Spring Home». 7) ArtMoney > Искать > Точное значение > «Sunrise Spring Home» > Тип – Текст > Диапазон адресов – Ваш набор (найденные) > ОК. 8) Будет найден один адрес, занесите его в таблицу. 9) Щёлкните по «Текст х байт» и измените его на «Тип – целое 1 байт». 10) В PEC дайте поиск по этому значению, которое появилось вместо текста (код первого символа). 11) В ArtMoney измените его. 12) В PEC продолжите поиск (не продолжая игру!) по новому изменённому значению. 13) Будет найден единственный адрес. 14) Откройте Калькулятор > Инженерный > Hex. Введите его. 15) Преобразуйте в десятичную систему и скопируйте. 16) ArtMoney > Искать > Точное > {вставьте адрес} > Тип – ваш набор – отметить «целое 4 байта» > ОК. 17) Будет найден единственный (дай бог) адрес – указатель на строку. 18) Добавьте в таблицу, правый клик по нему > Редактор памяти. 19) Увидите где лежат указатели! Перепечатайте оттуда немного шестнадцатеричных цифр куда-нибудь в Блокнот. 20) Откройте в WinHex приблизительное место для проверки (файл SCUS_944.67) и сделайте Search > Find Hex Values > {вставьте перепечатанное сюда}. 21) Если что-то найдётся, то вы сможете понять, как там всё устроено…
Вот так «ничем» этот метод и заканчивается. Вот что я нашёл: http://Klimaleksus.narod2.ru/Files/GH/hex.png Абсолютное совпадение. Теперь можно изменять данные файла, и это реально изменит поведение игры. Главное ничего не напутать.
Думаем дальше. Мы знаем адрес на строку. Как изменить длину этой строки? Сдвигать всё равно нельзя – мы же не будем отлавливать десятки адресов по последующим записям… Может тогда найти пустое пространство, и выставить указатель туда? А можно ли вообще его менять? Пока решение – увеличить одну строку за счёт уменьшения другой. И чем ближе друг к другу будут эти строки, тем легче выполнить изменение адреса. Указатели идут абсолютные, но при таком методе нам важно относительное показание квартетов, а не полный адрес. Грубо говоря, там десяток добавил, а тут – убрал. Разумеется с уже изменёнными длинами строк. Муторно! Да. Однако результативно. Но стоит ли оно того, если всё придётся делать вручную?
А я пока искал ещё строковые константы. Это имена уровней, приведённые выше, названия сценок. Имена Спайро-Шейла-Бёрд-Бентли-Агент9 – все те, за кого можно играть (в зелёных диалогах отображается имя персонажа). Это всё глобально. А что локально? Имена живых говорящих существ и их тексты. Также часть меню паузы, где инструкции по управлению. А ещё ЯЙЦА! (которые почему-то разделены всегда только одним нулём…)
Анализировал список яиц. И знаете что! После него ДОФИГА свободного места! Кучи килобайтов! И они напрямую записаны из суб-субфайла номер два. Всегда! Во всех уровнях есть тонны свободного места. Ну просто девать некуда… Возможно ли его использовать? Я залил после яичек первую фразу Бианки (самый длинный текст во всей игре!) в ОЗУ. Получил на него указатель, отняв от абсолютного адреса разницу между адресным пространством Epsxe и виртуальной игрой (пункт 4). Этот адрес залил вместо указателя на первую фразу первого светлячка Spooky Swamp. Кстати, это было сложно! Нужно точно попасть на 4 байта до начала текста. Там всё странно: имена персонажей начинаются вот прям с текста, а их реплики – с некого квартета, который не дай бог зацепить и – конец игре моментальный! А вот имена менять – так я могу хоть на что указатель закинуть – и будет другое имя. Хоть на «Sony Computer…» в самом начале EXE. Или на реплику, вот: http://Klimaleksus.narod2.ru/Files/GH/talk1.jpg Видали? Это не скопированный текст, это просто указатель на имя персонажа приравнен указателю на первую букву его реплики. Но не той, которую он говорит сейчас.
А вот обратно (сделать реплику равную имени) не получиться. Потому что каждая реплика имеет префикс – 4 байта. Он как-то определят, будет ли разговор закончен по нажатию кнопки, или персонаж скажет ещё что-нибудь; также регулирует поведение «треугольника», но есть что-то изменить – игра падает мгновенно. И вот на мою встроенную речь Бианки клевать не хотело… Тогда я немного продублировал собственный текст персонажа и залил его поверх и яиц и моего текста. Вуаля! http://Klimaleksus.narod2.ru/Files/GH/talk2.jpg http://Klimaleksus.narod2.ru/Files/GH/talk3.jpg http://Klimaleksus.narod2.ru/Files/GH/talk4.jpg http://Klimaleksus.narod2.ru/Files/GH/talk5.jpg Вот! Я изменил длину! Очень сильно изменил. И такое можно проделать везде! Два недостатка – сложный процесс и «глобальность» места назначения. Скорее всего наше «пустое пространство» глобально на всём уровне, включая все подуровни. И если ТАК менять ВЕСЬ текст, то место рано или поздно закончиться. Поэтому есть четыре варианта удлинения текста («глоб» – один раз для всех подуровней; «лок» – относится только к единственной фразе/реплике):
1) Махинации со шрифтом (глоб) 2) Превращение нулей в буквы (лок) 3) Изменение соседних указатель за счёт друг друга (лок) 4) Вынесение реплик в «яичную» зону (глоб)
Плюсы и минусы каждого метода: Первый: Плюсы – + Гибкость, если всё удастся. + Простая реализация. + Определённо безопасно. Минусы: – Трудно нарисовать правильный шрифт. – Придётся иметь столько шрифтов, сколько у нас таких уровней. – Возможно только после утверждения шрифта. – Мало места для текста (не более 10-15 знакомест на весь уровень)
Второй: Плюсы – + Легкость реализации. + Массовость. + Определённо безопасно. Минусы: – Мало шансов, что будет свободное место (75% один символ, 50% – два и лишь 25% –три) – Не более трёх знакомест на одну надпись.
Третий: Плюсы – + Если реплик у персонажа много, количество свободных знакомест велико. + Не нужно искать абсолютный адрес указателя. + По факту, мы будем заботиться о {Разнице} не каждой отдельно строки, а суммы всех знаков всех реплик одного живого существа. Минусы: – Применимо только к диалогам. – Сложно в реализации, не обойтись без двоичного редактора. – Требует тщательной проверки. – Не создаёт настоящего пространства, а лишь перераспределяет его. – Опасность отказа игры.
Четвёртый: Плюсы – + Можно сделать везде во всей игре. + Практически неограниченное увеличение длины. + Применимо абсолютно ко всему – реплики, имена, надписи. + Позволяет писать что угодно. + Можно комбинировать с предыдущим методом, тогда вынесенная фраза отдаст все опустошённые символы для соседних реплик. Минусы: – ОЧЕНЬ СЛОЖНО и трудоёмко!! – До конца не исследовано. – Опасно всерьёз. – Неэкономично. – Оставляет «мусор» в виде опустошённых байтов на месте старой фразы (вернее саму фразу, если её не удалить принудительно) – Но если использовать этот метод, то мы потеряем «задор», обленимся и наш высококачественный продукт превратиться в канцелярский механический перевод без грамма креатива.
Дело за вами! Или взломайте ещё сильнее, или просто перепроверьте все мои методы. Вы спросите, как? А я написал ещё пять программ на Delphi за другие три для беспробудного дельфийского забвения! Качайте: http://Klimaleksus.narod2.ru/Files/Mem.rar Ни одна из них не выполняет законченной работы. Они лишь облегчают ковыряние фалов. И ещё одна ремарочка: я их не проверял. Нет, я их конечно проверял, но только поверхностно. Просто если бы я занимался ещё и трассировкой, то этот комментарий появился бы только недели через три… Давайте так: я делаю программы, а вы, хакеры, их проверяете и сообщаете мне результаты. А я буду только создавать!
Инструкция. «Bit2txT.exe». Перетаскиваете на него любой файл, и он разбивает его на три составляющие – текст, данные и нулевые байты. Это записывается построчно в TXT. Строки начинаются либо (латинские) с «T:» – далее идёт ANSI текстовая строка (кириллица запрещена!), либо с «B:», после чего будут байты как шестнадцатеричные пары, разделённые ОДНИМ пробелом, или наконец «O:» (это английская буква O, а не ноль), а за ним число – обозначает столько-то нулевых байт. По сути говоря, извлекает текст. Хе, забавно… Зачем нужна? А через неё очень легко превратить несколько нулей в буквы. Делается так: 1) Конвертируете часть или весь файл. 2) Открываете TXT и переходите к нужной строке. 3) Смотрите сколько нулей показано в следующей строчке. Если больше одного, то можно дописать несколько букв к строке, но отнять столько же от количества нулей. 4) Сохраняете документ и перетаскиваете его на деконвертер. 5) А уже потом производите анализ Текст-О-Вытаскавателем! Получите дополнительные буквы, готовые к изменению!
А «деконвертер» – это «Txt2biT.exe». Перетаскиваете на него свой документ, и он собирает из него снова двоичный файл. Осторожно! Никаких проверок на ошибки не производится! Не оставляйте пустые строки. Не ставьте лишние пробели ни перед, ни после строк. Шестнадцатеричные данные вносите (если вдруг нужно будет) именно так, как они записаны – два символа в верхнем регистре через пробел и с пробелом на конце. Иначе он запакуется, но с ошибками. Да, и не перетаскивайте на него ничего кроме документов, полученных предыдущее программой!
Но это годится только для работы с нулями. А что же с относительными изменениями указателей? Для этого есть другая программа: «Uns2txT.exe» – тоже, перетаскивайте на него файлы или части файлов. Результат покажется странным, но я объясню. Программа представляет файл как набор беззнаковых квартетов (unsigned integer 32 bit). Первая четвёрка превращается в число, которое записывается в первую строчку документа. А следующая четвёрка вычитается из предыдущей, и записывается разница (может быть отрицательной, поэтому мне пришлось внутри использовать int64). Считываются ещё 4 байта, и их значение отнимается от предыдущего (но не от уже получено разницы) и записывается на следующую строку. И так пока не кончиться файл (желательно, чтобы его размер был кратен четырём).
Декнвертер – «Txt2unS.exe». Всё точно также, но наоборот. План работы: 1) Как-либо найти указатели на реплики. 2) В WinHex выделить этот блок (где указатели записаны подряд, например 16 байт – четыре указателя). 3) Скопировать в новый файл. 4) Перетащить этот файл на конвертер. 5) Будет получен документ, где перечислены ДЛИНЫ строк (включая нули и начальные квартеты). Потому что если строки записаны одна за другой, то отнимая из начального адреса следующей начальный адрес предыдущей, мы и получим длину первой. 6) Изменить эти самые длины, придерживаясь такого правила – сколько добавили, столько же отнимите. 7) Сохранить и сконвертировать обратно. 8) Открыть результат в WinHex, скопировать весь и залить поверх исходного блока в начальном файле.
Получается очень удобно (чем трижды пересчитывать каждый адрес). Заметьте, что в SCUS длины строк будут отрицательными – ведь они расположены не друг за другом, а наоборот – самая первая строка стоит в конце.
Эти программы, надеюсь, облегчат нам работу. А как быть с последним методом изменения любой длины? На это счёт у меня нет идей… Поэтому я просто создал штучку, которая умеет извлекать ОЗУ в файл, и заливать его обратно. В любой процесс. Но нас интересует Epsxe… Однако если пару раз прокопировать весь дамп PlayStation (2 Мб), то эмулятор зависает. Наверное потому, что мы не копируем VRAM и системную область. А схватить весь процесс невозможно, потому что данные записываются с промежутками, а моя прога умеет читать только блочно.
Адрес и размер задаётся числом. Если хотите в шестнадцатеричной системе, поставьте «h» последним символом. И не забывайте постоянно нажимать «Применить данные!» после любого изменения любого текстового поля. Начальный адрес всех процессов – «10000h». По умолчанию я поставил «0094C020h» – моя виртуальная область в Epsxe. Размер – 2 Мб. Выгружать для работы ещё можно, а вот загружать обратно не советую…
Основное использование на мой взгляд – внедрение нужной инфы по нужному адресу для проверки игры «на лету». Альтернатива – «копировать область» в ArtMoney, но там вы больше килобайта не захватите; или «open RAM» в WinHex, но чёртос-два вы сможете его обновить, не переоткрывая процесс заново! А моя программка очень легко копирует мелкие области. А файлы-то можно затем и в том же WinHex редактировать, словно это ОЗУ (только с поправкой на offset). А обновлять – чтением и записью.
Ну и каким же из четырёх способов воспользуемся? Я думаю так: – Первый метод пока отложить и не рассчитывать на него (и «СПАЙРО» и «НЕТ» теперь решаются вторым методом) – Второй использовать повсеместно, где это получиться. Хуже точно не станет! – Третий применять редко, только если это будет удобно и принесёт больше пользы, чем потребует усилий. – А четвёртый – это козырь. Его можно применять только в крайних случаях! И я придумал в каких. Описал в теме перевода текста. Подсказка «Назойливая Зоя и Пропавшая Шейла»!
А изменять данные ОЗУ на лету, видя в окне поведение игры оказалось очень увлекательным занятием! Я модифицировал строку и сразу наблюдал реакцию игры. Как же легко было определить все диакритические знаки: http://Klimaleksus.narod2.ru/Files/GH/sign.png
Но если поставить @$, то мигом слетают все текстуры: http://Klimaleksus.narod2.ru/Files/GH/bad.jpg Если захотим напугать пользователя – метод есть!
Также нашёл «скрытые» цвета, можно добавить в список: – «@:» – Тёмно-коричневый, – «@;» – Тёмно-красный, – «@<» – Оранжево-розовый, – «@=» – Прикольный тёмно-серый. Все вместе: http://Klimaleksus.narod2.ru/Files/GH/color.png
Жаль, нет синего. Изменить просто так их не получится, потому что они заданы не в текстуре, а в программном коде. Придётся довольствоваться ими, а не изобретать свои.
Проверил остальную ASCII таблицу. Так оказывается, что все байты до пробела отвечают за показ отдельностоящих диакритических значков! По несколько вариантов, я выбрал самые широкие: http://Klimaleksus.narod2.ru/Files/GH/all.png Но где же перевёрнутый восклицательный знак (@!) ? Кажется, нету. Ну и ладно, обойдёмся без него. А все остальные можно перерисовать! Это подарит нам целых восемь экстра-знакомест! Но чтобы их использовать, Текст-О-Вытаскиватель придётся задавать не «Построчно», а «Слепить» и редактировать WinHex. Иначе никак. Но всё же легче, чем заменять нули!
Так-так, минуточку… Я ту циферки прикинул… А если… А если сделать ДВА регистра русских букв? Надо 33*2. Это 66. Цифры и основные символы не менять. Имеем латиницу: «A-Z» – 26. Ещё «a-z» – 26. Итого уже 52. Остаётся 14 символов… Черту («/») меняем. Апостроф меняем. Плюс меняем. Проценты меняем. Звезду меняем. Осталось девять. А теперь у нас есть 8 диакритических. Итог – минус один. Но ведь «Ы» (если «Ынха» не придётся писать!), «Ъ», «Ь» можно оставить лишь нижним. А ещё «О» приравнять нулю «0». Глядишь и засунем два регистра! …Ой, а плюс-то нужен для комбинаций типа «Х+Х для полёта»… Тогда НЕ меняем. Можно ещё поковырять октеты со старшим битом «128–255», вдруг найдём ссылку на пустую клетку в шрифте. А ещё можно взломать ширину букв, чтобы они все отображались по максимуму, но я пока не знаю как…
Плюсы: + Красиво Выглядящий Текст. + возможность отделения Собственных Имён. + привлечение ВНИМАНИЯ игрока. + Наш перевод будет единственный с двумя регистрами! Минусы: – Коту под хвост возможность махинаций со шрифтом. – Сложная запись текстов в файл. – Практически не читабельная конечная кодировка.
Думайте! Стоит ли оно того?
but nobody came
|
|
| |
aleksusklim | Сообщение # 101 | Тема: Перевод Spyro 3: Текст Воскресенье, 22.04.2012, 22:26 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
ЧАСТЬ 4
Проклятый сторож, Я уж думал, что сгину. Спасибо. Ты спас!
Свечи угасли. Драконьим дыханием Зажжёшь их опять? Можно было «лампы», но ведь зажигать-то надо как раз свечки! Ничего лучше Не видел я: ведь лампа Сияет огнём!
Сторонись воды: Зубастые пираньи Голодны очень. Вам наверно думается «Очень голодны», но это уже будет не хайку, а рифмоплётство! Ты смелый дракон. Смелее меня, о да… Вот, бери яйцо.
Внутри есть секрет. Когда засветят лампы, Открою его.
Фонари горят! Я поведаю тайну, Что в доме этом.
Ужасный колдун Живёт, ненавидя свет. И он разбужен.
Поклялся убрать Любых, кто свечки зажгёт – Тебя, не меня. …Уж если я повторяю свечи (хоть и «свечки»), то пусть будет «зажгёт», а не «зажжёт». Лампы – ? Синонимы кончились. Есть ещё «светильники», но это уже четыре слога, плюс – «света» и так везде полно. + Использовать бомбы колдуна против него же. + Избегать охраны.
Та дверь заперта, Лишь сила самоцветов Отворит её.
Блин, чего это я!? Решил же уже Jamm=Gems. Переигрываю:
Каменная дверь. И только сила камней Отопрёт её.
+ Платить ^^^ драгоценностей, чтоб открыть проход? + Ага, только заткнись! + Не, дурным хайку несёт.
То мудрый выбор: Побольше яиц тебе, И алмазов мне.
Удачи, Спайро… Хайку прекратить могу – О, как хорошо!
Эй, не жмись, дракон… Отдай чёртовы камни – Да пойду домой. Не подходит, плохо… Второй раз «камни» и рифмуется «дракон-домой». Переделаю: Эй, дракон, не жмись… Отдай же самоцветы – Да пойду домой.
Я не пропущу – Возвращайся с деньгами: Ты слишком беден.
+ Для открытия двери нужно ^^^ бриллиантов.
Ну хватит болтать, Как не люблю я хайку… Ищи камешки…
Давай входи! – Шейла.
Чудо-болото С весенним ароматом – Пойду разомнусь. Сказал же, что круто переведу!
Всё что дальше – в подуровне – Я делю на две группы – одного светлячка и другого. Момент перехода тоже выделю. Бомбы тут у нас. Должны разбить решётку, Но мы взорвёмся.
Кунгуру спасёт! Ты для нас расчистишь путь. Шейла нам поможет?
+ Проводить светлячка-подрывника? + Да, я люблю свободный хайку. + Простите, я всего лишь гуляю.
Ладно, подождём. А когда ты вернёшься, Попробуем вновь.
Да! Время бомбить! Яички, вот я иду, Освобожу вас!
Аай… Пойду заново. Пинай большие камни И топчи грибы.
+Отправляемся снова? +Да +Нет
Да! Пора взрывать! Держись, бедное яйцо: Вытащу тебя.
+Выбить камни с дороги – >, { +Раздавить грибы – < + }
Есть ещё клетка. Проведи сейчас брата – Яичко спаси.
+ Помочь теперь и брату? + Да + Нет Тут происходит переход к этому же моменту второго светлячка. Поэтому следующий текст игрок не увидит: Отведи меня, Спасу бедных пленников: Разнесу клетки. Хм, странно, учитывая, что осталось ОДНО яйцо. Но таков оригинал. Не, конечно, могу исправить… жду совета! Яйца свободны! Родились два дракона! Шейла – мой герой. Начинается текст второго светлячка (смотрите, не запутайтесь! А то я именно из-за этой нервотрёпки с повторами извёл всю свою тетрадь!) Можете соответственно сопоставлять (если было бы возможно, а бы записал в два столбика… но здесь только так.) У нас две бомбы. В клетках заперты яйца. Но как уцелеть?
Помочь кенгуру Сможет – путь нам очистит! Шейла спасёт нас?
+ Проводить находчивых светлячков? + Да, мне нравиться ваш вольный хайку. + Извините, я просто шла мимо.
Ну мы будем ждать. Если решишь вернуться – Начнём заново.
Время бомбёжки! Подарю свободу вам, Я уже скоро.
Ооу… Давай с начала. Камни выкинь с дороги, Грибы придави.
+ Попробуем опять? + Да + Нет …Я согласен, что это не неопределённая форма… Но это и не «первое лицо» в привычном понимании. Я… я не знаю! Помогите! Взорвём решётку! Я спешу, мои крохи, Вызволю сейчас.
+ Разрушить камни на тропинке – {, > + Вогнать грибы в землю – < + }
Осталось яйцо. Близнец пусть отправиться. Его доведёшь?
+ Возвратиться к брату? + Да + Нет Это тот же самый переход, только в обратную сторону. Следующий текст видит тот, кто начинал с первого светлячка. А этот уходит к такому моменту выше. Если я дойду – Подорву тюрьму яйца! Выручу пленных.
Они на воле! И драконы родились! Ты просто герой.
Всё! Мой перевод окончен. Жду здравой критики! По поводу повторов – я проверил озвучку. Там ДВЕ копии одних и тех же речей. Да! И в уровне с кодом на прослушку диалогов есть два одинаковых текста на разных пунктах. Поэтому то, что у меня два перевода не запорит озвучивание.
Теперь по яйцам:
Find Shiny the firefly. Jump to the island. Escort the twins I. Escort the twins II. Defeat sleepy head. Across the treetops.
Можно так:
Навстречу Блеску {хитро и загадочно!} Прыгни на остров {довольно просто} Проводи близнецов 1 {горела Разница…} Проводи близнецов 2 {синим пламенем} Бей сонную голову {а неплохо так!} Полёт по кронам {полёт через кроны}
Или «вверх тормашками», типа такой намёк на хокку:
Блеску навстречу На остров прыгни Близнецов проводи 1 Близнецов проводи 2 Голову сонную бей По кронам полёт
Так хуже? Или лучше? А «Проводи близнецов» можно и переиграть. Как я уже говорил,
Братья Молоты 1 Братья Молоты 2
!! Звучит?
Названия уровней? Позвольте, я повторюсь (хоть раз-то можно?):
__________________ Названия уровней (в отличие от предыдущих двух игр) устроены в стиле «Какое-то Что-то» или «Что-то Чьё-то». Сказочные описательные названия, без повторений, но полны синонимов. Перевести нужно не хуже:
НАЗВАНИЕ – [шутливая транскрипция в прикол] – Перевод – «Результат» – {Разница}. Основные уровни: – Sunrise Spring Home – [санраз спринг хом] – Дом утренней весны (или долины). – «Дом Утренней Долины» – {0} – Sunny Villa – [Сани Вилла ! ] – Солнечная деревушка. Длинно? Деревня света? – «Яркое Село» – {+1} – Cloud Spires – [клауд спаирс] – Заоблачные вершины? Почему бы не намного проще – «Высокие Горы» – {0} – Molten Crater – [молтен кратер] – Расплавленный кратер. Делаем легче – «Жаркий Вулкан» – {0} – Seashell Shore – [сишел шор] – Ракушечный берег, или проще – «Берег Ракушек» – {+1} – Mushroom Speedway – [мушрум спидвей] – «Грибная Трасса» – {+3} – Sheila’s Alp – [Шейла с Альп !! ] – «Альпы Шейлы» – {+1} – Buzz’s Dungeon – [Баз Сдан Джор ! ] – «Темница Базза» – {+1} – Midday Garden Home – [мидай гарден хом] – Дом полуденного сада… Не помещается, делаем – «Дом Дневного Сада» – {+1} – Icy Peak – [айси пик] – Ледяное остриё? Честно говоря, в 8 букв это засунуть… Самый сложный вариант! Надо либо начинить со слова Лёд, либо со слова Пик. Мне пришло в голову только – «Ледовик» – {+1} – Enchanted Towers – [инчантед таверс] – Заколдованные башни. Чуть короче – «Магические Башни» – {0} – Spooky Swamp – [споки свомп] – Шепчущее или говорящее болото… Тут я оставил пока два варианта – «Тихое Болото», «Опасная топь» – {0} – Bamboo Terrace – [Бамбу Те Раз ! ] – Бамбуковая терраса. Упрощённо – «Улица Бамбука» – {+1} – Country Speedway – [кантри спидвей] – «Городская Трасса» – {0} – Sgt. Byrd’s Base – [Срж. Бёрд с Баз ! ] – «База Серж. Бёрда» – {0} – Spike’s Arena – [Спайк с Арены ! ] – «Арена Спайка» – {+1} – Evening Lake Home – [ивининг лейк хом] – Дом вечернего озера, Разница (-2). Поэтому во множественном числе – «Дом Вечерних Озёр» – {0} – Frozen Altars – [фрозен олтерс] – Замёрзшие алтари? Честно, не совсем понимаю… Будет – «Зимние Алтари» – {0} – Lost Fleet – [лост флит] – Потерянный флот… На втором месте по длине (и по трудности!). На уме только – «Битый Флот» – {0} – Fireworks Factory – [феирвекс фектори] – Фабрика Фейерверков! Никак не могу правильно уместить… Получилось – «Фабрика Хлопушек» – {+1} – Charmed Ridge – [чармед ридж] – Волшебный хребет. Изменим (согласно с содержанием уровня) – «Пики Чародеев» – {0} – Honey Speedway – [хани спидвей] – «Медовая Трасса» – {0} – Bentley’s Outpost – [бентли с аутпост] – Аванпост Бентли? Что это… Уж лучше – «Сторожка Бентли» – {+2} – Scorch’s Pit – [Скорч Спит !!] – «Яма Скорча» – {+2} – Midnight Mountain Home – [миднайт маунтин хом] – Дом полуночной горы. Но горы мы уже упоминали в третьем уровне… – «Дом Полуночного Хребта» – {0} – Crystal Islands – [кристал айлендс] – Кристальные острова? Длинно, не влезает… Но если так – «Алмазная Земля» – {+1} – Desert Ruins – [дезерт руинс] – Пустынные руины, или – «Пустыня Руин» – {0} – Haunted Tomb – [хантед тум] – Частопосещаемая могила!? Ужас… – «Старый склеп» или «Древний Гроб» – {0} – Dino Mines – [Дино Мины ! ] – Шахты Дино. Но лучше наоборот и через дефис – «Дино-Шахты» – {0} – Harbor Speedway – [хабо спидвей] – «Морская трасса» – {+1} – Agent 9’s Lab – [Агент – Девять Лап !! ] – «Лаб. Агента 9» – {0} – Sorceress’ Lair – [сор-сер-слер ! ] – Логово Ведьмы. А подлиннее – «Ведьмено Логово» – {0} Миры Спаркса: – Crawdad Farm – «Ферма Червей» – {0} ?? – Spider Town – «Город Пауков» – {0} – Starfish Reef – «Риф Кораллов» – {+1} – Bugbot Factory – «Завод Робожука» – {0} Бонусные миры: – Super Bonus Round – «Раунд Супер Бонус» – {0}
Кто-то продолжает настаивать, что не все названия переводимы? Если так, оспаривайте только то, что взято в кавычки «»! –––––––––––––––
Отдельно по «Crawdad» – просто траслитерировать его? НЕ ПОЗВОЛЮ!! Если такие умные, предлагайте НОРМАЛЬНЫЕ варианты. …Ну кто там – раки, крабы. Может так и назвать – «Раковая Ферма» {-1}? «Ферма Раков» {+1}
Поговорим о глюках. В Spooky Swamp их два. Это _пустая_ табличка Шейлы и две фразы первого светлячка. Конкретно:
Our tea lamps are dark.\Perhaps your hot dragon breath\could set them aglow. No happier sight\Have I seen, than a tea lamp\lit by Dragonflame.
Это НИКОГДА не произносится! Почему? Или я чего-то не понимаю? Просьба ко всем: исследуйте Spooky Swamp! Найдите, в какой момент это происходит! Я уж и умирал, и возвращался, и тыкался, и жёг лампы, и к боссу ходил, и в воду прыгал… Он просто не произносит и всё. А в озвучке уровня эти фразы есть. Зачем же?
Кстати, по оригинальной озвучке. Скачайте и скажите, один ли это голос: http://Klimaleksus.narod2.ru/Files/SPEECH.mp3 (76 Кб) Если действительно один, то… выходит, что людей у самих Бессонных было не много. Значит у нас преимущество!
Второй глюк с табличкой. Если Шейла НЕ спасена, что невозможно, то табличка будет просто пуста. Отвечаю! И? Но я ведь взломал указатели на фразы! http://Klimaleksus.narod2.ru/Files/GH/points1.png Выделены адреса начал записей. Красный – заголовок пустой таблички. Синий – текст пустой таблички. Зелёный – заголовок нормальной таблички. Жёлтый – текст нормальной таблички. Они отличаются ровно на +4 каждый. По факту в файле: http://Klimaleksus.narod2.ru/Files/GH/points2.png Как видите, первые три указывают на пустые клетки (названия нет, текста нет). Но если его изменить…
Мы можем туда запрятать ЧТО-ТО! Что-то классное… Что-то великое… НАПРИМЕР: все чит-коды (нажатия клавиш в «паузе»). Или описания трюков на скейте! Или нашу автобиаграфию. Или посление! Или титры! Можно менять цвет. Можно писать ОЧЕНЬ много (тысячи две символов – точно!)
Ну как идея? Спрятать туда «сюрприз». Который никто не увидит… ЕСЛИ не обманет Толстосума воздухоплаваньем и не закроет первый мир, не спасая Шейлу. Ха! Да я просто гений!
А таких мест много! Бентли в Crystal Islands. Шейла в Desert Ruins. Может быть где-то ещё (то есть подуровни персонажей, которые всегда уже спасены к моменту прибытия)
Ура! Мы раздвинем рамки перевода! Мы сделаем ПРОДУКТ. Который будет интересен и удивителен!
А вы тут ходите даже финальные титры не менять! Да это почти самое главное! …Я пытался взломать их длину, но пока с этом туго… Максимум, что я придумал – удлинить фразы, которые Бессонные разделили на несколько блоков, да удалить оттуда ИХ актёров. Удлинить хотел за счёт засовывания туда дополнительных роликов, где камера просто летает по пустым мирам. Копирнул несколько (это ряд последних субфайлов от 185 до 195). Даже сделал невероятное – запихал такой ролик из Spyro2! Глядите: http://Klimaleksus.narod2.ru/Files/GH/avalar1.jpg
Это же Глиммер! А титры – от Spyro3! Авалар: http://Klimaleksus.narod2.ru/Files/GH/avalar2.jpg http://Klimaleksus.narod2.ru/Files/GH/avalar3.jpg
Что ещё? Сообщение Зои о взломанной версии! Там можно сделать так: – Перевести как есть. – Принести извинения за то, что игра будет глючить. – Вообще сочинить что-нибудь обыденное, мол, «Это зал с воздушным шаром, на котором ты полетишь к другим мирам» – чтобы пользователь и не догадался ни о чём! – Пошутить и чем-то озадачить. – Внести туда наши титры, перечислить нас, поблагодарить за игру
Ведь если игрок загрузит сохранёнку пиратской версии, то Зоя появиться! Нельзя же упускать момент?
А помните картинки миров? При переходе в любой мир, появляется его «визитная карточка» – изображение части мира. Такое же предвкушает каждое видео. Что я хочу? ИЗМЕНИТЬ ИХ. Способ есть.
Зачем? Чтобы это сразило игрока НАПОВАЛ!! Что он онемел он удивления!!!
Но ведь просто так «что-угодно» не нарисуешь. Поэтому я предлагаю всем сделать свои скриншоты «лучшего места каждого мира». Для этого я взломал камеру GH в ArtMoney – Качайте архив: http://Klimaleksus.narod2.ru/Files/catch.zip (2 Кб) Грузите «SPYRO3!(GH).amt» в мою версию ArtMoney, запускаете мою сборку Epsxe и заходите в нужный уровень. Горячие клавиши:
Num5 – заморозить высоту Спайро. Num2 – разморозить высоту. Num6 – Подняться выше. Num3 – Опуститься. >(ю) – Зафиксировать камеру. <(б) – Восстановить камеру. /(.) – Отдалить/приблизить зафиксированную камеру. L(д) – Заморозить горизонтальное вращение камеры. K(л) – Разморозить горизонтальное вращение. ‘(э) – Крутить камеру вправо (как R2) ;(ж) – Крутить камеру влево (как L2) P(з) – Заморозить вертикальный наклон камеры. O(щ) – Разморозить вертикальный наклон. ](ъ) – Направить камеру вверх. [(х) – Направить камеру вниз.
Сначала поднимаетесь куда вам нужно, потом всё замораживаете и меняете направление. Камера будет сильно дрожать, поэтому уменьшите частоту кадров в эмуляторе и «время заморозки» в настройках ArtMoney. Снимите несколько скриншотов (F8). Хоть один из них окажется правильный! Плагин видео – только soft. Чтобы масштабирование 1:1 и лучше в окне. Размер сторон экрана игры не должен быть изменённым (широкоформатный).
Ещё я хочу лифт-вихрь в замке колдуньи полуночной горы! Ломал вихрь Spooky Swamp (медведь не взлетает): http://Klimaleksus.narod2.ru/Files/GH/spooky.jpg Ага! Но вот всё, что я смог изменить: – Координаты начала (X,Y,Z в пространстве) – Направление покидания (если поставить 220 вместо 40, то вихрь закинет не к выходному порталу, а на правое дерево!)
И только лишь… Я ведь не сделал самого главного! – Не изменил СИЛУ вихря (высоту, на которую он поднимает) – Не изменил НАЛИЧИЕ вихря, чтобы создать собственный.
Однако координаты и направление можно менять не только в ОЗУ, но и физически в файлах (четвёртый субфайл, где и текст). Доказательство: http://Klimaleksus.narod2.ru/Files/GH/spooky.png
Области отличаются, но суть одна.
Где же его сила? Проблема в том, что графика и физика – разные вещи. Находятся в разных областях памяти. Как я нашёл координаты? Я взломал ПОЯВЛЕНИЕ вихря при взятии яйца (даже не взятии, а проставлении его в памяти). Но высоту подъёма так не получается… Вопрос ко всем: Есть ли в Spyro2 или Spyro3 хоть один вихрь, который хоть раз изменяет высоту подъёма? Очень нужен… А пока можете поиграться с этим вихрем. Горячие клавиши: Z-X-A-S – перемещение по плоскости уровня. C-V –включение/выключение вихря (уровень не должен быть пройден, иначе лифт не выключить!) D-F – направление выхода после поднятия (не действует, если вы уже поднимаетесь – сначала меняете, потом прыгаете на вихрь) G-B – поднять/опустить вихрь. (не опускайте ниже пропасти, иначе он улетит так высоко, что вы его не найдёте потом!)
Взломал самую первую пиранью табличку: http://Klimaleksus.narod2.ru/Files/GH/table1.jpg http://Klimaleksus.narod2.ru/Files/GH/table2.jpg
Поэкспериментируйте с тремя последними значениями, чтобы получить похожие результаты! Было: – Табличка ломается, но остаётся. – Табличка взрывается сама по себе беспрерывно. – Табличка видима, но нематериальна. – Табличка невидима, но в неё можно упереться.
Также в архиве есть сценарий распаковки текста из уровней (читайте его Блокнотом!): 1) Создайте папку «C:\Spyro» или измените путь в «GetText.bat» 2) Закиньте в неё AWM.exe, TXTRDR.exe и SYM.exe – мои программы. 3) И файлы «Table.ini» да «Spyro.TextusReaderTable» (обновлённый) из этого же архива. 4) Перетащите на «GetText.bat» субфайл уровня (чётный от 98 до 170).
Получите текст. Как исходный, так и сконвертированный (сейчас там таблица для расшифровки моих русских пиратов. Если хотите выдёргивать русские тексты из других версий, измените её. Надеюсь, понятно, как!) Чтобы извлечь несколько уровней просто повторите операцию, копируя результат после каждого извлечения. И да, обратно запихать этим методом нельзя. Только для быстрого просмотра!
P.S Результат:
http://Klimaleksus.narod2.ru/Files/PLATINUM/index.html
Или целиком здесь:
http://Klimaleksus.narod2.ru/Files/PLATINUM/platinum.rar
А также в хранилище:
https://spyro3-rus.googlecode.com/svn/trunk/levels/platinum/
but nobody came
Сообщение отредактировал aleksusklim - Воскресенье, 22.04.2012, 22:47 |
|
| |
aleksusklim | Сообщение # 102 | Тема: Перевод Spyro 3: Взлом и программы Вторник, 01.05.2012, 18:10 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
В мой метод взлома указателя никто не врубился… Но я сам-то еле догнал, какая там последовательность действий: Файл WinHex’ом расковыряй, ArtMoney’ей прошвырнись по ОЗУ, Калькулятором вычисли новое значение и опять суй его обратно, уповая на то, что ничего не напутал…
Вам не кажется, что СЛИШКОМ много сторонних программ требуется? Мне удалось итерационным методом квантовать алгоритм на составляющие шаги и на основе индукционного способа изобрести единое пространство работы.
(Кто что понял?) Короче, сделал чтоб удобно было.
Но сначала определим терминологию: Абсолютный адрес: это адрес, по которому происходит обращение к переменной по законам PlayStation. Адресное пространство ОЗУ игры занимает 2097152 байт (ровно 2 мегабайта). Начинается с адреса 80000000h (2147483648) и заканчивается 801FFFFFh (2149580799). Именно в него ДОЛЖНЫ указывать ВСЕ указатели! Истинный адрес: это физический адрес ОЗУ компьютера, где эмулятор размещает данные памяти игры. Он, естественно, тоже занимает объём 2 Мб, но первый адрес отличается он абсолютного. Наверное, зависит от эмулятора. В Epsxe 1.7.2 это от 0094C020h (9748512) до 00B4C01Fh (11845663). По этим адресам можно найти указатели и строки в ArtMoney. Это адрес истинный для нас, но ложный для игры, и направлять что-либо на него бесполезно. Прямой адрес: это адрес данных дампа памяти. Дамп я предлагаю снимать через свой же MemGet. Пространство также 2 Мб, но начинается с адреса 00000000h (0) и кончается 001FFFFFh (2097151). Так проще всего понять, где на самом деле расположены данные. Относительный адрес: это адрес данных внутри субфайла или суб-субфайла. Или же относительно всего WAD. Или относительно сектора диска – смотря что имеется в виду. Далее по тексту под относительным адресом я буду понимать только адрес данных от начала четвёртого суб-субфайла главного субфайла любого уровня.
Преобразование между адресами. X – новый адрес, Y – известный адрес:
АА-->ПА : X=Y-2147483648 ПА-->АА : X=Y+2147483648 ПА-->ИА : X=Y+9748512 ИА-->ПА : X=Y-9748512 АА-->ИА : X=Y-2137735136 ИА-->АА : X=Y+2137735136 Для относительного адреса нужно знать константу, которую игра суммирует с ним. Её можно найти, вычитая из АА строки ОА этой же строки. Но нам такое совершенно не понадобиться.
Я нашёл проблему, которую как-то упустил раньше. В файлах находится указатель не на абсолютный адрес, а на относительный! То есть по этому указателю можно перейти к строке прям в этом же суб-субфайле. А не сразу в RAM. Но в EXE адреса сразу ОЗУвские. Но не в уровнях. Так когда же они превращаются в абсолютные? Ответ: при загрузке уровня. Что даёт? Легче позиционировать указатели, потому что можно лазить в самом же суб-субфайле, где мы меняем текст. То есть, не выходя в ОЗУ, не снимая дамп. Что забирает? А как теперь направить этот относительный указатель на строку, которую мы засунем во второй субфайл? У него-то другое восстановление в абсолют произойдёт? Но решение есть. Можно вычистить разницу-дельту между исходной строкой в ОЗУ и её нашей версией тоже в ОЗУ, но уже не в четвертом, а во втором суб-субфайле. Это дельту вычесть из реального относительного адреса суб-субфайла. Появляется проблема… Относительный адрес строки не превосходит 50 000 байт. А дельта получается по 500 000! И как я отниму от 50 Кб пятьсот? Вопрос на засыпку: сколько будет «один минус два»? (С учётом того, что это четырёхбайтные беззнаковые целые, где числа не могут быть отрицательными) Ну? Ваш ответ? Мой: 4294967295. Или FFFFFFFFh. Как это сделать? Калькулятор>Вид>Инженерный>Hex>4 байта> «1-2=» >Dec. Убедились? Теперь я по этим правилам вписал указатель в WAD. Да, громадное же число.
И запустил игру… Теперь она либо вылетит, либо примет… Интересно, есть ли там range checking…
Результат: РАБОТАЕТ!!!! Да! Игра сама приплюсовала к огромному числу свою разницу адресов, получив в конечном итоге адрес поменьше. Значит, мы СМОЖЕМ затолкать столько текста, сколько захотим.
Я не преувеличиваю! Я посчитал свободное «яичное» пространство в Sunrise Spring Home. Это 30 с лишнем килобайт!! Это примерно полтора моих средненьких комментария! Вы представляете! СКОЛЬКО текста мы можем впихнуть! Ох, Зойка удивиться… (на её пиратском предупреждении мы отыграемся, ой как отыграемся!)
Я облегчил нам работу. Качайте программу: http://Klimaleksus.narod2.ru/Files/StrPnt.rar (160 Кб) И смотрите её скриншот: http://Klimaleksus.narod2.ru/Files/W/whirlwind61.png
Испугались?)) Не волнуйтесь, я всё объясню.
Итак, это 7в1. (MemGet тоже понадобится.) Программки: STR,PNT,NUL,COP,SET,SUB,HEX. STR – ищет строку. PNT – ищет указатель. NUL – ищет пустое пространство. COP – копирует данные (строки) + добавляет свои. SET – изменяет указатели. SUB – производит сложение и вычитание по правилам «1-2=4294967295» HEX – конвертирует между десятичной и шестнадцатеричной системами.
Все файлы выбираются соответствующими кнопками «...», подтверждать не надо. Поиски STR,PNT,NUL – выполняются кнопкой Search, а результат выводится в Offset found. Строку надо писать в текстовое поле, а указатель – в Value (всё записывается только в десятичной системе счисления) Count – количество найденных элементов. Если «1» – это хорошо. Если «0» – значит вы ничего не нашли. Если больше 1 – слишком много повторов. Уточните строку или просмотримте файл через WinHex, чтобы понять, почему так происходит. Use# – порядковый номер выводимой строки или указателя, если их несколько (например, «Hunter» встречается пару-тройку раз, и чтобы обработать их все, нажимайте Search при разных Use# (от 1 до Count) и копируйте Offset found). Start address – начальный адрес в файле для поиска. «0» – поиск во всём файле. Можно использовать, чтобы уточнить место и сократить время, или отсеять ранние вхождения.
STR-Difference – это специальное поле, которое автоматически суммируется с результатом. То есть, чтобы найти настоящую строку, нужно поставить туда ноль. Но если мы ищем фразу, которая начинается не с самих букв, а за четыре байта ранее, то логично ввести туда «-4», и прога выдаст адрес искомой строки, из которого уже буде вычтено 4. PNT-Difference – это тоже «сумматор», но входных данных. То есть указатель ищется на Value+Difference. Зачем? Да потому что в Difference удобно помещать константы конвертации адресных пространств, например, начало абсолютного адреса 2147483648.
Как работает NUL: Ищет «00h» по всему файлу, выдавая первый за вычетом Padding, но чтобы их последовательность была не меньше Minimum в сумме с Padding. Проще говоря, находит первую область в Minimum нулей, перед которой есть ещё ровно Padding нулей. Мы задаём Padding=4 и Minimum больше 50 (64, 500 или сколько будет нужно – длина новой строки), кастуем на второй суб-субфайл, и нам выдаётся та самая яичная зона!
COP – Копирует из файла From с адреса Address в файл To по адресу Desten данные. Длина копируемой области – Length. Плюс добавляет сюда строку Text и Add blank пробелов после неё. Короче, Length приравнивается STR-Difference (с противоположным знаком), которая была нужна для отлова строки. Или 0 или 4. Добавляемый текст – новая строка. Можно поставить Length=8, тогда скопируется оригинальное начало; в Text ввести что-то типа «OurString01», а в Add blank – ту длину новой стрики, которая планируется (например с запасом). Потом уже всё это изменить можно через знакомый Текст-О-Вытаскиватель. Кстати, не копируйте много через Length, лучше ставьте Add blank, потому что потом можно запутаться, где оригинал, а где изменение при следующих поисках строк.
SET – ну тут всё просто. Вставляете адрес в Address, жмёте GET и получаете значение указателя. Изменяете его на нужное, жмёте PUT – вуаля, он записан!
SUB – «Кулькулятор»… Вводите операнды в два поля и нажимаете «+» или «-» между ними – в третье поле выведется ответ, не затирая оригиналы.
HEX – конвертор по мере ввода. Я сделал поддержку до FFFFFFFFFFFFFFFFh, но он на больших числах конечно неизбежно гонит. А до четырёх байт FFFFFFFFh вычисляет великолепно! Всё! Моих программ StrPnt и GetMem достаточно для изменения любой строки в игре. Но всегда лучше контролировать поведение в WinHex. Общий алгоритм изменения строк (обращение к результатам предыдущего пункта обозначено фигурными скобками):
1) STR. Ищем исходную строку в 4-ом суб-субфайле. 2) NUL. Ищем пустоту в 2-ом суб-субфайле. 3) PNT. Ищем в 4-ом суб-субфайле указатель на адрес, полученный в {п.1}. 4) COP. Из адреса {п.1} копируем в адрес {п.2} из 4-го в 2-ой субфайл, добавив свою новую строку. 5) SET. Делаем GET в 4-ом суб-субфайле на адрес {п.3}, должны получить {п.1} ~Внедряем 2-ой суб-субфайл, компилируем и прожигаем игру. Запускаем, заходим в нужный уровень и снимаем полный дамп памяти через MemGet.~ 6) STR. Ищем оригинальную строку в дампе. 7) STR. Ищем нашу изменённую строку в том же дампе. 8) SUB. Вычитаем из изменённого {п.6} оригинальный {п.7}. 9) SET. Делаем PUT на адрес {п.3} 4-го суб-субфайла и заносим {п.8}. ~Внедряем 4-ый суб-субфайл, компилируем, прожигаем, запускаем и заходим в нужный уровень – должен быть верный результат~
Ремарочки: – Если меняем ФРАЗУ, то Difference в пунктах 1,6,7 надо ставить «-4». Если ИМЯ, то «0». – Если пункт 3 ничего не дал, то попробуйте изменять Difference на +- от 1 до 4 туда-сюда. Если и это не помогло (абсолютный адрес!), то пропустите этот пункт (и пятый), а вместо пунктов 8 и 9 сделайте так: 10) PNT. Ищем указатель в дампе на {п.6}. 11) SET. Делаем GET в дампе на адрес {п.10}, должны получить {п.6} 12) SET. Теперь делаем PUT в дампе на тот же адрес, но занесите {п.7} – Если хотите увидеть указатель или строку в ArtMoney, то отнимите от адреса число «147483648», прибавьте первый истинный адрес «9748512» (можно в SUB) и переведите (можно в HEX) в шестнадцатеричную систему. После чего в ArtMoney задайте «перемещение на адрес» в «редакторе памяти».
P.S: После создания вихря (тема перевода) я обнаружил, что начальное пространство в яичной зоне заполняется неизвестными данными при некоторых обстоятельствах, затирая введённые данные. Если такой момент отловить, можно узнать, сколько конкретно нулей исчезает, а сколько остаётся. Прописать исчезнувшие нули в «NUL-Padding», а оставшиеся – в «NUL-Difference». Но всё это нужно ещё не раз проверить…
but nobody came
Сообщение отредактировал aleksusklim - Вторник, 01.05.2012, 18:32 |
|
| |
aleksusklim | Сообщение # 103 | Тема: Перевод Spyro 3: Текст Вторник, 01.05.2012, 18:17 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
Мой комментарий из трёх частей на следующей странице!
Спасибо nonun, STALKER_007, DrWho за посильную помощь в публикации моих длиннющих постов!
Сообщение отредактировал aleksusklim - Вторник, 01.05.2012, 18:28 |
|
| |
aleksusklim | Сообщение # 104 | Тема: Перевод Spyro 3: Текст Вторник, 01.05.2012, 18:24 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
ЧАСТЬ 1
Quote (DrWho) У меня ассоциации с игрой... Хм... Почему-то именно такие, из-за чего и были слова "убей" и другие.
Спайро не любите!?
Quote (DrWho) Пытаетесь вихрь сделать? Хотя сделать вихрь в доме Полуночной Горы будет правильным решением.
Вихрь, вихрь…
Так. Слушайте все! Все, кто хоть что-нибудь знает про этот «несуществующий вихрь». У меня есть несколько вопросов, которые я хотел задать уже давно. Но повода не было… Теперь есть повод, но ответы будут уже неактуальны. Но я желаю их получить! Несмотря ни на что. Поэтому ВСЕ: обещайте дать ответ на мои вопросы, в не зависимости от моего следующего текста.
Вихрь? Что за вихрь? Почему его нет в замке? А с чего вы вообще взяли, что он там должен быть? Дыра в потолке? И что? А может там и не вихрь нужен вовсе, а какая-нибудь лестница? Бочки с жизнями? И что? На Фабрике Фейерверков тоже бабочка в пещере – может там тоже должен быть «вихрь»? А почему именно «после победы над Колдуньей»? Почему? Зачем нужны жизни ПОСЛЕ боя? Может при открытии ворот, а не победы? А кто первый догадался про вихрь? Или вам разработчики об этом сказали? И неужели ни в одной версии игры нет этого вихря? А если так, то почему его до сих пор никто не сделал? Ведь прошло двенадцать лет? Вдруг там вихрь совершенно не нужен, а?
Quote (DrWho) Я, конечно, ничего против критики не имею, но на самом деле если бы Я не взялся вообще за перевод, об этой теме забыли бы точно все. Рано или поздно, но забыли бы. И в итоге вам (может быть с парой помощников) пришлось бы переводить и делать все вручную.
Давайте определимся. Вы хотите помочь нам с переводом, или же просто пинками ускорить доведение процесса до конца? Потому что именно так и получается: делаете плохой перевод двух миров за две недели, вынуждая меня тем самым заниматься его если не полной переработкой, то хоть мелким исправлением – чтобы его здесь _вдруг_ никто не утвердил или не захвалил!
Quote (DrWho) Поэтому перевод, который я сделал, достаточно будет вам глянуть ошибки 4го мира (в 3ем вы уже выше написали)
Эй! На ошибках учатся. Так может вы сами свой перевод посмотрите, а? Взгляните на него так, как я смотрел на предыдущий перевод. («достаточно» х2 в первом же – и вперёд!») Понятно как? Обращаясь к нему не как к очередной пиратской писанине, а как к продукту для аудитории. Плюс: – Добавьте оригинал текста. – Переведите текст из файлов, а не из игры: в третьем мире были фразы, о которых вы вообще забыли. – В особо сложных моментах приведите текст от ваших русских пиратов для сравнения.
По русским пиратам. Я вытащил текст из платиновой версии на пяти языках. Его можно проводить через электронный переводчик, если оригинальная мысль нам не ясна. Отдельно по именам (диакритику срезал):
Hunter – Chasseur – Jager – Cazador – Hunter Mayor Leo – Maire Leo – Burgermeister Leo – Alcalde Leo – Sindaco Leo Moneybags – Gros-Sous – Geldsack – Ricachon – Moneybags Fluffy – Peluche – Watte – Fluffy – Fluffy Sgt. Byrd – Sgt. Byrd – Wachtmeister Byrd – Sgt. Byrd – Serg. Byrd Sebastian the Seal – FanFan le Phoque – Sebastian der Seehund – Filomeno la foca – Sebastian la foca Sal the Seal – Fil le Phoque – Sal der Seehund – Fernando la foca – Sal la foca Stu the Seal – Freddy le Phoque – Stuart der Seehund – Felipe la foca – Stu la foca Pvt. Chloe – Soldat Chloe – Pvt. Chloe – Soldado Chloe – Sol. Cloe Crazy Ed – Ed le Fou – Verruckter Eddy – Ed el excentrico – Ed il pazzo Greta – Greta – Gretel – Greta – Greta {Так может «Гретель»?} Jack – Jack – Jack – Juanito – Jack Bartholomew – Bartholome – Bartholomaus – Bartolomeo – Bartolomeo The Astounding Arturo – Arturo l'Apprenti – The Astounding Arturo – El Increible Arturo – Lo stupefacente Arturo The Magnificent Marvello – Guildo le Grand – The Magnificent Marvello – El Esplendido Marvello – Il magnifico Marvello Deputy Holiday – Depute Holiday – Deputy Holiday – Ayudante Holiday – Vicesceriffo Holiday Professor – Professeur – Professor – Profesor – Professore
Это я привёл те, которые сильнее всего отличаются в разных языках. Ну так имена переводятся? Да, нет – без разницы. Можем перевести, а можем и не переводить. Ну так переведём – что теряем? Кстати, немецкие имена часто единственные среди других, которые сильно отличаются.
Так вот, про пиратов. Если нам выгодно сравнивать тексты разных языков, так может и вытащим весь текст от ВСЕХ русских локализаторов? И Кудаса, и Векторов, RGR если и те переводили. Будем компарить наш классный перевод со всеми остальными – только повысим качество!
Quote (DrWho) P.S: Если что-то не так в последней фразе Агента 9, извиняюсь тогда. Но другого нормального перевода к этой цитате я подобрать не смог.
Подобрать не смогли – придумайте! Смотрим:
Woohoo! Time to kick some Sorceress butt! Yahou ! C'est le moment de regler son compte a la sorciere ! Juchhu! Zeit, die Zauberin fertigzumachen! Guau! Es el momento de darle una buena leccion a esa Bruja. Woohoo! E adesso le suoniamo alla maga!
…Ладно, я не понимаю ни по-итальянски, ни по-французски, ни по-немецки, ни по-испански… Зато я понимаю по-русски! 1 – «Woohoo!». Да, «Вуухуу!». Но так получается «В уху»… Может просто «Уррра!». Или «Ииххаа!!». Это можно потом по нашей озвучке понять – послушаем, что крикнет наш девятый агент – то и напишем. 2 – «Time to…». «Пора…» – сойдёт. Точнее будет «Настало время…» или «Ну наконец-то можно…» или даже «Теперь мы…» ну или хотя бы «Пришла пора…». Но это Агент9… А он какой-то чуточку сумасбродный… 3 – «…Sorceress...». Ну тут мы однозначно определились – «Колдунье» или «Колдуньи», «Колдунью», в зависимости от падежа. 4 – «kick some butt». Это самое интересное.
Мои русские пираты нагло предлагают «Надрать жопу». Вы решили помягче – «Надрать задницу». А что это значит? Это означает: – Устроить трёпку. – Задать жару. – Хорошенько наподдать. – Задать по пятое число. – Врезать по полной. – Вмазать в торец. – Размазать по стенке. – Дать хорошую трёпку. – Надрать уши. – Отсыпать на орехи. – Показать где раки зимуют. – Сделать больно. – Вломить. – Замочить – Грохнуть. – Дать взбучку. – Отшлёпать, что есть мочи. – Показать Кузькину мать.
Что выбираем? Что характеризует битву лучше всего? Кстати, про битву есть пару фактов.
Кто-нибудь пытался, атакуя Колдунью на летающей тарелке, стрельнуть вот прям в неё, а когда она подпрыгнет – пролететь под ней?
И почему Агент 9 не договаривает свою фразу!? Слово «butt» никогда не пишется – разговор просто обрывается. Это у всех так?
Такой прикол: http://Klimaleksus.narod2.ru/Files/W/whirlwind54.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind55.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind56.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind57.jpg Вам тётка не кажется СЛИШКОМ большой? Догадайтесь, как я это сделал! Я отвечаю – это не монтаж, не взлом, не фотошоп. Я клянусь, я не трогал память, ничего не менял, это оригинал. Я использовал только сохранение в эмуляторе и снятие скриншотов. Как же так получилось?
Ещё по произношению. Иногда Толстосум произносит слово я «I»(ай) очень явно, со странным логическим ударением на него. Будто это его любимое словечко! Надо как-то поразмыслить над ним. А его «err…». Вы это слышали? Это ж ну никак не «эрр…». Больше «амм…», просто «ммм…» или «эээ…». Буква «r» там вообще не произносится. Исправляйте! Ведь на озвучке гораздо правильнее сказать «эмм…» чем «эрр»! У многих персонажей есть акцент! А как мы будем озвучивать? Среди нас есть иностранцы? Я, например, русский (живущий в узбекистане с хохлятской фамилией…). Хоть у кого-нибудь будет акцент? Но не какой-нибудь там эстонский или грузинский, а например, французский, немецкий, украинский, японский или китайский, американский в конце концов. Нэ, я тожэ, канещнэй, магу с актцэнтэм кгаватит, дык эта жэ нэ тот эфэкт даст?
Вы заметили, что перед сценками на картинке (где показан первый кадр) часто небо не соответствует настоящему небу? Будто разработчики снимали свой скриншот тогда, когда в сценке было ещё другое небо, которое они потом изменили. А может мы сами снимем скрин первого кадра видео и заменим картинку?
Вспомнил, что забыл. Ещё два озвученных стиха: 1) Ода математике: Стих – http://www.sunhome.ru/poetry/184021 Озвучка – http://Klimaleksus.narod2.ru/site/Speak/files/07.mp3 (1,3 Мб)
2) «Дракон на утёсе» – был и остаётся моим самым-самым лучшим стихотворением! Стих – http://www.sunhome.ru/poetry/188762 Озвучка – http://Klimaleksus.narod2.ru/site/Speak/files/00.mp3 (1,4 Мб)
Теперь выложу сюда свой новейший последний стих, и пусть кто-нибудь только попробует обвинить меня в оффопе!!
.
Вихрь.
Вихрь, вихрь, шустрый пыл, Дуть ты в башне должен был. Как же мне при свете дня Сделать странного тебя?
На полуночной горе Нужно блеск увидеть мне… Как на остров воспарить, Чтобы бабочек схватить?
Кто сверлил и для чего Крышу замка твоего? Чьей неловкою рукой Ты потерян был такой?
Чей был способ, мысли чьи, Чтоб задать тебя внутри? Кто взметнул твой быстрый взмах, Передумав впопыхах?
…Ждут двенадцать лет, когда Подлетит к звезде звезда, Жаждут, чтоб зажёгся столб – Важный твой священный толк.
Вихрь, вихрь… Как злой рок Завершить его отвлёк? Я вернуть тебя хотел… Вихрь, вихрь – я сумел! * Вихрь! Вихрь! Возродив, Я трудился ради них: Ведь однажды предал мир Кто создать тебя забыл.
Может ЭТИМ заменим пустоту в «3MN_BLNK.DAT», чем наподобие того, что находится в «SOURCE.TRD» Spyro1?
Я придумал вихрь!!!!!!
http://Klimaleksus.narod2.ru/Files/W/whirlwind00.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind01.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind02.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind03.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind04.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind05.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind06.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind07.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind08.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind09.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind10.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind11.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind12.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind13.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind14.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind15.jpg
Удивлены? Поражены? Вопрошаете? Ага. Сейчас всё объясню. И это не фейк! Я действительно хорошо поработал! Вихрь настоящий, он рабочий, глюков не создаёт – безопасный. Вам конечно интересно, откуда там яйцо и куда делась третья банка с бабочкой, а ещё – почему вихрь такой тонкий. Я всё сейчас объясню.
…Как-то мне не хочется длинно писать… И неохота скриншоты снимать… Но выйдет, кажется, всё наоборот… Для нетерпеливых – качайте архив патча, инструкция внутри: http://Klimaleksus.narod2.ru/Files/Whirlwind.rar
Начало взлома. Я разгадал структуру четвёртых суб-субвайлов! Это не программный код. Это данные! Переменные, напрямую загружаемые в оперативную память. В файлах большая часть данных пуста. Но в ОЗУ она заполняется числами. Не вся – кое-что остаётся. Ссылки на каждый объект даны в конце суб-субфайла, вот: http://Klimaleksus.narod2.ru/Files/W/whirlwind16.png Цветами выделены указатели. Они задают объекты: http://Klimaleksus.narod2.ru/Files/W/whirlwind17.png Там всё. И координаты и тип. Сейчас ссылка идёт относительная, в пределах текущего файла. И вообще все ссылки там относительные. Но при загрузке в ОЗУ они меняются на настоящие адреса (8000000-801FFFFF).
Вычисляю объект! Взломал один бриллиантик: http://Klimaleksus.narod2.ru/Files/W/whirlwind18.jpg Вон тот, красненький. Как взломал? Брал его и загружался снова. Брал и загружался, отсеивая адреса. Остаток – в пределах «объекта», 88 байт. Поиграл с координатами: http://Klimaleksus.narod2.ru/Files/W/whirlwind19.jpg (Я не знаю, что Мэр там забыл!). Смог _остановить_ вращение камня: http://Klimaleksus.narod2.ru/Files/W/whirlwind20.jpg http://Klimaleksus.narod2.ru/Files/W/whirlwind21.jpg Превратил типа в бабочку-жизнь: (Спаркс его жрёт, и мне дают жизни… Он так прилипает к пустоте, что жизней уже 99, а он всё ест и ест!) http://Klimaleksus.narod2.ru/Files/W/whirlwind22.jpg Сделал автоматическое взятие: http://Klimaleksus.narod2.ru/Files/W/whirlwind23.jpg А красиво получилось! Интересно, как игра запоминает местоположение ВСЕХ летающих единичек и искорок? У игры всего 2 Мб памяти. Только 2два мегабайта! Вы вдумайтесь: а как работают стратегии (типа Red Alert), где на карте тысячи юнитов? Да, игра подвисает, но ведь работает! Вот в компе всё ясно – прога требует память у Windows. Если ОС выделяет память – пользуется. А если памяти нет – ОС просто дампит её часть в файл подкачки и всё равно выделяет память! А в PlayStation ничего такого не было. Откуда же игра память берёт? Сколько всего: http://Klimaleksus.narod2.ru/Files/W/whirlwind24.jpg А если так сделать с каждым бриллиантом? Что наступит тогда?
(Ушёл куда-то не туда…) Взломал бочку: http://Klimaleksus.narod2.ru/Files/W/whirlwind25.jpg Да-да вон ту, вторую. Глядите-ка: http://Klimaleksus.narod2.ru/Files/W/whirlwind26.jpg Видали? Я ещё могу: http://Klimaleksus.narod2.ru/Files/W/whirlwind27.jpg И даже так: http://Klimaleksus.narod2.ru/Files/W/whirlwind28.jpg Это – невероятно: http://Klimaleksus.narod2.ru/Files/W/whirlwind29.jpg Лучше с ним не болтать – зависает. Зойка: http://Klimaleksus.narod2.ru/Files/W/whirlwind30.jpg Пузырёк: http://Klimaleksus.narod2.ru/Files/W/whirlwind31.jpg Дальше хуже… Второй Спаркс! (куда-то спешит: ) http://Klimaleksus.narod2.ru/Files/W/whirlwind32.jpg И даже моё крыло: (?) http://Klimaleksus.narod2.ru/Files/W/whirlwind33.jpg Яйцо: http://Klimaleksus.narod2.ru/Files/W/whirlwind34.jpg Бабочка (Спаркс полетел кушать: ) http://Klimaleksus.narod2.ru/Files/W/whirlwind35.jpg Табличка для Шейлы: http://Klimaleksus.narod2.ru/Files/W/whirlwind36.jpg Нет, ничего не написано: http://Klimaleksus.narod2.ru/Files/W/whirlwind37.jpg Надел бочку на дерево: http://Klimaleksus.narod2.ru/Files/W/whirlwind38.jpg Уронил: (точнее, превратил в алмаз, который стал кататься, а потом обратно в бочку) http://Klimaleksus.narod2.ru/Files/W/whirlwind39.jpg Снял текстуру: http://Klimaleksus.narod2.ru/Files/W/whirlwind40.jpg Совсем: http://Klimaleksus.narod2.ru/Files/W/whirlwind41.jpg Тут же превратил в Толстосума: http://Klimaleksus.narod2.ru/Files/W/whirlwind42.jpg И в алмаз! Цвет – тоже можно менять: http://Klimaleksus.narod2.ru/Files/W/whirlwind43.jpg
Да! Я разгадал объекты! Я могу что угодно превратить во что угодно! Перехожу к вихрю… Я начал взламывать тот вихрь в Полуночной Горе, который стоит в ямке, которую надо пробить головой. Там ещё яйцо лежит. Вихрь-то выключается! Вот я и отловил этот момент.
Нашёл сигнатуру вихря: «FF-FF-FF-03». По ней смог вычислить второй вихрь, ведущий на островок с другим яйцом. Потом копирнул всю область объекта этого вихря, и наложил на тот вихрь в яме. Знаете что было? Два вихря в одном и том же месте! Он стал вдвое плотнее. Ладно, я отделил один из них, и стал тащить его в замок. Тащил горячими клавишами. Значит, дотащил. Установил его ровно в центре башни, ровно на полу. Настало время менять его высоту!
…Я перепробовал все переменные объекта, но высоты там нет вообще. И толщины тоже. Тогда я сопоставил 88 байт обоих вихрей, ведь они были разной высоты. Всё что я обнаружил – самое начало записи, четыре байта. В них занесено странное число. Если его изменить, то вихрь либо уменьшается в полоску, либо становится размером во весь уровень и просто несёт в бесконечность. Но если копирнуть этот квартет с одного вихря на другой – он принимает его форму. Я попробовал вставить ЭТО число на вихрь в Spooky Swamp, но он тут же испортился. Почему? А потому что это был указатель!
Я перешёл по указателю, и обнаружил, что нахожусь совсем недалеко – в этом же четвёртом суб-субфайле. Где-то между областью переменных и текстами персонажей. Там ещё через промежутки впихано «FF-FF-FF-FF» (-1, яяяя). Это разделители: http://Klimaleksus.narod2.ru/Files/W/whirlwind44.png (выделено синим. Зелёным выше выделены координаты яйца, о которых речь пойдёт позже, а нули ниже – область, которую попытаюсь занять я, что повредит «04», выделенное красным – читайте дальше!) Как выяснилось позднее, это была область дополнительных переменных. Каждый объект имел свои 88 байт, не первые четыре указывали на другую область, где находились особые переменные – чисто специфические для данного объекта. Конкретно для вихря – высота и ширина! Тогда я внимательно осмотрел эту область (скриншот выше). Заводской вихрь указывает на 8 байт – высоту-ширину (по 4 байта). Следующие 8 байт пусты, а затем идёт разделитель. Тогда я схитрил и занял эти самые пустующие 8 байт, направив на них указатель вихря. Ура, он появился! Я стал исправлять его высоту и ширину. Сначала просто довёл высоту до выхода из башни, но обнаружил, что вихрь выбрасывает не в ту сторону. Среди основных переменных нашёл поворот на плоскости (являющийся для вихра направление выброса) – один байт (что странно, ведь обычно переменные 4 байта). Изменял его до тех пор, пока вихрь не стал выбрасывать в нужную сторону. Даже испугался, что абсолютно точно навести не смогу (ведь круг делится на 256 частей. Это вроде много, но учитывая то огромное расстояние, которое нужно потом пролететь – накапливается серьёзное расхождение, и разнице в «1» уже равносильно всей толщине острова…) На мою радость – получилось! Причём РОВНО в центр острова. Потом я ещё поработал над высотой, чтобы всегда точно долетать (упирался прям в третью бочку с жизнью). Толщина. Логично было бы оставить заводскую как у других вихрей. Но я подумал, что это самый главный в длинный поток, поэтому чтобы он был красивым, я немного заузил его. Чуть шире Спайро. При подъёме правда заметно, что дыра и туннель в потолке слишком широки для такого узкого подъёма, но это даже прикольно. Что было ещё круто? То что камера сама сразу становилась снизу – и показывала весь полёт «из-под». А что было отстойно? То, что отсутствовал тот вихрь на меленький островок, из которого я сделал этот…
*Продолжение ниже*
Сообщение отредактировал aleksusklim - Вторник, 01.05.2012, 18:43 |
|
| |
aleksusklim | Сообщение # 105 | Тема: Перевод Spyro 3: Текст Вторник, 01.05.2012, 18:27 |
фдулыгылдшь
 Редактор
«1066»
Где: Не в городе Драконов
|
ЧАСТЬ 2
Надо исправлять ситуацию! Я ведь хотел превратить один красный алмаз в зелёный, а из другого красного сделать вихрь. Взламываю алмазики… Ну что-то с изменением не вышло… Я нашёл ячейку, отвечающую за цвет (красный, зелёный, синий, жёлтый, фиолетовый). Нашёл другую (!) ячейку, отвечающую за форму (круглый, треугольный, прямоугольный, квадратный, овальный). И ещё одну – за кол-во гемов (1, 2, 5, 10, 25). То есть я мог в ОЗУ создавать невиданные камни разных форм! Я изменил все три характеристики у красного и занёс их в файлы игры. Но… Алмаз снова стал красным и затёр мои модификации… Получается, что его три переменные – это следствие, а не причина. То есть они появляются потом, когда игра прочитает где-то основное значение. И создать «невиданные камни» навсегда нельзя. Тогда я перешёл ко взлому бочки! Чтобы просто изменить тип бриллианта, который из неё выпадает. Плюс я нашёл способ быстрого нахождения 88 байт объекта без изнурительных отсеиваний. Надо в ArtMoney найти любую фразу. Потом в редакторе памяти немного подняться, увидев зону переменных (пора бы научиться её отличать). А затем методом «копировать/вставить область» начинать затирать нулями всё подряд! Очистить одну страницу, PageDown перейти на следующую и тоже очистить. Игра при этом должна быть запущена в окне, и через несколько страниц нужно загружаться, иначе рано или поздно она вылетит. Так вот, на какой-то странице есть нужный объект. И если его стереть, он просто исчезает из игры! Так можно хоть весь живой мир стереть – всё будет пропадать на глазах (я чувствовал себя богом, если не дьяволом…) Взломал кувшин! Вон тот: http://Klimaleksus.narod2.ru/Files/W/whirlwind45.jpg Хоп-па: http://Klimaleksus.narod2.ru/Files/W/whirlwind46.jpg И глюк: http://Klimaleksus.narod2.ru/Files/W/whirlwind47.jpg
Потом я искал, где же там внутренний бриллиант, но догадался, что это два объекта, а не один. Или сначала появляется бочка, а потом камень. Мне это как-то поднадоело, и я переключился на другие объекты. Смотрю – ящерицы ползают. Хотел их взломать, но там всё вообще нереально – это динамические объекты, которые, кажется, располагаются в разных частях памяти, и в файлах их просто нет. Тогда я подумал о тех двух скалах, которые нужно разбить, чтобы попасть к тем двум вихрям. Но если убрать скалы, будет неинтересно… Я должен был срочно найти объект, который абсолютно ни за что не отвечает, который можно было бы спокойно изменить… И я нашёл! Это как раз бочка с бабочкой-жизнью! Ведь действительно, она вообще не нужна для игры. А их на острове сразу три штуки. Вот я и взломал среднюю. Ещё был такой глюк, что банка остаётся, а бабочка из неё вылетает. Но это не важно… Я перенёс код вихря уже не на другой вихрь, а на эту банку. И она исчезла, превратившись в мой вихрь в замке! Настала пора всё это зафиксировать.
Я модифицировал четвёртый суб-субфайл, закрасив вихрем нужный мне объект. И стал проверять игру. Та самая бочка с жизнью откуда-то появилась обратно! Я подумал, «Вот круто!» но на самом деле я просто занёс данные не в тот объект, и вихрем стало что-то другое… Чтобы не ошибиться ещё раз, я нашёл в памяти слово «Zoe», выписав его адрес. Потом нашёл данные (88 байт) банки, и выписал и её адрес (перед Зоей). Отнял от первого второе и получил отступ, по которому нужно перейти от слова «Zoe» в суб-субфайле в обратную сторону. Так был обнаружен правильный объект, и банка на самом деле исчезла. Но жалко оставлять на островке лишь двух бабочек… Нужно.. яйцо!!
Какое… так-так. Есть одно очень подозрительное яичко: http://Klimaleksus.narod2.ru/Files/W/whirlwind48.jpg Признали его? Готов спорить, что не все. За него засчитывают «Catch the thief». Поняли, да? Это особое яйцо. Просто так в игре его нет. Оно находиться у вора на мосту. Догоняете вора – получаете яйцо на этом же мосту. Откуда же оно там, где я показал? (Заметьте, что прямо за стенкой стоит другое яйцо, а два яйца подряд как-то слишком.. просто?) Если попасть на Полуночную Гору и не ловить вора? Набрать сотню яиц и победить Колдунью? На мосту-то будет Толстосум. А не вор! И яйцо вора не взято? Я не знаю, был ли освещён этот факт где-то ещё на форуме, но результат таков – это яйцо будет просто лежать там – не на мосту, а возле стены (скриншот). Вопрос: почему именно там!? Это… «не кайфово». Это слишком легко. Это отстойно! Другое дело, если бы оно появлялось на том далёком острове, куда ведёт мой вихрь…
Решено! Взламываю яйцо. Масштаб: http://Klimaleksus.narod2.ru/Files/W/whirlwind49.jpg Великовато? Могу ещё больше, но вылупляется как обычно: http://Klimaleksus.narod2.ru/Files/W/whirlwind50.jpg (у Колдуньи на первых скриншотах – нет, масштаб не причём!) Так, ладно, мне нужны координаты. Залезаю в файлы и вместо координат яйца ставлю координаты третьей банки с жизнью, из которой я сделал вихрь. Прожигаю, проверяю… Знаете что было? Вместо яйца там появился сам вор! Я прилетел на остров, он спрыгнул оттуда и бегал по пропасти. Значит я сменил не те координаты… Нашёл ещё тройку тех же самых координат. Да, это оно! Меняю: http://Klimaleksus.narod2.ru/Files/W/whirlwind51.jpg Ах, нет, я ошибся… Это совсем не то. А в чём же дело!? Оказывается, исходные координаты этого яйца, координаты вора и координаты Толстосума равны между собой и указывают на середину моста. Но никак не туда, где появляется яйцо! Тогда я начал искать в ФАЙЛЕ те координаты, которые взял из ОЗУ (а не из того же файла). Нашёл отдельно в «дополнительной зоне» причём совсем недалеко от места, куда перенёс восемь дополнительных байт вихря (зелёное на том скрине). Ура! Наконец-то заменил, и яйцо появилось где нужно – в центре у дальнего края вместо банки с жизнью. Только располагалась оно как и прежде – «лицом» вдаль. И чтобы его «взять», нужно было подойти к нему с другой стороны, и дракончик неизбежно падал в пропасть! Решение – развернуть яйцо вокруг своей оси. Я сделал это в ОЗУ, а когда закреплял результат – всё стёрлось, потому что это не обычное яйцо, а как с его координатами – задаются динамически. И единственный выход – переставить яйцо поближе к первому краю острова, чтобы у Спайро было место куда встать. То есть так, как я и оставил, как на первых скриншотах. А что же вместо банки с жизнью? Можно представить, что это «посадочная полоса», ведь приземление происходит именно туда. Две бочки с бабочками плюс рождающийся дракончик, выплёвывающий простую бабочку – вообще прикольно получилось, будто он тут бабочек наелся…
Пришла пора мне тестировать уровень! Чтобы всё работало. Нашлись ошибки… То яйцо, которое внизу в яме с другим вихрем – отказывалось рождаться! Оно даже не качалось – просто стояло, словно я не с той стороны подошёл. Я не мог понять, что же с ним случилось, если его код я вообще не трогал! Взломал и это яйцо. Посмотрел, куда ведёт ссылка. Оказывается прямо туда, куда я направил дополнительные 8 байт от своего вихря! Данные такие. Заводской вихрь: 1) HH-HH-HH-HH=WW-WW-WW-WW= 2) 00-00-00-00=00-00-00-00= 3) FF-FF-FF-FF=FF-FF-FF-FF= 4) ??-??-??-??=FF-FF-FF-FF ,где: «HH» – четыре байта высоты вихря, «WW» – четыре байта толщины вихря, «00» – нули, пустые байты, «FF» – 255 (FFh) – «-1» – разделители данных для объектов, «??» – информация, не относящаяся к вихрю.
Вот я и подумал изначально, что вихрю нужно только WW+HH, а следующие восемь нулей я могу занять высотой и толщиной своего вихря. Так номер рождающегося яйца как раз и хранился в «??» (04-00-00-00), после которого следовало «FF». Всё бы ничего, но мой вихрь сам добавил для себя ещё восемь нулей и один «-1» разделитель. Вышло так: 1) HH-HH-HH-HH=WW-WW-WW-WW= 2) HH-HH-HH-HH=WW-WW-WW-WW= 3) 00-00-00-00=00-00-00-00= 4) FF-FF-FF-FF=FF-FF-FF-FF= То есть вместо «??» (04) там оказалось «FF», что не определяет номер яйца и не позволяет ему родиться. Что можно сделать? Я мог поменять мой вихрь с этим яйцом (то есть превратить банку с бабочкой в яйцо, а яйцо – в вихрь, чтобы изменить последовательность загрузки объектов), но ведь это может вообще всё испортить. Поэтому я решил просто найти другое место для своих восьми байт…
Я пытался вклинить из между фраз. Пытался заполнить оставшееся место для переменных, пытался дописать их в конец файла – куда бы я не поместил это, игра ВЕЗДЕ засовывает какие-то свои данные, удаляя мои байты! Я обратился в яичную зону, где должно быть много места. Туда, куда мы хотели экстернализировать текст персонажей. Ох, что я там увидел… Там НЕ пусто. Всё забито какими-то байтами… Самое странное, что не всегда. Иногда там абсолютно свободно. И иногда – всё занято. Кажется это зависит от того, каким путём мы попали в уровень – из другого уровня или после перезагрузки текущего (проигрыш). Рисковать нельзя! Надо найти на 100% процентов свободное место. …Я перепроверил «заполненность» яичной зоны (второй суб-субфайл). Оказывается, в ОЗУ заменяется не всё пространство, которое свободно в файлах. Заменяется большая его часть, но в конце пара килобайт остаётся. (Конец выглядит так. Если найти имена яиц в файле, то после них следует пустота. Долго следует… Потом встречается блок, состоящих из «FF» (яяяяяяяя) множество раз, но вперемешку с другими байтами. После него идёт совсем немного пустоты – и суб-субфайл заканчивается. И «яичная зона» – это то большое пространство от последнего имени яйца до блока «FF», но не до конца файла!) Я перенёс туда высоту и ширину вихря, после чего скомпилировал игру.
Вихря, естественно, не было. Надо ещё добавить ссылку. Нашёл адрес «Zoe» и адрес тех своих данных в конце яичной зоны. Нашёл разницу между ними. Потом в файле взял указатель (из 88 байт объекта – первый квартет) и приравнял его на «Zoe». Потом вычел из него разницу, получив отрицательное число, превратившееся в четыре миллиарда с лишним (в теме про взлом описан этот феномен) и сохранил всё. Ура, ну наконец-то! Всё заработало так, как надо! Я ещё раз перепроверил играбельность уровня, собрал все самоцветы, все яйца, всё потыкал. Больше ошибок нет. Только камера теперь не показывает полёт снизу, а пытается лететь сверху, ударяясь об потолок и застревая там. Выяснилось, что за это отвечали «FF» в дополнительно области, которые я убрал при вводе в яичную зону. Решение – после высоты и ширины я просто добавил ещё 16 «FF», чтобы уж точно закрыть ими все нули. Да, отныне камера опять заходит снизу. Ковыряясь в основных переменных объекта (88 байт) я нашёл число 16. Если его прировнять нулю, вихрь исчезает. Но суть не в этом. Просто когда Спайро поднимается на крышу башни, но вместо того, чтобы лететь спрыгивает на неё, то вихрь прекращается сам собой. То есть, глядя сверху в дыру – там нет никакого вихря. Это как бы правильно, ведь все вихри в игре так себя и ведут. Но если вместо «16» туда написать например «32», то вихрь больше вообще не выключается и дует в любом случае. Я решил пока это не изменять и оставить 16.
У нас теперь есть собственный вихрь в замке Колдуньи! Я открыт для критики, ведь в этом вихре можно кое-что изменить: – Толщина. Если вам кажется, что он слишком узкий, то можно немного расширить его. Но на мой взгляд, так он выглядит более загадочнее и впечатлительнее, чем если бы он был обычным среднестатистическим потоком. – Высота. Если её ёще немного увеличить (до 32000), то Спайро будет попадать не на центр островка, а на самый дальний край. Но мне кажется, что лучше пусть падает на центр! – Выключение. Можно сделать так, чтобы вихрь дул всегда, даже когда дракончик стоит на крыше замка. Нам это нужно? Мне кажется, что да, но пока я оставил как было. – Позиция над полом. Сейчас он дует прям из пола, но можно его поднять так, чтобы Спайро попадал на него только подпрыгнув. Например, чтобы не залетать случайно. Но на мой взгляд, так будет некрасиво. – Содержимое островка. Я бы добавил туда ещё баночек с бабочками, но я не смог разгадать, как же создавать свои объекты. Но зато я могу перенести на этот остров ещё чего-нибудь, например, бочек с алмазами. Или ещё одно яйцо. Или убрать это яйцо.
Вам всем наверно хочется, чтобы вихрь появлялся только после победы над Колдуньей, но с этом туго. Не выйдет как я хотел раньше. В тех уровнях, где главное яйцо активирует вихри (Cloud Spires, Spooky Swamp) «главным» считается первое по атласу яйцо. Но в «Midnight Mountain» яйцо Толстосума отнюдь не является главным! И поэтому даже такой метод не сработает. Наверное где-то всё же есть способ, как с этим справиться, но мне кажется, что и так уже достаточно сделано. К тому же, то яйцо вора появляется на острове только после победы над Колдуньей, если конечно этот вор не был пойман ранее. А знаете что! Можно выкинуть куда-нибудь этого вора с поля. Чтобы его яйцо вообще нельзя было взять! Тогда и вихрь на самом деле пригодиться. Но это уже будет нарушение динамики игрового процесса – если там есть вор, значит там должен быть вор! Не то что банка с жизнью…
Вихрь готов, осталось внедрить результат в народ. Как? Нужно запаковать вихрь в нашу русскую версию Greatest Hits. Только ждать долго… Поэтому я предлагаю пока испытать мой вихрь всем желающим. Для этого нужно скопировать WAD.WAD с образа, вытащить из него 152-ой субфайл и заменить в нём кое-что. Проще всего сделать это через патч. Я взял «T.P.E», через который можно делать патчи. Это бы первый раз, когда я воспользовался им. Но, ох! Ну и тупая же программа… Байты ей запятой отделяй, файл в ОЗУ не помещается… Ну нафиг! (Правда T.P.E. мне сразу приглянулся одной своей надписью. Если нажать кнопку «ADD», не введя никаких данных, выскакивает окошко: «How about entering something first, Einstein?», которое навсегда покорило моё сердце! А ещё тоже было круто в одном досовском двоичном редакторе при отмене – «Cancelled by Hacker»!) Написал свой патчер на делфи – QuickPatcher v1.1 ! Он берёт текстовый документ, где в первой строке размер оригинального файла, а потом список: {смещение 1} {имя файла 1} {смещение 2} {имя файла 2} … И записывает по первому смещению патчуемого файла целиком указанный файл (из текущей папки), по второму смещению – второй файл, и так далее. Мне осталось только скинуть все изменяемые данные по файлам и задать для них верные смещения. Также сделал патч для отмены – чтобы превратить вихрь обратно в бочку и вернуть яйцо на место. Получилось очень просто! Всего три смещения для изменения: 24 байта в яичной зоне – http://Klimaleksus.narod2.ru/Files/W/whirlwind58.png 88 байт как объект – http://Klimaleksus.narod2.ru/Files/W/whirlwind59.png И 12 байт координат яйца – http://Klimaleksus.narod2.ru/Files/W/whirlwind60.png Больше ничего менять не нужно. Но кто умеет перепрожигать образ? Пара человек. А мне нужны все!
Тогда я сделал второй набор патчей (точнее, только смещений), чтобы патчить сразу образ ! Да, я знаю, это неправильно, это небезопасно, но зато это очень быстро! Только сначала надо закрыть Epsxe, если он использует этот образ, и размонтировать все виртуальные приводы, в которые он вставлен. Потом пропатчить ISO и снова запустить Epsxe. Если вы загрузите savestate уже на Полуночной Горе, то вихрь не появится до тех пор, пока вы нее совершите самоубийство. А потом – вуаля! И даже если у вас уже взята та бутылка с бабочкой, вихрь всё равно будет.
Только потом не забудьте ещё раз пропатчить образ (чтобы отменить вихрь), иначе его может сильно заглючить. Ведь из такого нагло изменённого образа даже нельзя копировать файлы – пишет, мол, ошибка CRC. А играть можно!
Качайте патч, ссылку на который я дал в начале: http://Klimaleksus.narod2.ru/Files/Whirlwind.rar (47 Кб)
Инструкция внутри. Но я просто скажу, что нужно мышкой перетащить образ Greatest Hits на файл «Apply for Greatest Hits.bat». Теперь все – качайте это! Проверьте! Он должен у всех работать! (Наверное, временно изменю свою подпись и аватарку, чтобы все-все заметили меня!)
Ещё в архиве файл карты памяти с тремя сохранёнками. Одна – наш полностью пройденный GH (выложил Yams на Google Code), где я отнял яйцо у вора; вторая – сохранение на завершённом Вечернем озере, где остаётся только пролететь к Полуночной Горе (96 яиц, боссы проставлены кроме Колдуньи, но вышла странная накладка с геммами – нужно собрать ещё 2000, чтобы это пропало, потому что я платил Толстосуму, как бы… ээ..в долг!); третья – прикольная сохранёнка с кучей глюков, которая вышибает вообще все игровые защищаемые критерии вплоть до появления Зои с нотациями и Толстосума с многоточьями.
Также в архиве есть таблица для ArtMoney, где прописано полное управление моим вихрем: http://Klimaleksus.narod2.ru/Files/W/whirlwind52.png
А ещё – позиционный файл для WinHex (раскраска как на скриншотах). Чтобы его загрузить, при открытом файле нажмите CTRL+M > кликните туда правой кнопкой > load position file… > и укажите мой «.pos».
Всё!
Quote (Тигрёнок13) Если вам нужен текст без ошибок, скажите, поработаю над другими переводами. Если же нет, и я только мешаю, тогда прошу прощения, больше лезть не буду
Ещё один редактор! Добро…
Quote (DrWho) Не нужна, она здесь возможна, но если поставить, логика теряется. … А тут ситуация спорная. С одной стороны, при чтении не понадобится, но с другой стороны, чаще всего это слово обособляется.
Quote (Тигрёнок13) Дело вовсе не в логике, а в том, как правильно писать.
Здесь я с вами поспорю! Прав DrWho. Не в том, что ошибся, а в том, что он писал так намеренно.
*Окончание ещё ниже*
Сообщение отредактировал aleksusklim - Вторник, 01.05.2012, 18:31 |
|
| |