Результаты поиска по запросу «

nf lf lf

»

Запрос:
Создатель поста:
Теги (через запятую):



nfs Игры reverse engineering русская локализация программирование geek кириллица длиннопост много картинок 

Как я реверсил кириллицу в русской локализации в играх серии Need For Speed времён Black Box

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

Но порой не всегда локализации идеальны: в каждой найдётся куча отсебятины, иногда информации, которой в оригинале и не было, а то и неправильно интерпретированная речь, которую нам и расхлёбывать *кашляет по-ватчдоговски*

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

Осторожно, много скринов!

С чего всё началось?

А началось всё с этого мема:

Рашка приплетена! Разъебал по фактам Время срача Приз от навального Репутация за срач Репутация за стрелы _ Навыки либерахи валить в сша вИ1«>олу.#<тьпмАы О Рос гвардии,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный,

Да. К политике нынешней данный мем особо отношения не имеет, да и не должен.

Данный скриншот был сделан в игре Need for Speed: Undercover 2008 года. Сама игра по себе является проходняком, ибо сделана на коленке (на самом деле EA тупо торопила разработчика лишь бы выпустить продукт).
Но вот текст на этом меме был отфотошоплен оченькриво и с неправильными шрифтами (оригинальные шрифты для игры — Aquarius Medium и Light для заголовка, Helvetica Neue STD для обычных текстов в данном окошке)
Мне это, скажем так, изрядно не понравилось и я поставил себе цель воссоздать этот мем методами самого геймплея этой игры.

И это звучит достаточно легко в теории, но на практике это что угодно, кроме «легко». Было.


Как и Чем

Первым делом я решил полезть в ресурсы игры. Для этих дел есть разработанная моддерским сообществом программа Labrune за авторством nlgzrgn

*“ Labrune - D:\GAMEZ STEAM\steamapps\common\Need for Speed Undercover\LANGUAGES\English_Frontend.bin File Edit Help #0 - Frontend ID Hash Label Text ¡387 31D50F50 POSTRACE_YOU_DOMINATED You Dominated! 388 3255EBD4 CUST_LOOKAHEAD_PAINT_WHEEL Change your vehicles wheels and design 389 339077C4
Собственно, её интерфейс.

