• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в оценке работ на конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

Готика 2: НВ Неофициальный фикс памяти

Ну как оно?


  • Всего проголосовало
    136

lviper

Участник форума
Регистрация
27 Дек 2015
Сообщения
60
Благодарности
74
Баллы
165
Поставила версию 05, час и сорок минут игры абсолютно без фризов и лагов, вылетела на ровном месте с ошибкой. Наверно так и должно было случиться рано или поздно? Без дх11, сп1.5, 4гб-патч, вин 7/64, все на максимум, не сохранялась, просто бегала по миру, чтоб потестить. На всякий случай вот...
Да, это OutOfMemory, вполне ожидаемое на максимальных настройках. Если хотите не ловить подобное попробуйте снизить обзор до 100% и текстуры на одно-два деления.

lviper, если не составит труда и будет время, опробуйте пожалуйста рендер..
1) Для таких просьб есть личка. Просьба не засорять тему.
2) Рендер DX11 это большой проект, в котором за пару дней не разобраться.
3) Последняя версия у меня не компилируется, там не хватает файлов. Тег на гитхабе только один и он от старой версии, если ты подскажешь как забрать сорцы версии, которая компилится и которая работает на В2 у других, то я могу на нее взглянуть, но многого не обещаю.
4) Даже если я и поставлю рендер Dx11 (чего не следует ждать в ближайшие дни), то у меня-то ошибки скорее всего не будет, значит и найти ее у меня скорее всего не получится.
Резюме: я бы не надеялся, что lviper тебе поможет.
Даже не знаю, чем можно помочь. Попробуй каким-нибудь Api шпионом (я использую ApiMon v2, но думаю его функционал для тебя избыточен, лучше поискать что попроще) проследить за процессом (только лучше без моего мемори фикса, а то могут быть лишние баги). Посмотри какие файлы и ключи реестра он открывает, тогда сможешь понять к чему лишнему он обращается перед крашем и возможно удалить какие-то лишние настройки. Но делать это будешь ты самостоятельно, я на расстоянии тебе помогать с этим не буду.
 
Последнее редактирование:

lviper

Участник форума
Регистрация
27 Дек 2015
Сообщения
60
Благодарности
74
Баллы
165
Архив версий

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

История изменений:
(v06_others)
Это та же v06, но скомпилированная с другими библиотеками, на случай если с Hoard у кого-то возникнут проблемы, если есть желание можно попробовать эти версии.
В папке CRT лежит версия, использующая стандартные библиотеки VS C++ 2015, в JeMalloc - версия, использующая JeMalloc 4.0.4, в TCMalloc - TCMalloc 2.4.
Судя по доступным тестам и JeMalloc и TCMalloc должны находиться примерно на уровне Hoard, и все они показывают значительно лучший результат, чем CRT (стандартная библиотека C). Но по моим личным впечатлением, даже CRT справляется лучше оригинальной shw32.dll, во всяком случае по частоте OutOfMemory.
Сам я эти библиотеки не проверял, но начало новой игры, сохранение и загрузка работают.
При микрофризах как и ранее можно попробовать установить bUseNewHandler=0 в SystemPack.ini, хотя на этих сборках они могут оказывать другое влияние на производительность.

(v06)
Уменьшено требование к резервированию памяти при включенном MessageBox
Добавлена опция bUseNewHandler в ini-файл, позволяющая выбирать способ отлова OutOfMemory как в версиях v03a или v04+.
Исходники удалены из архива.

(v05)
Теперь после запуска библиотека дописывает в SystemPack.ini следующие настройки:
Код:
[SHW32]                     ; комментарии мои, программа их не выписывает
reserveInMb=50     ; (v05+) Сколько резервировать (в Мб)
bShowGothicError=1 ; (v05+) Использовать обработчик ошибок Готики (показывать окно фатала со стеком)
bShowMsgBox=0      ; (v05+) показывать MessageBox
Подробнее об настройках:
reserveInMb - сколько памяти будет зарезервировано на случай OutOfMemory (в Мб). Значение по умолчанию: 50.
5 - минимальное значение, оптимально если отключать bShowGothicError или если у вас не установлен 4gb_patch и часты вылеты по OutOfMemory
30-60 - хороший выбор, если не включать bShowMsgBox, с большой вероятностью правильно сохраняет стек.
120-150 - применять только с 4gp_patch, хороший выбор, если включать bShowMsgBox и bShowGothicError или если важно что программа по возможности более корректно завершится при включенном bShowGothicError.
300 - максимальное значение

