[Mac] [M1] Cyberpunk 2077 [L] [RUS + ENG + 17 / RUS + ENG + 9] (2020) (2.31a + DLC) [GOG]

Страницы :   Пред.  1, 2, 3, 4, 5, 6
Ответить
 

funkydutch

Стаж: 14 лет 2 месяца

Сообщений: 2


funkydutch · 08-Апр-26 01:05 (3 месяца назад, ред. 08-Апр-26 01:05)

rpyboCTb писал(а):
89041630Товарищи по несчастью, я нашёл решение проблемы
Теперь дополнение отображается и работает, а игра не вылетает при начале/нажатии ESC.


Надеюсь, теперь полная инструкция для всех отчаявшихся:
1. Устанавливаем игру+DLC в папку /Applications (она же папка Программы в Finder);
2. По пути "/Applications/Cyberpunk 2077" должно быть следующее содержимое:
  1. r6
  2. engine
  3. Cyberpunk2077.app
  4. Contents
  5. archive
3. Вам потребуется скомпилировать НОВЫЙ файл библиотеки с моим фиксом.
3.1 Создайте текстовый файл libGameServicesGOG.cpp со следующим содержимым:
скрытый текст
Код:

#include <cstdint>
#include <cstdio>
#include <cstring>
using CallbackResult = void(*)(void*, const char*, bool, int);
using CallbackDone = void(*)(void*);
using CallbackSigned = void(*)(int, void*);
using CallbackTicket = void(*)(void*, unsigned int, void*);
using CallbackPresence = void(*)(int, void*);
using CallbackAchievement = void(*)(int, void*);
struct DummySpace {
    uint8_t padding_before[4096];
    uint64_t core_data[1024]; // Фейковые данные
    uint8_t padding_after[4096];
};
static DummySpace g_dummySpace;
static void* g_dummyPtr = (void*)&g_dummySpace.core_data[0];
extern "C" {
    int Initialize() { return 0; }
    void Uninitialize() { return; }
    const char* GetPlatformName() { return "GOG"; }
    const char* GetLanguageCodeName() { return "ru-RU"; }
    uint64_t GetLibraryVersion() { return 1; }
    void SetLogger() { return; }
    void SetNetworkState() { return; }
    void SetOverlayHandler() { return; }
    void SetAddtionalContentInstallCallback() { return; }
    void SetCommandLineHandler() { return; }
    uint64_t CloudSaveReady() { return 0; }
    uint64_t DeleteCloudSavedGameData() { return 0; }
    uint64_t FetchCloudSavedGameData() { return 0; }
    void RequestEncryptedAppTicket(CallbackTicket onTicket, void* param) {
        onTicket(0, 0, param);
    }
    void SignIn(CallbackSigned onSigned, void* param) {
onSigned(0, param);
    }
    void SetRichPresence(char const* unknown, CallbackPresence onPresence, void* param) {
        onPresence(0, param);
    }
    void CheckAdditionalContentStatus(
        void* context,
        const char** productIds,
        unsigned int count,
        CallbackResult onResult,
        CallbackDone onDone
    ) {
        for (unsigned int i = 0; i < count; ++i) {
            onResult(context, productIds[i], true, 0);
        }
        onDone(context);
    }
    void* IsInstallThroughAppEnabled() { return g_dummyPtr; }
    void* IsPurchaseThroughAppEnabled() { return g_dummyPtr; }
    void* OpenWebBrowser() { return g_dummyPtr; }
    void* RequestAdditionalContentInstall() { return g_dummyPtr; }
    void* RequestAdditionalContentPurchase() { return g_dummyPtr; }
    void SaveDataToCloud() { return; }
    void SyncAchievement() { return; }
    void SyncAchievementList() { return; }
    void UnlockAchievement(char const* param1, CallbackAchievement onAchievement, void* param2) {
        onAchievement(0, param2);
    }
    void VerifyDataIntegrity() { return; }
    void* Update() { return g_dummyPtr; }
    void _ZN2gs13SetAllocatorsEPFPvS0_mmEPFvPKvE(void*, void*) { return; }
    void _ZN2gs4FreeEPKv(void*) { return; }
    void* _ZN2gs7ReallocEPvmm(void*, unsigned long, unsigned long) { return g_dummyPtr; }
    void _ZN2gs8WriteLogEPKcz(const char*, ...) { return; }
    void* g_allocFunc = 0;
    void* g_freeFunc = 0;
}
3.2 Откройте Терминал в папке с файлом и скомпилируйте с помощью команды:
Цитата:
clang++ -dynamiclib -arch arm64 -o libGameServicesGOG.dylib libGameServicesGOG.cpp
4. Теперь необходимо заменить файл библиотеки:
  1. Открываем Finder>Программы>Cyberpunk 2077;
  2. Правой кнопкой на Cyberpunk2077.app и "Показать содержимое пакета";
  3. Заходим в Contents>Frameworks;
  4. Делаем бэкап оригинала файла libGameServicesGOG.dylib куда-нибудь (например, перемещаем на рабочий стол);
  5. Закидываем в Frameworks скомпилированный нами файл libGameServicesGOG.dylib;
