Змінюємо розташування папки User Files в gta_sa.exe

15 лютого 2013
ManCJsys


1. Вступ
Отже, припустимо, ви граєте в стандартну GTA San Andreas і ще в якийсь глобальний мод, де зовсім інша карта і/або скрипти (main.scm). І в обох іграх, при завантаженні/збереженні гри, ви бачите одні й ті ж записи збережень. Припустимо, у вас є 3 збереження від звичайної GTA SA, які ви використовуєте, і 3 збереження від якогось глобального мода або скриптової модифікації. У цьому випадку, у яку б GTA ви не грали, ви завжди будете бачити 3 непотрібні збереження (від іншої копії гри), які ви не повинні перезаписувати або видаляти, адже вони потрібні вам в іншій GTA. Те ж саме відбувається і з папкою "Gallery" (GTA San Andreas User FilesGallery), в якій зберігаються скріншоти, зроблені за допомогою внутрішньоігрової фотокамери. Нафотографували ви "фоток" і якось, в один прекрасний день, вирішили заглянути, що ж ви нафотографували в грі, за такий немалий час. А там, то фотки і з звичайного Сан Андреаса, і з якогось Unlimited Drift'а, а то і з Кримінальної Росії, або неописувані людською мовою, гуманоїди з Андериуса. Якась каша виходить. Та ж ситуація і з папкою користувацької музики "User Tracks", в яку можна поміщати свої аудіо-файли (будь-які mp3/wav/wma або ярлики на файли, наприклад, улюблені пісні) і слухати їх в машині під час гри, включивши радіостанцію USER TRACKS (Станція користувача).
Хотіли б ви, щоб під час завантаження гри або збереження гри в, скажімо, GTA UNITED, відображалися тільки ті збереження, які були зроблені в GTA UNITED? Хотіли б ви мати різні папки для зберігання збережень, налаштувань, музики і знімків для кожної окремої GTA (глобальної модифікації)? Хотіли б ви, наприклад, граючи в GTA Liberty City або Project Liberty налаштувати графіку, управління аналогічно GTA 4, при цьому маючи окрему папку для зберігання збережень, налаштувань і т.п. спеціально для даного мода?
Так? Добре, прямо зараз всьому і навчимося.


Нам знадобиться:
1. Нам знадобиться редактор бінарних файлів. Я використовую Hex Editor Neo (Free Edition v4.97). Знайти його ви без труднощів зможете через Google.
2. Файл gta_sa.exe з папки з вашою GTA. Брати сторонній файл не рекомендую, оскільки багато глобальних модів використовують свій gta_sa.exe з зміненими лімітами. Тому краще використовувати файл прямо з папки з GTA, для якої ви хочете змінити папку файлів користувача (User Files).
3. Трохи уваги і концентрації, щоб все уважно прочитати.


2. Покроковий план дій
1. Перше і Найголовніше - це перевірити, що ваша GTA працює нормально, не вилітає при запуску. Інакше сенсу починати немає. Якщо гра працює стабільно, це буде гарантією того, що гра не могла бути причиною проблем у разі чого-небудь після редагування бінарника (gta_sa.exe).
2. Запускаємо Hex Editor Neo. В ньому відкриваємо наш gta_sa.exe (Ctrl+O).
У мене це виглядає так:

3. Далі натискаємо комбінацію Ctrl+G, вводимо 00472fa0 натискаємо ОК.
У мене це виглядає так:

4. Після натискання ОК ми перейшли на рядок 00472fa0. Там зберігається інформація про ім'я папки користувацьких файлів.
У мене це виглядає так:

5. Тепер потрібно визначитися з ім'ям папки.
Отже, як відомо, GTA San Andreas для зберігання файлів користувача використовує папку GTA San Andreas User Files. А нам, наприклад, потрібно створити папку для збережень і іншого під мод GTA SUN CITY.
Справа в тому, що ім'я нової папки за кількістю символів повинно бути рівно ім'я папки за замовчуванням.
Ім'я папки за замовчуванням: GTA San Andreas User Files [26 символів]
Ім'я нашої папки повинно складатися з 26 будь-яких символів. Але щоб зберегти якийсь сенс в імені папки, давайте складемо кілька варіантів і виберемо найкращий.
Отже, що можна придумати (перший рядок наведений для прикладу):
GTA San Andreas User Files
GTA SUN____CITY User Files
GTA__SUN__CITY__User Files
GTA_SUN_CITY____User_Files