bShowGothicError - показывать ли ошибку готики (1 - да, по умолчанию), (0 - нет) в случае возникновения OutOfMemory.
Если выключенно, то в этом случае вы можете резервировать минимальное количество памяти, однако не будет сообщение о фатале и игра не сможет обработать эту ошибку. Это похоже на то, как если бы при OutOfMemory готика автоматически завершалась через диспетчер задач, не оставляя никакого сообщения об ошибке, что не рекомендуется. Если выключен также и bShowMsgBox, то игра просто закрывается при OutOfMemory, без каких-либо уведомлений.
В v05 отключение срабатывает не всегда и иногда игра все-таки окно Готики даже при bShowGothicError = 1.

bShowMsgBox - показывать стандартную для виндовс сообщение об ошибке с текстом OutOfMemory. Теперь-то вы точно будете знать, что произошел именно OutOfMemory, а не какой-то другой фатал. Правда при включенном bShowGothicError в v05 требует резервирования большого количества памяти.
Исправлена возможное появление окна OutOfMemory дважды.

(v04)
Изменил способ отлова OutOfMemory, теперь он должен корректно обрабатывать ситуации, даже когда какая-нибудь другая библиотека, например прокси ddraw.dll от DX11 сходит с ума, правда из-за этого пришлось избавиться от Retry в окне ошибки. Кроме того, надеюсь что все-таки обнаружил и исправил причину по которой не выводился колстек, во всяком случае у меня именно в этих версиях скомпилированной dll OutOfMemory выдает нормальный колстек без каких-либо pdb файлов.
Я немного наивен, но надеюсь что в коде больше ничего править не придется и этот билд финальный, так что без серьезных замечаний и багов, перекомпилировать dll не буду, единственное только вероятно позже поменяю readme.
Старые pdb файлы от предыдущей версии можете удалить.

(v03a)
Функционально практически ничего не было должно измениться, но я перекомпилировал Hoard 3.10 под C++ Redist 2015 (что нужно было сделать давно, просто я пытался компилировать последнюю версию 3.12, в которой что-то поломали для 32-битных версий, поэтому с ней игра крэшилась при старте, а я искал проблему у себя, думая что что-то не так делаю, 3.11 также не заработала).
Также я отключил сообщение об ошибке после OutOfMemory, так как смысла в нем не вижу. Теперь в случае OutOfMemory диалоговое окно, в котором при выборе Abort происходит молчаливый выход из программы, без окна ошибки готики.
Фикс распространяется в двух вариантах, простом, это своего рода лайт-версия, для тех у кого Интернет лимитирован, и с файлами pdb с отладочной информацией, которые нужно скопировать в каталог с игрой. Если в папке с игрой присутствуют pdb файлы и в библиотеке произойдет фатал, то есть шанс (я так и не разобрался от чего зависит), что игра покажет корректную ошибку, что поможет ее устранить. Без этих файлов я совершенно точно узнать что именно случилось и устранить ошибку не смогу.

(v03)
Сделал возможность повторной попытки аллокации памяти после OutOfMemory (может быть полезно на 32-битных системах, если физической памяти не очень много, тогда можно попробовать закрыть лишние программы и нажать Повтор в окне ошибки). Также вернул возможность продолжать игру после OutOfMemory, хотя и настоятельно не рекомендую, лучше сразу Abort.
Исправлена ошибка в realloc, когда мог ложно срабатывать OutOfMemory (сомневаюсь что ошибка проявлялась в игре, но раз уж заметил...).
Также обновил readme.