5. Выполняем команды в терминале:
Цитата:
sudo xattr -cr /Applications/Cyberpunk\ 2077/Cyberpunk2077.app
cd /Applications/Cyberpunk\ 2077/Cyberpunk2077.app/Contents/Frameworks
codesign --remove-signature libREDGalaxy64.dylib
codesign --remove-signature libGameServicesGOG.dylib
codesign --remove-signature libGalaxy.dylib
sudo codesign --force --deep --sign - /Applications/Cyberpunk\ 2077/Cyberpunk2077.app
6. Кайфуем!
Кстати, если вы уже прошли игру, сохранёнки продолжат работать. По крайней мере, у меня работает)
P.S. Спасибо этим людям, этот фикс существует в частности благодаря им:
STR470S (ссылка на сообщение)
Vojeliy (ссылка на сообщение)
ДРУЖИЩЕ! ДОБРА ТЕБЕ!!! СПАСИБО ЧТО ПОМОГ!!! Несколько дней бился, по несколько раз все переставлял, перепроверял, пробовал разные комбы, то се, английский русский, первый фикс, второй фикс... ничего не помогало. Тут с первого раза все работает как часы, ДЛС на месте, играю со своего сейва, Сойка звонит!!! Спасибо за помощь!!!
ЗЫ. И спасибо братцам, что указаны в мессаге! Всем добра!
[Профиль]  [ЛС] 

777extra

Стаж: 13 лет 1 месяц

Сообщений: 1


777extra · 02-Май-26 22:22 (спустя 24 дня)

rerares писал(а):
88021311Кто-то ставил русскую озвучку на phantom liberty?
Отлично работает полностью на русском языке. Подводит только кнопка (Esc).
[Профиль]  [ЛС] 

sigmaleobog

Стаж: 11 месяцев

Сообщений: 2


sigmaleobog · 12-Май-26 19:29 (спустя 9 дней)

rpyboCTb писал(а):
89041630Товарищи по несчастью, я нашёл решение проблемы
Теперь дополнение отображается и работает, а игра не вылетает при начале/нажатии ESC.


Надеюсь, теперь полная инструкция для всех отчаявшихся:
1. Устанавливаем игру+DLC в папку /Applications (она же папка Программы в Finder);
2. По пути "/Applications/Cyberpunk 2077" должно быть следующее содержимое:
  1. r6
  2. engine
  3. Cyberpunk2077.app
  4. Contents
  5. archive
3. Вам потребуется скомпилировать НОВЫЙ файл библиотеки с моим фиксом.
3.1 Создайте текстовый файл libGameServicesGOG.cpp со следующим содержимым:
скрытый текст
Код:

