iGrok писал(а):Первый UT - форева! =)
Хакер писал(а):Часто бываю здесь 68.232.174.233:7777, велкам .
iGrok писал(а):Я уже год мучаюсь, пытаясь заставить её корректно работать на двухъядерном проце.
BV писал(а):А в чем суть проблемы? Какая тебе разница, на каком ядре запускается игра? И как ты себе представляешь задействование второго ядра в игре, на момент релиза которой даже речи не шло о многоядерных процессорах? Естественно, движок ориентирован на одноядерный процессор
Хакер, если ты не заметил, я специально упомянул VPN, а не какой-нибудь онлайн сервер. Я думаю, ты догадываешься, почему? Ведь мы недавно об этом говорили
iGrok писал(а):Суть в непостоянстве скорости игры. Скорость игры меняется "скачками". Т.е. то чуть быстрее, то чуть медленнее, то сильно медленнее, то на пару секунд сильно быстрее, и опять тормоза. Сначала я думал, что проблема в рассинхронизации ядер, характерной для AMD, но на c2d игра себя ведёт точно так же.
affinity mask на один проц частично помогает, но почему-то не всегда. (
FaKk2 писал(а):Поставь affinity на процесс игры.
iGrok писал(а):FaKk2 писал(а):Поставь affinity на процесс игры.
Гм. А на что по-твоему я его ставлю? На IE что ли? =)
Правда, тут какое дело. Я его ставлю уже при запущенной игре. (Ну не нашёл я в XP способа задать AM для произвольного экзешника, только на запущенный процесс, да и то procexp'ом от Руссиновича.). Вроде была какая-то утилитка, которая позволяла это делать под xp, но я пока её не нашёл.
iGrok писал(а):Суть в непостоянстве скорости игры. Скорость игры меняется "скачками". Т.е. то чуть быстрее, то чуть медленнее, то сильно медленнее, то на пару секунд сильно быстрее, и опять тормоза.
Proxy писал(а):Может когда-нибудь поиграю.
FireFenix писал(а):Интересно было бы поиграть с народом форума
BV писал(а):Ты это замечаешь на двухядерном процессоре?! Это нонсенс, что бы игра 11-летней давности тормозила хотя бы на одном двухядерном процессоре, ибо ей даже половины мощности одного ядра более, чем достаточно, для абсолютно стабильной работыДело не в процессоре. Дело или в драйверах, или в умирающем жестком диске, или в видеокарте. Впрочем, даже встроенные нынешние gpu способны потянуть 99-й ut в Full HD с играбельным fps
iGrok писал(а):Ну не нашёл я в XP способа задать AM для произвольного экзешника
iGrok писал(а):и тормозит на ОБОИХ компах с двухъядерными процами
BV писал(а):iGrok писал(а):и тормозит на ОБОИХ компах с двухъядерными процами
Чудес не бывает. Попробуй для начала другой дистр. И скажи, какой у тебя на обеих машинах стоит специфичный софт. Например, фоновые дефрагментаторы, сканеры файлов и т.п.
Хакер писал(а):если что-нибудь открыто
Хакер писал(а):Что скажешь насчёт моего рецепта выставления Affinity Mask?
Ну в конце-то концов, как ему может помешать работающий в фоне браузер или аська? Проверю.
iGrok писал(а):Ты мне лучше вот что скажи. У тебя машинка с двухъядерником есть? ut99 там работает нормально?
iGrok писал(а):Возможно, проблема действительно в конкретном дистрибе
BV писал(а):UT 99 GOTY Edition с патчем 451
Хакер писал(а):P.S. Пока искал страницы MSDN с описаниями структур, чтобы проставить ссылки на них, наткнулся на функцию SetImageConfigInformation, которая автоматизирует процесс правки таблицы конфигурации загрузки. Так что может быть и не совсем ручками.
Public Type LIST_ENTRY
Flk As Long
Blk As Long
End Type
Public Type LOADED_IMAGE
ModuleName As Long
hFile As Long
MappedAddress As Long
FileHeader As Long
LastRvaSection As Long
NumberOfSections As Long
Sections As Long
Characteristics As Long
fSystemImage As Byte
fDOSImage As Byte
Lks As LIST_ENTRY
SizeOfImage As Long
End Type
Public Type IMAGE_LOAD_CONFIG_DIRECTORY32
Size As Long
TimeDateStamp As Long
MajorVersion As Integer
MinorVersion As Integer
GlobalFlagsClear As Long
GlobalFlagsSet As Long
CriticalSectionDefaultTimeout As Long
DeCommitFreeBlockThreshold As Long
DeCommitTotalFreeThreshold As Long
LockPrefixTable As Long
MaximumAllocationSize As Long
VirtualMemoryThreshold As Long
ProcessHeapFlags As Long
ProcessAffinityMask As Long
CSDVersion As Integer
Reserved1 As Integer
EditList As Long
SecurityCookie As Long
SEHandlerTable As Long
SEHandlerCount As Long
End Type
Public Declare Function MapAndLoad Lib "imagehlp" ( _
ByVal ImageName As String, ByVal DllPath As String, _
LoadedImage As LOADED_IMAGE, ByVal DotDll As Long, ByVal ReadOnly As Long) As Long
Public Declare Function UnMapAndLoad Lib "imagehlp" (LoadedImage As LOADED_IMAGE) As Long
Public Declare Function SetImageConfigInformation32 Lib "imagehlp.dll" _
Alias "SetImageConfigInformation" ( _
ByRef LoadedImage As LOADED_IMAGE, _
ByRef ImageConfigInformation As IMAGE_LOAD_CONFIG_DIRECTORY32) As Long
Public Declare Function GetImageConfigInformation32 Lib "imagehlp.dll" _
Alias "GetImageConfigInformation" ( _
ByRef LoadedImage As LOADED_IMAGE, _
ByRef ImageConfigInformation As IMAGE_LOAD_CONFIG_DIRECTORY32) As Long
Function GetImageAffinityMask(sPath As String) As Long
Dim m_LI As LOADED_IMAGE
Dim m_ILCD As IMAGE_LOAD_CONFIG_DIRECTORY32
Dim res As Long
GetImageAffinityMask = -1
If MapAndLoad(sPath, vbNullString, m_LI, False, False) Then
If GetImageConfigInformation32(m_LI, m_ILCD) Then
GetImageAffinityMask = m_ILCD.ProcessAffinityMask
End If
UnMapAndLoad m_LI
End If
End Function
Function SetImageAffinityMask(sPath As String, aMask As Long) As Boolean
Dim m_LI As LOADED_IMAGE
Dim m_ILCD As IMAGE_LOAD_CONFIG_DIRECTORY32
If MapAndLoad(sPath, vbNullString, m_LI, False, False) Then
GetImageConfigInformation32 m_LI, m_ILCD
m_ILCD.ProcessAffinityMask = aMask
SetImageAffinityMask = SetImageConfigInformation32(m_LI, m_ILCD)
UnMapAndLoad m_LI
End If
End Function
Mikle писал(а):специальный драйвер, "синхронизирующий ядра". Проблему решает.
Сейчас этот форум просматривают: AhrefsBot, Majestic-12 [Bot] и гости: 5