(v02)
Теперь при ошибке движок готики будет корректно получать стек вызовов, что позволит проще отлаживать программу и видеть где возникла ошибка.
Убрал возможность продолжать игру после OutOfMemory

(v01)
Начальная версия

У кого проблемы с микрофризами в городе в v06, попробуйте поменять в SystemPack.ini значение bUseNewHandler с 1 на 0. Также можете попробовать сборки фикса из архива gothic_1_2_mem_fix_v06_others.
 

Вложения

  • gothic_1_2_mem_fix_v01.zip
    32,3 KB · Просмотры: 246
  • Gothic_1_2_mem_fix_v02.zip
    33,4 KB · Просмотры: 119
  • Gothic_1_2_mem_fix_v03.zip
    67,3 KB · Просмотры: 131
  • Gothic_1_2_mem_fix_v03a.zip
    60 KB · Просмотры: 148
  • Gothic_1_2_mem_fix_v04.zip
    59,7 KB · Просмотры: 151
  • Gothic_1_2_mem_fix_v05.zip
    61,5 KB · Просмотры: 230
  • Gothic_1_2_mem_fix_v06.zip
    56,5 KB · Просмотры: 334
  • Gothic_1_2_mem_fix_v06_others.zip
    113,2 KB · Просмотры: 598
Последнее редактирование:

nik-nik000

Участник форума
Регистрация
27 Апр 2008
Сообщения
96
Благодарности
3
Баллы
155
---------------------------
Warning!
---------------------------
Your Gothic-Executable does not match the checksum for this Version of GD3D11!
This DLL only works for Gothic 2 - The Night Of The Raven, Version 2.6 (fix) or the System-Pack.

You can continue and try anyways but the game will most likely crash.

---------------------------
ОК
---------------------------
перед запуском игры выходит такая вещь но игра запускается что это такое
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
перед запуском игры выходит такая вещь но игра запускается что это такое
ЛааХак ставил ?
Если да, то он изменяет срц ехе-шника, а ДХ смотрит на него и не знает об этой версии, и как следствие - орёт о не поддерживаемом файле. Во что это выльется в игре в итоге, не известно..
 

nik-nik000

Участник форума
Регистрация
27 Апр 2008
Сообщения
96
Благодарности
3
Баллы
155
что такое ЛааХак
 

Kaos

Участник форума
Регистрация
30 Дек 2015
Сообщения
51
Благодарности
23
Баллы
165
Это просто праздник какой-то, фризы исчезли. Винда 8.1 64-х разрядная.
 

Диккен

Участник форума
Регистрация
12 Июн 2004
Сообщения
470
Благодарности
127
Баллы
210

ksardos877

Участник форума
Регистрация
2 Авг 2014
Сообщения
186
Благодарности
61
Баллы
190
lviper займись уже делом !!! перепиши движок Готики на х64 и введи в готику ноу таргет систему *trollface*
 

lviper

Участник форума
Регистрация
27 Дек 2015
Сообщения
60
Благодарности
74
Баллы
165
lviper займись уже делом !!! перепиши движок Готики на х64 и введи в готику ноу таргет систему *trollface*
А почему бы тебе самому попробовать? *trollface*
Ответ в стиле "я не прогер" не принимается - за те 5-10 лет, что будешь этим заниматься как раз и научишься прогать очень хорошо.

При всей трольности предложения, мне тем не менее встречалась пара хороших фанатских переписок движков игр, не зная про которые я вообще не поверил, что подобное в принципе возможно, а именно:
GEngine - для первой готики,
kam_remake - для Knight & Merchants (великолепный проект с открытыми исходниками, написанный на паскале. На паскале, Ксар! Они написали движок, который не просто лучше совместим с современными компами, но даже превосходит оригинал. Они добавили сетевой режим (которого емнип не было в оригинале, но могу ошибаться), редактор карт и кампаний).
Так что в принципе терпение, труд и много лет разработки рано или поздно дают результат:D.
 
Последнее редактирование:

Haart