#include <cstdint>
#include <cstdio>
#include <cstring>
using CallbackResult = void(*)(void*, const char*, bool, int);
using CallbackDone = void(*)(void*);
using CallbackSigned = void(*)(int, void*);
using CallbackTicket = void(*)(void*, unsigned int, void*);
using CallbackPresence = void(*)(int, void*);
using CallbackAchievement = void(*)(int, void*);
struct DummySpace {
    uint8_t padding_before[4096];
    uint64_t core_data[1024]; // Фейковые данные
    uint8_t padding_after[4096];
};
static DummySpace g_dummySpace;
static void* g_dummyPtr = (void*)&g_dummySpace.core_data[0];
extern "C" {
    int Initialize() { return 0; }
    void Uninitialize() { return; }
    const char* GetPlatformName() { return "GOG"; }
    const char* GetLanguageCodeName() { return "ru-RU"; }
    uint64_t GetLibraryVersion() { return 1; }
    void SetLogger() { return; }
    void SetNetworkState() { return; }
    void SetOverlayHandler() { return; }
    void SetAddtionalContentInstallCallback() { return; }
    void SetCommandLineHandler() { return; }
    uint64_t CloudSaveReady() { return 0; }
    uint64_t DeleteCloudSavedGameData() { return 0; }
    uint64_t FetchCloudSavedGameData() { return 0; }
    void RequestEncryptedAppTicket(CallbackTicket onTicket, void* param) {
        onTicket(0, 0, param);
    }
    void SignIn(CallbackSigned onSigned, void* param) {
onSigned(0, param);
    }
    void SetRichPresence(char const* unknown, CallbackPresence onPresence, void* param) {
        onPresence(0, param);
    }
    void CheckAdditionalContentStatus(
        void* context,
        const char** productIds,
        unsigned int count,
        CallbackResult onResult,
        CallbackDone onDone
    ) {
        for (unsigned int i = 0; i < count; ++i) {
            onResult(context, productIds[i], true, 0);
        }
        onDone(context);
    }
    void* IsInstallThroughAppEnabled() { return g_dummyPtr; }
    void* IsPurchaseThroughAppEnabled() { return g_dummyPtr; }
    void* OpenWebBrowser() { return g_dummyPtr; }
    void* RequestAdditionalContentInstall() { return g_dummyPtr; }
    void* RequestAdditionalContentPurchase() { return g_dummyPtr; }
    void SaveDataToCloud() { return; }
    void SyncAchievement() { return; }
    void SyncAchievementList() { return; }
    void UnlockAchievement(char const* param1, CallbackAchievement onAchievement, void* param2) {
        onAchievement(0, param2);
    }
    void VerifyDataIntegrity() { return; }
    void* Update() { return g_dummyPtr; }
    void _ZN2gs13SetAllocatorsEPFPvS0_mmEPFvPKvE(void*, void*) { return; }
    void _ZN2gs4FreeEPKv(void*) { return; }
    void* _ZN2gs7ReallocEPvmm(void*, unsigned long, unsigned long) { return g_dummyPtr; }
    void _ZN2gs8WriteLogEPKcz(const char*, ...) { return; }
    void* g_allocFunc = 0;
    void* g_freeFunc = 0;
}
3.2 Откройте Терминал в папке с файлом и скомпилируйте с помощью команды:
Цитата:
clang++ -dynamiclib -arch arm64 -o libGameServicesGOG.dylib libGameServicesGOG.cpp
4. Теперь необходимо заменить файл библиотеки:
  1. Открываем Finder>Программы>Cyberpunk 2077;
  2. Правой кнопкой на Cyberpunk2077.app и "Показать содержимое пакета";
  3. Заходим в Contents>Frameworks;
  4. Делаем бэкап оригинала файла libGameServicesGOG.dylib куда-нибудь (например, перемещаем на рабочий стол);
  5. Закидываем в Frameworks скомпилированный нами файл libGameServicesGOG.dylib;
