GTA Builder Форум

GTA Vice City => Общие вопросы => Тема начата: Jak łaska za praca от Июня 29, 2014, 07:55:37 pm

Название: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июня 29, 2014, 07:55:37 pm
Собственно видео показывающий конфликт.

 (http://www.youtube.com/watch?v=BYo2yXWuEEU#)
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Sektor от Июня 30, 2014, 12:37:31 am
Не похоже на баг, а похоже на то, что процесс скорее всего подсел, ведь целых по сути две игры, вот и загрузка дольше островов. Может я ошибаюсь, но кто лучше знает, пусть скажет. Обычно если багало бы, то процессы передрались бы между собой и был бы вылет.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июня 30, 2014, 06:28:12 am
А Фича в том что загрузка зависит от соседней игры.
Пока вторая не погрузиться первая приморожена в середине и так со многими загрузочными процессами в игре.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Июня 30, 2014, 07:44:46 pm
Хотелось бы проверить это, но как оно вообще пошло в двух окнах, у меня еще на этапе загрузки вторая вылетает в ошибку.
Непонятно, чем они друг другу мешают, хотя вот тут (http://gtaforums.com/topic/477801-maxos-vehicle-loader/page-29?hl=%20mvl) похоже с этим проблем уже нет.

(http://maxorator.com/v/vc-win-mini.jpg)
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июня 30, 2014, 08:11:36 pm
Во всех окнах персонаж находиться близко от отеля. (Но будет кто-то ехать к отелю с геморроем ради снимков. Save?)
Да четыре окна я тоже открывал и игра тоже не выдавала ошибок.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Июля 01, 2014, 12:05:07 pm
Через что запускаешь игру в оконном режиме?
И для чего несколько окон с игрой, ради спортивного интереса, или есть какая-то задумка по этому поводу?
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июля 01, 2014, 12:47:00 pm
1. gta-vc.exe (ddraw.dll proxy)
2.Задумка
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Июля 01, 2014, 03:41:16 pm
В оконном режиме с MVL конфликта как на видео обнаружить не удалось, все вроде нормально.
В оконном режиме с d3d8.dll от Spookie вторая загрузка игры подвисает.
В оконном режиме с твоей прокси-dll, как ты говоришь, конфликт получается.
Возможно дело в реализации dll, какие там функции перехватываются, которые связаны с отрисовкой графики.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июля 01, 2014, 04:04:52 pm
C хабра /post/133956/.
Мне сами окна не нужны(Мне нужна коллизия, машинки, лодки и.т.д ). Без ddraw.dll зависает на середине загрузки как в окне.
MVL создание окна на тод-же exe или Maxo's Vehicle Loader Required?
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Июля 08, 2014, 05:44:26 am
Заметил такую штуку, игра держит img архивы открытыми и при параллельной второй загрузке вылетает ошибка при обращении к ним. Как это интересно исправлено в твоем варианте, чтобы несколько игр грузилось.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июля 08, 2014, 12:14:13 pm
Да я тоже заметил что он ждёт на GTA3.DIR. Но у меня вторая игра работает из папки cluster2(на всякий случай), вроде если не много подождать вроде застывает на том же месте(не уверен).
Похоже на то что первая игра просто не хочет загружать мир (могу ошибаться) по каким то причинам, радио щёлкая видно обращения а на мир нет.

vice bug continue (http://www.youtube.com/watch?v=DpQOhkqAfME#)

Up: Видео бессмысленно.


Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июля 29, 2014, 01:39:14 pm
Попробую открыть дополнительный поток для первой игры и пусть другие копии обобраться к нему с помощью.

typedef NTSTATUS(NTAPI* WinApi_RtlRemoteCall)(
IN HANDLE Thead,
IN PVOID CallSite,
IN ULONG ArgumentCount,
IN PULONG Argument,
IN BOOLEAN PassContext,
IN BOOLEAN AlreadySuspended
);

Это может помочь?
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Июля 29, 2014, 04:20:35 pm
Попробовал повторить твой конфликт, все в точности, причем не зависит от плагина, создающего оконный режим. Запускал игру из разных папок на разных дисках, которые обращаются к разным gta_vc.set из разных папок, то есть полностью исключено обращение к одним и тем же файлам, кроме системных. Чудеса начались с загрузки, одна игра подвисает на середине загрузки (там где начинается обращение к img-архивам, у меня начиная с col-файлов), ждет подвисания загрузки второй на том же месте, потом они дружно продолжают грузиться и наконец запускаются как на видео. Потом мне удалось с такими же подвисаниями и переключениями между окнами все-таки разлететься в разные края карты, местность постепенно прорисовывается, хотя не сразу. В итоге обе игры рано или поздно зависают окончательно. Непонятно конечно, вроде разные адресные пространства используются, где они могут пересекаться и конфликтовать.

P.S. Пробовал на стандартной и на очищенной игре без разделения на зоны и острова, одинаково.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: mfisto от Июля 29, 2014, 08:41:31 pm
Я скажу вам ребята больше этого, не только Vice City не позволяет грузить две копии, но и также например комбинации двух разных игр, таких как Vice City и San Andreas. Дело в DirectX, а именно DirectPlay.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Sektor от Июля 30, 2014, 01:07:18 am
Цитировать
Vice City и San Andreas. Дело в DirectX, а именно DirectPlay.

А вот тут странность, на сколько я помню GTA SA - обращается к DX9, а вайс к DX8.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Июля 30, 2014, 05:28:05 am
Дело в DirectX, а именно DirectPlay.

Но ведь какое-то время он успевает нормально отработать, как видно из видео. Можно даже успеть 30 секунд в режиме мультиплеера поиграть. В принципе, если ограничить зону, то может даже и нормально пойдет.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Июля 30, 2014, 11:59:29 am
У меня возникала идея что Vice city читает файлы из другого потока. Так и есть заблокировав все потоки кроме основного, я вызвал проблему с одной копией игры.
Так-же если остановить одну игру на время все нормально, надо попробовать приостановить другие игры на время считывания или их поток который за это отвечает.

Название: Re: Почему две игры конфликтуют между собой?
Отправлено: mfisto от Июля 30, 2014, 03:48:27 pm
Почему я грешу на DirectPlay, дело в том что у меня Windows 8.1 (главное здесь 8 ). У нее некоторые компоненты отключены по умолчанию, скажем, Net Framework 3.5. И вот оказывается, что для запуска Gta всей третьей серии требуется установка DirectPlay, что меня несколько удивило. Как это происходит: запускаешь приложение и вылазит окошко, нужен DirectPlay, ставим, и после этого можно играть (естественно устанавливаешь один раз). Вот такие пироги...Не факт, что это имеет какое-то значение, но для новых Windows GTA  (III...до IV) уже считается устаревшей по-ходу.
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: Jak łaska za praca от Сентября 08, 2014, 01:34:10 am
Проблема решаема таким способом в 00686744 нужно выставить индивидуальное значение для каждой игры.

Это значение  передаётся в CreateSemaphoreA
Название: Re: Почему две игры конфликтуют между собой?
Отправлено: xanser от Сентября 08, 2014, 06:40:45 am
Да, действительно работает теперь. Хорошо, что разобрался.