Участник форума
Регистрация
24 Окт 2011
Сообщения
188
Благодарности
106
Баллы
185
Чет не ощутил разницы, вообще. Для начал запустил возвращение, создал новую игру и смотрю фпс, ~55. Ок, сохранился-вышел, кинул нужные файлы, захожу - фпс ~55. Ладно думаю, кто-то выше писал что лучше играется с xp, ставлю файлы для хп, делаю совместимость - в итоге ~45 фпс.
Win7 x64

P/s Правда VS2015C++ Redistributable у меня не встал, говорит установлена другая версия. Ну там этих версий 100500 встало для возвращение. Так что может в этом проблема ?

DimusДублирование сообщений запрещено правилами форума - смотри статью 4.15.
 
Последнее редактирование модератором:

lviper

Участник форума
Регистрация
27 Дек 2015
Сообщения
60
Благодарности
74
Баллы
165
Чет не ощутил разницы, вообще. Для начал запустил возвращение, создал новую игру и смотрю фпс, ~55. Ок, сохранился-вышел, кинул нужные файлы, захожу - фпс ~55. Ладно думаю, кто-то выше писал что лучше играется с xp, ставлю файлы для хп, делаю совместимость - в итоге ~45 фпс.
Win7 x64
1) Никто не писал про лучшую совместимость, или что нужно запускать в режиме совместимости с XP, тем более на современных системах. Версия, скомпилированная для XP выложена только для тех, у кого на XP будут проблемы с запуском обычной. Но человек с x86 WinXP уже отписался о том, что у него и обычная хорошо шла, так что скорее всего она и не нужна.
2) FPS, выводимый FRAPS'ом у меня тоже не поменялся, но на аддоне Возвращение 2.0 у меня практически исчезли фризы во время долгой игры и OutOfMemory. FPS зависит от множества параметров и если память не является ботлнеком фикс его не исправит.

PS: Нет не в этом, иначе у тебя она даже и не запустилась бы. Если игра и так идет хорошо, то скорее всего разницу не увидишь, в таком случае ставить этот фикс не обязательно.
 

Haart

Участник форума
Регистрация
24 Окт 2011
Сообщения
188
Благодарности
106
Баллы
185
2) FPS, выводимый FRAPS'ом у меня тоже не поменялся, но на аддоне Возвращение 2.0 у меня практически исчезли фризы во время долгой игры и OutOfMemory. FPS зависит от множества параметров и если память не является ботлнеком фикс его не исправит..
Понятно, я думал общий фпс поднять, ОutOfMemory у меня вообще не было, ну и больше 3 часов не играл, так что особых фризов не заметил...) Оставлю 5 версию, может и правда лучше будет)
 

lviper

Участник форума
Регистрация
27 Дек 2015
Сообщения
60
Благодарности
74
Баллы
165
Обновил версию (v06)


Фикс v03, v03а замечательно, v04, 0v5 вернулись микрофризы. Проблем с памятью нет с установки Textures_Original_G2_Returning. Win10x64 патч 4Гб.
Персонально к тебе просьба, если не затруднит можешь проверить?
Попробуй поиграть на v06, убедись что там будут микрофризы.
После этого выйди из игры, в блокноте открой SystemPack.ini, найди внизу строчку bUseNewHandler=1 и поменяй на bUseNewHandler=0. После этого перезапусти игру и посмотри остались ли микрофризы.
Спасибо.
 

Agentagm