Ще раз поясню, що необхідність у нижніх підкресленнях виникає з-за обов'язковості з 26 символами. Інакше кажучи, довжина імені нової папки повинна збігатися з довжиною імені папки за замовчуванням, а це 26 символів (пробіли вважаються за символ, але використання пробілів не є обов'язковим).
Отже, я вибираю останній варіант імені папки, оскільки:
1. він складається з 26 символів - головна умова виконана
2. "sun cuty" і "user files" відокремлені більш довгим "пробілом", що виглядає найбільш естетично.
3. Ім'я складається повністю з букв латинського алфавіту і нижніх підкреслень, виключаючи пробіли, що теоретично забезпечує більшу стабільність у взаєминах гри з файловою системою ("а Бог його знає, хай буде, на всякий випадок").
6. Тепер безпосередньо змінюємо ім'я папки в коді gta_sa.exe через Hex Editor.
Робиться це наступним чином:
У рядку, де написано "lery....GTA San Andreas User Files.Personal", натискаємо мишкою на букву G у слові GTA. І починаємо вводити ім'я нової папки (вручну, по символу). Все, що ви вводите, стає червоним. Це нормально. Так відображається заміна. Завершуючи введення, ви повинні зупинитися на останній букві s у слові, яке було Files. Тобто на ".Personal" і все, що далі ви залазити не повинні, інакше зіпсуєте файл gta_sa.exe.
Щоб цього уникнути, давайте розберемося, що нам потрібно ввести і запам'ятаємо це.
GTA_SUN_CITY____User_Files - це GTA_SUN_CITY(тут 4 нижніх підкреслення)User_Files
Отже, найголовніше - ми запам'ятали, що після SUN_CITY потрібно ввести 4 нижніх підкреслення, а потім User_Files, щоб у нас все вмістилося рівно в 26 символів.
Давайте ж зробимо це.
Натискаємо на букву G у слові GTA і руками по клавіатурі, починаємо вводити.
У мене це виглядає так:

По завершенню введення ми повинні отримати наступне:

Тепер залишилося зберегти результат - натискаємо Ctrl+S, з'явиться діалогове вікно, в ньому, звичайно, вибираємо Yes.

Все готово! Можете перевіряти!
Результат має вийти таким:



3. Якщо гра вилітає...
Якщо ви все зробили правильно, гра при запуску gta_sa.exe НЕ повинна вилітати і, як мінімум, повинна успішно виконувати завантаження, збереження гри, збереження знімків з фотоапарата, читання музики з User Tracks всередині нашої нової папки (GTA_SUN_CITY____User_FilesUser Tracks), збереження налаштувань управління та графіки. Якщо гра вилітає відразу після запуску, коли ви ще не встигли завантажити збереження/почати гру, то, швидше за все, ви допустили помилку під час редагування файлу. Перевірте та переконайтеся, що ім'я вашої нової папки складається саме з 26 символів і прописано точно поверх старого (GTA San Andreas User Files - від першої літери "G" включно до останньої літери "s" включно, ні літерою раніше, ні літерою пізніше).
З можливих причин можуть бути наступні:
- Винуватий кеш Windows. Проведіть очищення папки Prefetch ("%systemroot%Prefetch" або простіше "WindowsPrefetch") і перезавантажте машину.
- Можливо, ви використали зайві пробіли в імені файлу (малоймовірно, але все ж). Спробуйте замінити їх на нижні підкреслення.
Якщо гра вилітає через кілька хвилин або більше часу під час гри, то шукайте причину в самій грі. Для перевірки протестуйте ваш змінений екзешник (gta_sa.exe) на стандартній GTA SA без модів.
P.S. З вами був ManCJsys, це моя перша стаття-урок. Якщо хочете, можу написати статтю про те, як змінити іконку у екзешника (значок gta_sa.exe), так щоб гра не вилітала. Чекаю ваших коментарів.
Рейтинг: 0 (0 голосів)