Она спокойно читает файлы игр, начиная с NFS: Underground вплоть до NFS: World, ибо вся линейка этих игр была сделана одним разработчиком на почти одинаковом движке (ходят слухи, что при разработке этих игр разрабы из-за торопливости не особо морочились убирать остатки старого кода со старых игр, а просто переносили всё в один компилятор и за счёт остатков, найденных в коде, выходили новые моды, сильно расширяюшие функционал игр (как пример этого — последняя версия Unlimiter'а для Most Wanted 2005, берущая часть функционала из NFS Underground 2)).

Читает спокойно до тех пор, пока не скормишь ей файл с русскими текстами

■* Labrune - D:\GAMEZ STEAM\steamapps\common\Need for Speed Undercover\LANGUAGES\Russian_Fi File Edit Help #0 - Frontend ID Hash Label Text 1276 AC322 D 93 VINYL PART MER SLR 2TONE2 2 1277 AC322D94 VINYL PART MER SLR 2TONE3 3 1278 AC821745 CREDIT_ROLL_PRESENTS c 1279 AC8761FE

Чё?

n© HxD - [D:\GAMEZ STEAM\steamapps\common\Need for Speed Undercover\LANGUAGES\Russian_Frontend.bin] — □ X • File Edit Search View Analysis Extras Window ? _ & x ! | <$> M 16 Polish_Global.bin *2] Russian_Frontend.bin Offset(h) 00 01 02 03 04 05 06 07 08 09 ÖA 03 OC OD OE OF 00006690 82 20 83

И Hex-редактор тоже не может помочь. Выделенная фраза означает «Ты лидер!». Как я узнал - читайте дальше.

Вместо текстов в лучшем случае кракозябра, в худшем случае пустота. На момент написания статьи не исправлено/не воплощено.



И теперь самое интересное!

Тогда я решил править runtime память, если Labrune даже не хочет править файлы и даже сохранять их.

Открыв игру, предварительно выбрав английский язык, я сначала баловался с английским текстом, занимаясь поиском его положения через Cheat Engine и правя его.

Первый текст, который появляется при запуске Undercover, это PSA — Public Service Announcement, то бишь «не гоняйте пацаны вы матерям ещё нужны»

Need for Speed™ Undercover presents an Action Driving Experience. Pull these moves within the safety of your home ONLY. Do not take this kind of driving to the neighborhoods and streets in the real world.,Need For Speed,Игры,nfs,reverse engineering,русская

Вот он.

Вычислив адрес, с которого начинается этот текст, я решил изменить этот текст на что-нибудь интересное:

Need for Speed: Undercover is what happens when you want to make a yearly game but you forget to polish it. And yes, because you had to rush it for the late quarter release, there's a good amount of unused content in this game.,Need For Speed,Игры,nfs,reverse engineering,русская

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

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

RASHKA !!~WM_Vremya sra4a 1:10.39 , r IIJl Cash $260 Wheelman Rep 3,000 Zone Points (+Rep) 3,000 " i40L#,41 frf CONTINUE® PLAY AGAIN® STANDINGS ©,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный

Вот так всё начиналось. До русского текста ещё далеко. Мусор в начале второй строки «vremya sra4a» там из-за того, что я где-то убрал байт, отвечающий за начало текста и игра подхватила этот кусок для отображения.

Играться с англ текстом было детским садом, и всё же хотелось сделать по-русски.

Я перезапустил игру, сменив в стиме язык игры на русский
Игра, запустившись, выдала уже такое содержание:

Need for Speed™ Undercover - это симулятор вождения. Выполняйте эти трюки ТОЛЬКО в игре. Не пытайтесь повторить их в реальной жизни.,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный

Текст уже короче, и надо как-то узнать, под какими значениями идёт кириллица.

Благо у меня уже есть адрес для правки текста, сейчас я к нему обращусь, и…
И он уже бесполезен, потому что русский текст всегда длиннее, вследствие чего место прошлого текста уже занял мусор, так что нужно было искать новый адрес. Благо текст, как в прошлый раз, начинался с латиницы и кусок памяти с ней было легко найти.

PSA english [ 1 PSA russian 2082B50D 212837CD String[229] u?G_? ?Gw?M? J?ey? ???Gm? g??G? ?d??K[? G!?v? ?g??Ds G?C Strinq[309] Need for Speed? Undercover - ? ??? ??. ??? ???????.? ??? ??■,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты.

Первая идея была такая — скопировать каждый отдельный символ, подразумевавший определённую букву в тексте, в блокнот и оттуда же закинуть в адрес своё. Было муторно записывать каждую кракозябру в блокнот, надеясь, что она поможет в дальнейшем.
Результат — неудовлетворительный.

Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,кириллица,длиннопост,много картинок

Как итог — в игре мусор…

PSA english 2082B50D String[229] u?0_? ?Ow?M? J?£y? ???0m? g??G? ?d??K[? 0!?v? ?g??Dg 0?C PSA russian 2128S7CD String[B09] Need for Speed Undercover - $$$ $$$$$$$$$ $,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и

...и в Cheat Engine тоже.

Вторая и более правильная мысль — та, ради которой вы дочитали до этого момента — это зайти в содержимое памяти по нужному адресу (тыкнув Memory View или CTRL+B, выбрав нужный адрес) и прочитать байты, отвечающие за кириллицу.
Но перед этим дайте я игру перезапущу, чтобы игра выдала норм текст, ок?
Ок.

^ Memory Viewer — □ X File Search View Debug Tools Kernel tools nfs.exe+10082ED Address Bytes Opcode Comment nfs.exe+1008;53 push nfs.exe+1008;51 push ecx nfs.exe+1008;52 push edx nfs.exe+1008;56 push esi nfs.exe+1008;57 push edi nfs-jpxp tiooa:55 oush shn push word or

Вот так выглядит память игры во время запуска процесса. На данный момент Memory Viewer показывает кусок памяти, начиная с адреса, который указывает на начало текста PSA. Выделенный байт 00 означает технический конец текста.

Стерев всё, что было в блокноте и написав шаблон алфавита для заглавных и строчных букв, я начал вглядываться в байты, записывая эквивалент буквы в блокнот.
То есть э — B9, т — 86, о — 81, пробел — 20, с — 88, и так далее…

Я решил проверить мою новую теорию, изменив вступительный текст с имеющимся байтами…

Need for Speed™ U недоделанная игра. Gentera Style 204 ndercover - это,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,кириллица,длиннопост,много картинок

… и теория оказалась верной! «Gentera Style 204» стоит там из-за того, что я на тот момент не знал, что нужно ставить байт 00 для обозначения конца читаемого текста. Но само подтверждение теории меня очень обрадовало!

В ходе дальнейшего реверсинга байтов выяснилось, что исполнительный файл игры для отображения кириллицы использует байты от 81 примерно до FF, а также использует байт 80 совместно с другим соседним байтом справа для отображения других символов, например для отображения буквы ъ - 80 89, Ж - 80 83, Ю - 80 88, Щ — 80 80, и т.д.

В итоге за 2 дня тестирования я составил такую карту используемых символов кириллицы:

а - - 82, б - 55, в - 85, д - со о е - 84, ё - ЕЗ, и - - 83, й - 57, к - 83, и - - 8F, н - 85, о - 81, р - - 37, с - 88, т - 86, ф - - F0, X - AD, ц - 32, ш - - Аб, щ - 38, ъ - 80 85 ь - - 53, 3 - 35, ю - 31, А д и м F Ф ш ь 53, Б - DO, 3 5А, Е - A3, Ё 58, Й - (FD)FE, AF, H -

Скобки означают, что я на данный момент не уверен, какой из байтов используется для отображения такого-то символа, либо может использоваться комбинация этих байтов для отображения «Й»․ Отсутствующий байт у буквы Ё — значит я не нашёл байт от этой буквы, и не велика потеря — в тексте игры нет строк, где есть буквы ё и Ё — всегда е. Почему? Спросите у 1С-СофтКлаб или у самих Black Box.

И таким методом я и воссоздал тот самый пресловутый мем и разреверсил кириллицу. Хоть и не полностью, но это уже хорошо.

03 1 Am Rock Rock 04 In A Hood Near You Suni Clay Suni Clay сдня не ндг>0 ii*1' . Этот парень был из тех, кто просто любит жизнь. 02 Do Ya Thang T.l. Presents The P$C 25 To Life (±в] Последовательный В Меню Меню Меню Упорядочить Ознакомление,Need For Speed,Игры,nfs,reverse

Ну и ещё.

Что было дальше?

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

а - 83, б - 5С, в - д - 8D, е - 82, ё - и - к со W и - 5D, к - м - 8Е, н - 85, о - р - 87, с - 88, т - ф - ЗС, X - 32, ц - ш - AF, щ - СЗ, ъ - ь — 53, 3 — 37, ю — А — 51, 5 — 34, 3 — Д - A3, Е - 57, Ё - И - 58, W и - D7, К - м - А8, н - 54, О - F - 55, с - 5Е, Т - Ф - DO, X - DE, Ц -

Это уже для ProStreet

а - V со б - 95, в д - 8Е, е - 82, ё и - 83, W и - 94, к и - 8D, н - 86, о р - 87, с - 88, т ф - 34, X - A4, ц ш - 99, щ - 33, ъ ь — 51, 3 — А7, ю А — Аб, 5 — 36, 3 Д - AD, Е - А5, Ё И - А2, W и - ЗА, К м - 32, н - 9D, 0 F - 93, с - 9С, Т Ф - 3F, X - ЗЕ, Ц ш - О о щ - С4, ъ ь - С1,

Это уже для Most Wanted (2005). Заметьте, комбинация байтов 80 XX тогда ещё не использовалась.


*скоро будут байты для NFS: Carbon, Underground и Underground 2*

Послесловие

Своей находкой я поделился с NFS комьюнити, автор проги заметил это и мне ответил:

nlgzrgn Yesterday at 23:21 Thanks for the information! If I update the tool. I'll create something to switch those characters to properly handle any language.,Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный

Я дальше не знаю, что под конец написать, поэтому вот вам котик

Need For Speed,Игры,nfs,reverse engineering,русская локализация,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,кириллица,длиннопост,много картинок

Хорошего дня!

Развернуть

Need For Speed Most Wanted 2 песочница Игры гонки 

Список автомобилей нового NFS.
Машины гонщиков- AC Cobra
Alfa Romeo 4C Concept
Ariel Atom
Aston Martin V12 Vantage
Audi A1 ClubSport Quattro
Audi R8 GT
Spyder BAC Mono
Bentley Continental Supersports Convertible
BMW M3 E92
Bugatti Veyron Super Sport
Caterham Superlight R500
Chevrolet Camaro ZL1
Chevrolet Corvette C6 ZR1
Dodge Challenger SRT-8
Dodge Charger SRT-8 2012
Ford F-150 SVT Raptor
Ford GT Ford Mustang Boss 302 (2012)
Ford Focus RS
Hummer H1 Alpha
Jaguar XKR
Koenigsegg Agera R Roadster
Lamborghini Aventador LP 700-4
Lamborghini Countach5000 Quattrovalvole
Lamborghini Gallardo LP570-4 Spyder Performante
Lamborghini Murcielago LP670-4 SuperVeloce
Lexus LF-A
Marussia B2
McLaren MP4-12C
Maserati GranTurismo MC Stradale
Mitsubishi Lancer Evolution X
Mercedes-Benz SL 65 AMG Black Series
Mercedes-Benz SLS AMG
Nissan GT-R (2012)
Pagani Huayra
Porsche Panamera Turbo S
Porsche 911 Turbo 3.0 (1978)
Porsche 911 Carrera S (2012)
Porsche 918 Spyder
Range Rover Evoque
SRT Viper GTS
Subaru Cosworth Impreza STI CS400
Tesla Roadster
Машины полиции- Bugatti Veyron Super Sport
Chevrolet Corvette Z06
Dodge Charger SRT8
Ford Crown Victoria
Ford Explorer
Машины трафика- Cadillac CTS-V
Chevrolet Cobalt SS
Dodge Caravan Taxi
Dodge Ram 1500
GMC Kodiak
Infiniti G35
f7EEDrOfJSPEED MOST WANTED a CRITERION GAME,Need For Speed,Most Wanted 2,песочница,Игры,гонки
Развернуть

Aqua (KonoSuba) KonoSuba Anime Namakura noelle Anime Unsorted 

Aqua (KonoSuba),KonoSuba,Anime,Аниме,Namakura noelle,aqua (konosuba),kono subarashii sekai ni shukufuku wo!,Anime,fandoms,Namakura noelle,Anime Unsorted,Anime Unsorted
Развернуть

песочница Игры гонки нужна помощь подскажите Поиск Игр 

Хочется дрифта

Привет, Реактор! Требуется помощь знатоков PC-гонок: в какой игре лучше всего реализован Drift? 
За помощь заранее спасибо!
песочница,Игры,гонки,нужна помощь,подскажите,Поиск Игр
Развернуть

#Приколы для даунов Мемы леонардо да винчи 

эн xeaoL/ah adoatf ndu и etf
daioew qieoHU iqHHiden и,Приколы для даунов,разное,Мемы,Мемосы, мемасы, мемосики, мемесы,леонардо да винчи

Развернуть

Отличный комментарий!

И лидер у черепашек-ниндзя.
hurrdurrdurr hurrdurrdurr03.12.202321:05ссылка
+41.2

Fantasy art Bruce Brenneise 

Fantasy,Fantasy art,art,арт,Bruce Brenneise

Развернуть

Отличный комментарий!

НАША СВЯЩЕННАЯ ЗЕМЛЯ
ИХ ВАРВАРСКАЯ ПУСТЫНЯ
НАШ СЛАВНЫЙ ВОЖДЬ
ИХ КОВАРНЫЙ ТИРАН
НАША ВЕЛИКАЯ ВЕРА
ИХ ПРИМИТИВНЫЕ СУЕВЕРИЯ
НАШ БЛАГОРОДНЫЙ ИХ ОТСТАЛЫЕ
////' ///, •ни, т„ ,;11
Griff_gr Griff_gr 19.11.201920:22 ссылка
+31.6

Буквы на белом фоне время охуительных историй 

В городке Мойнешти хоронили Анну Бочински. Осматривали ли ее врачи - неизвестно, но женщина оказалась жива и во время процессии села в гробу. Оторопевшие родственники замерли в ужасе, Анна спокойно вылезла из гроба и пошла прочь. Скорее всего, с головой у нее было не все в порядке, поскольку она
Развернуть

anon 

от и скоро закончиться 2015 год

Так и играем старое но приятние игры

т***
*М1«- м
GAIN Х5 NITH
44662
'«‘«•-Л
Style Points
6245
SOUL
Kl-$pi*l*r • Elnfjch g^Milnnt durch Kontroll^ dor Orto dor Kraft in-
01:35
Stiller Pirscher
Sch witch e:
1 r+ m(ft mmm щщ j ^ •rL^43w< Av ' 7 r ‘ V^-гл. W ч	BWv < , f 1 L flW*VYv.JL __ -* ■ *■ 1
'V- - ^ F _ v ,4. <fF*| i V


Развернуть

пидоры помогите 

Недорогой аналог ND

КУПОН НА 1 помощь,пидоры помогите,реактор помоги

Здравствуйте.Сейчас у меня появилось две кошки, мб помните Кешу и Ромашку, из-за чего увеличились расходы. Я был к этому готов, но не был готов к неожиданным задержкам в зарплате, проблемами со здоровьем и копеечным отпускным по учебе.Мне как-то нужно прожить на остатки до конца февраля, плюс шерстянных кормить. У Кеши половины печени нет, ему корм без мяса есть нельзя. Да в принципе любому хищнику без мяса плохо, поэтому и Ромашку тоже надо кормить хорошим кормом. Что есть в пределах 1000-1200 рублей, чтобы не говно? Я им пачку купил, но этого хватит примерно на неделю.
Кормлю этим:

Natural&Delicious VNCESTRAL GRAIN farro, avena. polio, melograno dnkel hater. hQhnerietsch. Vfr granatapfel jpdt. oats, chicken, •*" pomegranate epeautre. avoir*, A. poulet, grenade Farmina DRY CAT FOOO LOW-GRAIN FORMULA,пидоры помогите,реактор помоги

Развернуть

lf Anime Artist artist Hatsune Miku Vocaloid Anime фэндомы Snow Miku Anime Unsorted 

lf,Anime Artist,Аниме арт, Аниме-арт,artist,Hatsune Miku,Miku Hatsune, Хацуне Мику, Хацунэ Мику, Hatsune Miku Append,Vocaloid,Вокалоид, Вокалойд,Anime,Аниме,фэндомы,Snow Miku,lf,Anime Art,Anime,fandoms,artist,Hatsune Miku,vocaloids,Yuki Miku,Anime Unsorted,Anime Unsorted

Развернуть
Также ищут:nf lflf lf lflf lf landLf!lfs
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме nf lf lf (+1000 картинок)