Участник форума
Регистрация
27 Дек 2015
Сообщения
14
Благодарности
2
Баллы
165
стоит win 7x64 патчил exeшник игры лаахаком , установил vc_redist.x64.exe , закинул с заменой Shw32.dll и libhoard.dll v06 , попробовал запустить игру, посмотрел на ошибку msvcp140.dll и установил vc_redist.x86.exe, запустил игру фризы как были так и остались, ок! попробовал версии 3-3а-4 ничего не изменилось , далее обратно в папку с игрой закинул файлы из v06 вспомнил , что в gothic.ini стоят значения
zTexCacheOutTimeMSec=240000
zTexCacheSizeMaxBytes=100000000
zSndCacheOutTimeMSec=10000
zSndCacheSizeMaxBytes=20000000, выставил везде 0(раньше пробовал , не помогало ) зашел в игру побегал попрыгал - фризы/подергивания, а потом меня осенило зайти в amd catalyst control centr и в настройках видеокарты поставил "использовать настройки приложения" или оптимизировано AMD , зашел в игру *gamer* фризы исчезли я не поверил побегал с пол часа выставил максимальную прорисовку , убавил модели\текстуры на 1-3 деления от максимума . Итог : при максимальной прорисовке с немного сниженным качеством текстур\моделей , занулением кэша , лаахаком и vc_redist.x86/х64 + dll файлики v06 я встречаю МИКРОфриз на долю секунды,но очень редко например когда прихожу на ферму Онара, что помогло наверняка , не скажу *sorry**dance*зы bUseNewHandler=0
 
Последнее редактирование:

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
стоит win 7x64 патчил
Версия СП какая?
Что за бредовая идея ставить с Мелкософта ручками если в авторан встроен готовый ехе-шник для установки редиста всех версий сразу для х64(гибрид)?
ДХ9 СДК ставил, свои дрова на железо обновлял?
Сама Ось полностью обновлена апдейтами и прочими сервис пакетами?

Ибо сдается мне, что у тебя там все - тупо криво установлено... ::)
 

Agentagm

Участник форума
Регистрация
27 Дек 2015
Сообщения
14
Благодарности
2
Баллы
165
1)сп 1.5 на готике , а если имеешь ввиду ОС , то 3 пак
2)с мелкософта ручками ставил по ссылке в шапке темы
3) dx9sdk стоит , дрова на железо самые свежие
4) обновления ОС 21.11.15
 
Последнее редактирование:

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
2)с мелкософта ручками ставил по ссылке в шапке темы
Мда, народ или читать не умеет или не понимает...
1. Повторяю еще раз, с диска Редисты ставил или нет?
Если нет, открываешь панель управления и сносишь все редисты, ручками. Далее, чистишь реестр и комп, СС-клинером, перезагружаешься. Ставишь редисты с диска В2, твоя версия та что х64, только ее. Как поставишь опять почистится СС-клинером и на перезагруз.

2. По ДХ, также повторяю свой вопрос, как его ставил и откуда? Если ставил сам с уг веб инсталлера, то запускаем диск В2 и ставим его по-новой.

3. Если переставлял 1 и 2 пункты то Сносишь полностью В2, чистишь комп и перезагружаешься. После чего, устанавливаешь В2 по новой.
Затем, как установил В2, обновляешь его файлами из этой темы:
https://worldofplayers.ru/threads/38880/

4. Как все файлы обновил и заменил, ставишь Лаахак.
Затем открываешь Готик.ини, и заменяешь параметры текстурного и звукового кеша на эти:

zTexCacheOutTimeMSec=3596400
zTexCacheSizeMaxBytes=2146435072
zSndCacheOutTimeMSec=356400
zSndCacheSizeMaxBytes=1894776832

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


Зы, да, как вариант еще можно обновить до последней версией шрифты ХД из темы УкураМухомора.. В тему патчей последнюю версию не добавлял.
 

Agentagm

Участник форума
Регистрация
27 Дек 2015
Сообщения
14
Благодарности
2
Баллы
165
Мда, народ или читать не умеет или не понимает...
1. Повторяю еще раз, с диска Редисты ставил или нет?
Всё что есть в инсталяторе в2 было установлено четко по инструкции пункт за пунктом(включая ДХ) как только в2 вышло, не вижу смысла до нового патча переустанавливать В2 т.к. сейчас всё работает на ура(корректно*popcorn*) за исключением микрофриза который ловлю один раз при входе к Онару или Хоринес.*flowers*По факту я отписал постом выше весь порядок действий который избавил меня от 95% любых нестабильностей.
 

mr-kav

Участник форума
Регистрация
4 Апр 2014
Сообщения
893
Благодарности
118
Баллы
220
Не будет он ничего делать заново. Ибо работает. :{
 
Сверху Снизу