5. Выполняем команды в терминале:
Цитата:
sudo xattr -cr /Applications/Cyberpunk\ 2077/Cyberpunk2077.app
cd /Applications/Cyberpunk\ 2077/Cyberpunk2077.app/Contents/Frameworks
codesign --remove-signature libREDGalaxy64.dylib
codesign --remove-signature libGameServicesGOG.dylib
codesign --remove-signature libGalaxy.dylib
sudo codesign --force --deep --sign - /Applications/Cyberpunk\ 2077/Cyberpunk2077.app
6. Кайфуем!
Кстати, если вы уже прошли игру, сохранёнки продолжат работать. По крайней мере, у меня работает)
P.S. Спасибо этим людям, этот фикс существует в частности благодаря им:
STR470S (ссылка на сообщение)
Vojeliy (ссылка на сообщение)
А что делать если при запуске в меню пишет что dlc не соответствует версии игры (error 5) ?
[Профиль]  [ЛС] 

koleckolp

Стаж: 2 года 7 месяцев

Сообщений: 3


koleckolp · 13-Май-26 02:22 (спустя 6 часов)

Crashes with authentication / rich presence error
[Профиль]  [ЛС] 

DiamondX89

Стаж: 5 лет 3 месяца

Сообщений: 1


DiamondX89 · 16-Май-26 17:51 (спустя 3 дня, ред. 16-Май-26 17:51)

скачалось на73% и висит так несколько дней, раздаю но не скачиваю, подскажите пожалуйста что делать
[Профиль]  [ЛС] 

Hoopmm

Стаж: 15 лет 11 месяцев

Сообщений: 1


Hoopmm · 30-Май-26 16:37 (спустя 13 дней)

Встаньте на раздачу плиз! 2 день стою на 58 процентах
[Профиль]  [ЛС] 

lex_pritch

Стаж: 4 года 1 месяц

Сообщений: 2


lex_pritch · 31-Май-26 15:22 (спустя 22 часа)

Hoopmm писал(а):
89233318Встаньте на раздачу плиз! 2 день стою на 58 процентах
Такая же просьба, ребят!
[Профиль]  [ЛС] 

Electroniume

Стаж: 8 лет 3 месяца

Сообщений: 7


Electroniume · 09-Июн-26 18:38 (спустя 9 дней)

Раздайте пожалуйста! Очень надо )
[Профиль]  [ЛС] 

introvertida

Стаж: 13 лет 4 месяца

Сообщений: 2


introvertida · 29-Июн-26 22:23 (спустя 20 дней, ред. 30-Июн-26 17:16)

оладушек писал(а):
88354572
Andy1253 писал(а):
88352516
pull_around писал(а):
88349812
skorbot писал(а):
88212145
lucsweiss писал(а):
88211940Каждый раз, когда я нажимаю Esc в игре, чтобы открыть меню, она вылетает. Почему? У кого-нибудь ещё есть такая проблема? Как её решить?
Решением может быть перекачать киберпанк на версию которая была раньше, вот хеш для магнет ссылки старой версии:
скрытый текст
cbc39c150b0b106abde7a8903f96b46bbf496b9f
подскажите, а как скачать версию 2.3 сейчас? как использовать хеш? ни разу не делал так, нет опыта
=> https://hardrisk.github.io/magnet/
Скачал 80% и встало. До этого на М4 про тоже вылетало при нажатии ESC во время игрового процесса и не загружались автосохранения.
upd. докачаться помог рестарт торрент клиента. 2.3.0 падает при запуске
upd2: почистил хорошенько все файлы 2.3.1 и накатил 2.3.0 - все работает. спасибо!
[Профиль]  [ЛС] 

blazzz

Стаж: 17 лет 7 месяцев

Сообщений: 11


blazzz · 08-Июл-26 13:16 (спустя 8 дней)

А как установить игру не в папку applications а на другой диск, где места хватит)) ??
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error