Ten
| p2ambassador |
Faction: Стражи Садов Кадеша
Join Date: Feb 2004
Location: Great Nebula
Posts: 2,550
|
Re: Homeworld 2 и Windows 7 - проблемы с запуском
Pandorazero, dxdiag тут мало поможет, поскольку все три космические игры серии основаны на OpenGL Хотя, конечно, в столь странной ситуации за любую соломинку ухватишься...
В принципе, у меня в загашнике лежит довольно неплохая для тех лет гигабайтовская мат.плата на 945-м чипсете (945GC) с Pentium E6600 и 4Gb DDR2, чтоб без дела не лежать, подцепил к ней старенький винчестер на 80, поставил максимальную семёрку, поставил игру (1.1 с отвязкой sd-hw11), поставил кодеки прямо с диска, а вот DirectX с диска ставиться не пожелал, сославшись на то, что в системе версия новее. Последний DirectX 9.0 за 2011 год тоже ставить не стал.
В результате пробных запусков оказалось, что на драйверах, что шли в комплекте с семёркой (8.15.10.1749 за 06.05.2009, не WHQL), игра вылетаёт с ошибкой Access Violation в файле ig4dev32.dll (лезет по нулевому адресу - классика жанра). Однако с драйверами версии 8.15.10.1930 за 23.09.2009 (WHQL) игра показывает меню, и вылетает с Access Violation в Objects.dll только при попытке начать миссию. Лог в итоге получается вот таким:
Hw2.log
Code:
Fri Aug 30 20:45:50 2019
Loaded Archive: 'Homeworld2.big'
UTIL -- filepath failure, path doesn't exists 'C:\Program Files (x86)\Sierra\Homeworld2\data\locale\english'
Loaded Archive: 'english.big'
Uing ..profiles\ for profiles folder
Changing from a 32 bit colour depth in winNT (6.1 build 7601), Service Pack 1
Using Intel's 1.4.0 - Build 8.14.10.1930 Intel 945G renderer (Suspected driver is ialmgicd.dll 0)
Loaded Archive: 'englishSpeech.big'
Loaded Archive: 'Music.big'
SOUND -- created destination [ fdaudio ], handle [ 4 ] with [ 48 ] channels created
SOUND -- created destination [ fda streamer ], handle [ 5 ] with [ 8 ] channels created
Build name: The Dust Wars - AutoBuild3569 - Ordered by smmatte
Built by : mrbuild
Data path : C:\Program Files (x86)\Sierra\Homeworld2\data
Program "!!ARBfp1.0
OPTION ARB_precision_hint_fastest;
ATTRIB tex = fragment.texcoord[0]; #first set of texture coordinates
ATTRIB col0 = fragment.color.primary; #diffuse interpolated color
ATTRIB col1 = fragment.color.secondary; #specular interpolated color
PARAM miscValues = { 0, 0.5, 1, 2 };
OUTPUT outColour = result.color;
TEMP diffuseOn, glowOn, diffuseOff, glowOff;
TEMP diffuse, glow, base, teamBaseColour, teamStripeColour;
TEMP teamBaseAmount, teamStripeAmount, light, spec;
TEMP unFoggedColour, fogColour, weight;
#sample the textures
TEX diffuseOn, tex, texture[0], 2D;
TEX diffuseOff, tex, texture[1], 2D;
TEX glowOn, tex, texture[2], 2D;
TEX glowOff, tex, texture[3], 2D;
#average the textures
MOV weight, program.local[3];
MUL diffuse, diffuseOn, weight;
MUL glow, glowOn, weight;
SUB weight, miscValues.z, weight;
MAD diffuse, diffuseOff, weight, diffuse;
MAD glow, glowOff, weight, glow;
##adjust colour underlying base
# make darker
ADD base, diffuse, miscValues
Program Info:Error, line 70: device compile failed.
Could not load !!ARBfp1.0
OPTION ARB_precision_hint_fastest;
ATTRIB tex = fragment.texcoord[0]; #first set of texture coordinates
ATTRIB col0 = fragment.color.primary; #diffuse interpolated color
ATTRIB col1 = fragment.color.secondary; #specular interpolated color
PARAM miscValues = { 0, 0.5, 1, 2 };
OUTPUT outColour = result.color;
TEMP diffuseOn, glowOn, diffuseOff, glowOff;
TEMP diffuse, glow, base, teamBaseColour, teamStripeColour;
TEMP teamBaseAmount, teamStripeAmount, light, spec;
TEMP unFoggedColour, fogColour, weight;
#sample the textures
TEX diffuseOn, tex, texture[0], 2D;
TEX diffuseOff, tex, texture[1], 2D;
TEX glowOn, tex, texture[2], 2D;
TEX glowOff, tex, texture[3], 2D;
#average the textures
MOV weight, program.local[3];
MUL diffuse, diffuseOn, weight;
MUL glow, glowOn, weight;
SUB weight, miscValues.z, weight;
MAD diffuse, diffuseOff, weight, diffuse;
MAD glow, glowOff, weight, glow;
##adjust colour underlying base
# make darker
ADD base, diffuse, misc
Could not initialize all fragment programs. Please use the '-fragment_program 0' command line parameter
GAME -- Using player profile Player1
Resetting fp control word.
CmdLine:
Starting Level: Data:\LevelData\Campaign\ascension\M01_Tanis\M01_Tanis.level
HGN_HSCORE is marked as salvageable in the shiptuning but has no salvage points!
Возможно, данный пиксельный шейдер, который не удалось инициализировать, упирается в какие-либо ограничения, налагаемые встроенной видеокартой. Запускаю игру с рекомендуемым параметром -fragment_program 0, ошибка шейдера пропала, и я попал в первую миссию. Погоняв немного сборщиков и перехватчики (до прилёта незваных гостей), вылетов не обнаружил. И стоит отметить, что на настройках по умолчанию камера перемещается на удивление плавно, без каких-либо рывков и задержек.
Как видно, игре вполне хватает OpenGL 1.4, причём те 4 спасительных параметра даже не понадобились. regul в своё время тоже столкнулся с проблемами при запуске игры на 945-м чипсете, но дело было на XP, и ему помог параметр -nopbuffer.
Ещё добавлю, что ситуация идентична как при выставлении совместимости с различным иверсиями ОС, так и с запуском от имени адинистратора - меняется лишь версия ОС в Hw2.log, а от отсутствия прав все файлы, записываемые в Program Files, кладутся в VirtualStore в папке текущего пользовательского профиля.
Xenobyte, на 960-й серии, я смотрю, интеловцы реализовали полноценный OpenGL 2.0 - его тем более за глаза должно хватить. Также версии драйверов у нас с тобой одинаковы... попробуй параметр -fragment_program 0 - игра хоть и не просит, но всё же.
Ещё, если у тебя кодеки другой версии, может они, если используют DirectX, тем или иным образом препятствуют отрисовке. Попробуй запустить игру с параметром -noMovies.
Также я обратил внимание, что у тебя классическая тема, у которой, как оказалось, есть свои нюансы. Ты не пробовал включить Aero-тему и запустить игру снова?
Ну и радикальный вариант - поставить свежую семёрку на доп.носитель и попробовать с ней. Если, конечно, есть такая возможность.
|