Серп и молот игра не запускается на windows 10

Обновлено: 08.07.2024

Решил я на выходных поностальгировать в Silent Storm. Установил, запустил и как-то не пошло… Разрешение, то ладно, можно и в 4:3 поиграть. Но, отсутствие теней, эффектов и дикий FPS мешали погрузиться в игру.

Вот и появился повод прокачать скилл программинга 😊 Итак, порядок действий был таков:

Я в этом вопросе плохо разбираюсь, поэтому нашел статью грамотного человека:

В продолжение темы расширения функциональности готовых программ хотелось бы рассказать об ещё…

Она рассказывает про прокси для ddraw.dll, но принцип тот же: получаем полный перечень всех экспортируемых функций, загружаем оригинальную библиотеку и получаем их адреса. А дальше работает такой код для всех "чистых" функций:

extern "C" __declspec(naked) void Fake_D3DPERF_BeginEvent() < _asm < jmp[d3d9dll.D3DPERF_BeginEvent] >>

Его прелесть заключается в том, что для вызова "чистой" функции достаточно знать только ее адрес. Параметры и возвращаемое значение лежат тихонько в стеке и нашей прокси-функцией не портятся.

На этом все! Собрал и подкинул фейковую d3d9.dll в папку с игрой. Игра запустилась и заработала без проблем. Значит можно продолжать.

Открываем заголовочный файл d3d9.h и охреневаем 🤔

Интерфейс IDirect3DDevice9. И каждую строчку нужно реализовать.

В этот момент, мне расхотелось играть в Silent Storm 😊 Ладно, копаем дальше, должны же быть извращенцы помимо меня. И я нашел аналогичный прокси для Pac-Man Battle Royale.

Я не скажу, что весь код этого автора мне понравился. Пришлось его рихтовать под себя. Но самое главное, прокси-методы мне не пришлось писать самому и огромный пласт нудных работ я просто скопировал себе:

void FakeDirect3DDevice9::SetCursorPosition(int X, int Y, DWORD Flags) < return(m_pIDirect3DDevice9->SetCursorPosition(X, Y, Flags)); >

Вот тут начинается самое интересное. Мне нужно было переписать некоторые функции, чтобы они возвращали мои липовые интерфейсы. И, конечно, исправляли недочеты игры. Первым делом переписал Direct3DCreate9, возвращающую интерфейс на объект Direct3D9.

extern "C" IDirect3D9* WINAPI Fake_Direct3DCreate9(UINT SDKVersion) < typedef IDirect3D9* (WINAPI * DIRECT3DCREATEPROC)(UINT SDKVersion); DIRECT3DCREATEPROC Direct3DCreate9Proc = (DIRECT3DCREATEPROC)d3d9dll.Direct3DCreate9; IDirect3D9* pFakeDirect3D9 = Direct3DCreate9Proc(SDKVersion); return new FakeDirect3D9(pFakeDirect3D9); >

Идея всех подобных функций проста: сначала я создаю настоящий Direct3D9 объект (первые три строчки в теле функции), а потом создаю свой прокси-объект, которому скармливаю настоящий (последняя строка). В дальнейшем все методы прокси либо будут передавать управление настоящему объекту, либо вносить правки и уже потом передавать управление. Наружу из такой функции, естественно возвращается интерфейс на поддельный объект.

Теперь очередь за IDirect3D9::CreateDevice.

HRESULT FakeDirect3D9::CreateDevice(UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface) < pPresentationParameters->PresentationInterval = D3DPRESENT_INTERVAL_ONE; // force VSYNC HRESULT hres = m_pIDirect3D9->CreateDevice(Adapter, DeviceType, hFocusWindow, BehaviorFlags, pPresentationParameters, ppReturnedDeviceInterface); *ppReturnedDeviceInterface = new FakeDirect3DDevice9(*ppReturnedDeviceInterface); return(hres); >

Тут, тоже самое. За исключением первой строчки в теле метода. Именно она отвечает за включение вертикальной синхронизации. Никаких дополнительных проверок я делать не стал - ребята из Nival дичи не творили, все параметры передают хорошие.

Ну и последний метод, исправляющий баг с тенями и эффектами:

UINT FakeDirect3DDevice9::GetAvailableTextureMem(void) < UINT ret = m_pIDirect3DDevice9->GetAvailableTextureMem(); if (ret > (UINT)INT_MAX) ret = (UINT)INT_MAX; return(ret); >

Исправляем то, о чем я писал выше. Игра внутри себя хранит результат в int (максимум 2'147'483'647), а надо хранить в unsigned int (максимум 4'294'967'296). Ну т.е. на видюхе с более чем 2 гига оперативки, int захлебывается и уходит в отрицательные значения, что и приводит к неверному авто-определению настроек. Данный метод, просто обрубает настоящий результат по границе в 2 гига.

Update: Добавил фикс для разрешения 1920х1080. Мне не нравится результат - многие надписи обрезаются по вертикали. В комментариях есть скриншоты с примерами. Чтобы перейти в FullHD, в игре нужно установить разрешение 800х600.

D3D9 proxy for Silent Storm. Contribute to maltsevda/FakeD3D9 development by creating an account…

Тут лежат исходники и собранная dll. Так как я играю на рабочем компьютере и не сильно заморачивался со сборкой, то возможны зависимости от 2019-й студии. Ну да это уже совсем другая история 😊

Вот это тот самый контент, ради которого я пришёл на ДТФ! Больше!

Это контент раздела реверс инженеринг на хабре. И если на хабре такой контент норм заходит, то тут это на любителя.
Это, все таки, не гейм дев.

Это больше про геймдев, чем статьи про заглядывание за текстуры и подобный скам в этом разделе.

Заглядывая за текстуры можно посмотреть как оптимизировать ресурсы и своё время.
А тут лишь правка чужих программ.

Оптимизация уровня очевидность, а если ещё вспомнить как работают растеризующие графические библиотеки и железо в общем. Те, что на нижнем уровне любой игры, так вообще снисходительная улыбка не будет сходить с вашего лица.

Жаль что современный геймдев вырастил уже то поколение делателей игр, которые мало понимают как устроен вывод изображения на экран + вообще какое-то понимание о конечности машинных ресурсов и как использовать эти знания для того, чтобы не делать дурной работы там, где ее можно не делать. Собственно на этом незнании и строятся статьи о заглядывании за текстуры + банальное непонимание работы железа (это про статью где сворачивали дракончика в рулетик под полом по вполне очевидным причинам минимизации издержек по ресурсам этого самого железа.

Автор и не скрывал что мопед не его, но тут хоть какая-то реализация. А именно реализация модофикса без исходных текстов игры и пруфы того, как какая-то часть игры "действительно" работает под капотом (реальная реализация с реальной пользой). Надеюсь я до вас донес смысл моих претензий к статьям по типу "посмотрим что за текстуркой? Ого тут нет глазниц (подобный контент растянутый на лонгрид)" и подобных им в этом разделе.

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому…

Ну это совсем другого уровня работа. Я просто собрал в кучку то, что уже делали до меня.

немножко другого уровня работа. Тут пара ифов и подстановка значений, дело в основном в технике DLL-Вызовов. Что не умаляет усилий автора. Но по циве работа более скрупулезная, не стоит сравнивать.

Комментарий удален по просьбе пользователя

Т.е. опять правил проблемы игры вместо разрабов?

Такие люди не спрашивают какой язык программирования быстрее всего изучить :)

Комментарий удален по просьбе пользователя

Херасе недавно,я успел школу закончить,универ, проработать 10 лет женится и стать отцом:)

Всего-то? А я сегодня скачал Rage 2. И оторвал зад от дивана. Но Rage 2 важнее.
Мдааа.

Время летит неумолимо и когда играешь в свою любимую игру в порыве ностальгии, в которую играл 15-20лет назад, то чувствуешь себя по настоящему старым. ред.

А разговариваете всё так-же, как восемнадцатилетний балбес. Любопытно.

Потому что это комменты сайта про игры,а не профессорский чат.
Решил подъебать,умник?

Как раз недавно вспоминал ее. Ах как бы хотелось ремейк SS, SS2, Серп и Молот. Ведь игра даже для нашего времени на голову выше X-COM в плане реализации тактик. И да спасибо автору.

Я вот месяц назад в поисках похожего на x-com сел в нее поиграть, и как человек без сильной дозы ностальгии, могу сказать, что не показалась она мне выше x-com совсем. Да, есть интересные механики с возможностью выбора части тела для выстрела, стрельбы на шум или разные варианты выстрела, которые влияют на точность и расход очков действия, это понравилось. Но в целом я поиграл часов 5 в игру и понял, что я скорее борюсь с тем, какая игра неудобная, чем занимаюсь собственно тактикой. А неудобно буквально все: перемещение персонажей, камера и сами перестрелки и даже использование взрывчатки(сравнить с тем же икскомом).
Для меня удивительно, что только недавно разработчики данного жанра поняли, что укрытия должны использоваться при выборе позиции персонажа, к примеру. Перестрелки здесь выглядят нелепо: ты выходишь на линию огня стреляешь, если у тебя остались очки действия, то пытаешься отойти, но обычно их не остается. АИ ведет себя еще хуже, просто оставаясь на линии огня. В итоге самая простая тактика была: выдать всем дальнобойное оружие и отстреливать максимально точным выстрелом компьютерных болванчиков. В какой-то момент я понял, что это скучно и удалил игру. Играл я на максимальном уровне сложности, если что.
Возможно я упустил что-то, готов послушать поклонников игры, чем она вам так нравится.

Тут вся соль в разрушаемом окружении. Из-за нее генерируются такие ситуации и способы прохождения, которые невозможны в других играх. Классический пример - подорвать несущие стены здания, в котором засели враги. Здание рухнет и похоронит всех.

Игра крутая, но с определенного момента ты становишься имбой, да.

SS на другой части спектра от современного XCOM (в старый не играл). Где в XCOM все сглажено в угоду консольщикам, тут все неудобно и медленно даже на ПК.
Просто нужен баланс, а не убийство одного аутиста за 5 ходов с расчетом хода врага по 30 секунд.
При этом механики тут правда круче и симуляторнее - чего только разрушения стоят.

Серп и Молот: Выжми из движка Silent Storm все
Встречаем новый проект

В 1949 году судьба мира повисла на волоске. Неразрешимые политические противоречия между странами НАТО и СССР заставляли обе стороны спешно наращивать военный потенциал. Грозовые тучи собирались над Европой и гуще всего они были в Германии, разделенной на оккупационные зоны между бывшими союзниками по антигитлеровской коалиции. Ядерное оружие угрожало превратить назревающий конфликт в бойню, перед которой померкли бы ужасы Второй Мировой.

«Серп и Молот» - тактическая ролевая игра по мотивам вселенной Silent Storm, первый совместный проект команды Novic&Co и продюсерского направления компании Nival Interactive.

Действие игры разворачивается в англо-американском секторе оккупации послевоенной Германии весной 1949 года. В роли советского диверсанта вы погрузитесь в жестокое противостояние спецслужб и сможете пройти через ад скрытой войны, в которой вам предстоит разобраться в хитросплетениях тайных интриг, принимать решения, от которых будет зависеть, суждено ли миру жить в мире или рухнуть в хаос Третьей Мировой войны.

Дата релиза: 2 квартал 2005 года

Замена главной музыкальной темы игры на аналогичную из мода. На Армстронга (из дмки)

Обновление игры до версии 1.1 вносит улучшения практически во все аспекты игры: баланс, игровой процесс, прохождение. Исправлены мелкие графические и логические ошибки на различных локациях, переработана система защиты бронежилетов, сокращено время загрузки сохранений при использовании модификаций. В интерфейсе настройки сложности кампании добавлен регулятор течения игрового времени.
Исправлено:
1) Ошибка в дипломатии ВС США на локации «Перекресток».
2) Отказ демонстрации финального ролика одного из вариантов окончания игры.
3) Невозможность в некоторых случаях прекратить отдых персонажа, управляемого игроком.
4) Невозможность в одном из вариантов прохождения игры освободить Фиделя мирным путем.
5) «Дублирование» Фиделя по одному из вариантов развития игры с его наймом.
6) Прекращение работы игры по одному из вариантов развития с антикваром.
7) Возможные проблемы с повторным посещением Зайценбурга после конфликта с полицией.
8) Уменьшение производительности игры на городских зонах.
9) Доступность кнопки «Выход» при аресте группы.
10) «Потеря» группы, оставленной на отдых, при наличии в команде Павла и найме Сандерс в одном из вариантов развития событий.
11) Ошибка при разборках с Зигфридом в бункере, возникающая в одном из вариантов развития игры.
12) Ошибка с переходом отдыхающих партийцев на сторону противника при столкновении с людьми босса.
13) Порча текущего и всех последующих сохранений при попытке воспользоваться функцией быстрой загрузки при отсутствии на диске записи, соответствующей быстрому сохранению.
14) Бесполезность бронежелетов для персонажей, управляемых игроком.
15) Сохраняющийся при наступлении дня режим скрытности персонажей (в некоторых случаях).
16) Длительная загрузка сохранений при использовании модификаций.
17) Неправильный расчет количества выстрелов в длинной очереди при стрельбе из пулеметов.
18) Эффект «серого» экрана при попытке зайти в произвольную локацию с глобальной карты.
19) Отсутствие продвижения по сценарию в случае провала игроком по времени финального задания.
20) Возможные некорректные показания счетчика времени при смене локаций.
21) Мелкие косметические и логические ошибки на различных локациях.
22) Исправлена ошибка, приводящая к недостаточно частым проверками на наблюдательность/скрытность.
23) Крайне редкая ошибка на локации «Перекресток»: перед уходом в некоторых случаях Сандерс могла открыть огонь по группе.

Добавлено:
1) Регулятор течения игрового времени в интерфейсе настройки сложности кампании.
2) При минировании и установке растяжек персонажем с малым значением навыка «Инженерия» возникает ненулевая вероятность подрыва в момент установки ловушки.
3) На панель инвентаря выводится процент веса снаряжения персонажа.

Изменено:
1) Баланс кампании по уровням сложности.
2) Переработана защита бронежелетов: введена частичная защита конечностей, полная корпуса, защита в целом увеличена.
3) На панели персонажа выводятся те значения его навыков, которые реально участвуют в алгоритмах игровой механики.
4) Уменьшено максимальное количество VP, которые возможно перевязать

В этой теме на официальном форуме главный сценарист Иван Кошкин изложил основные принципы организации сюжета. Нет никаких "базы" и миссий. Мы должны оценивать имеющуюся информацию и выбирать, куда двинуться дальше, и через диалоги (да, полноценные диалоги) с другими персонажами мы определяем дальнейшую линию развития событий. Диалоги, как и весь сюжет, обладают сложной разветвленной структурой. Есть несколько ключевых точек, в которых становятся доступны (или перекрываются) те или иные сюжетные ветки, и масса линиий помельче в промежутках. Таким образом, прохождение игры раз от раза может меняться кардинально.


Да первые части были линейны, было много недочётов - ну так там игра то привлекала именно своими боями а не брождениями по уровням в поисках грааля. и что сделали разрабы!? Доработали бой но при это свели на нет сам геймплей. я плакать.

Как запускать старые игры на Windows 10?

Старые игры с каждым годом всё больше уходят в прошлое. Одна из причин – их сложно (на первый взгляд) запустить на Win 10. Мы решили облегчить процесс запуска старых игр и разобрать для вас самые удобные способы.

Как на Windows 10 запускать DOS-игры?

Можно прождать целую вечность, пока ОС запустит DOS-игру, хотя она так и не сможет это сделать. И это не удивительно, когда дело доходит до развлечений 90-х годов, они были предназначены для максимально древнего интерфейса командной строки. В таких случаях способно помочь лишь одно средство – утилита «DOSBox», эмулирующая DOS-среду.

Как запускать старые игры через DOSBox?

  • Скачиваете DOSBox с официального сайта: ссылка

Как запускать старые игры на Windows 10?

Как сделать так, чтобы игра через DOSBox запускалась автоматически?

  • Если вам не нравится, что каждый раз приходится перетаскивать исполнительный файл, тогда жмите ПКМ по ярлыку эмулятора «DOSBox» и выберите вариант «Свойства»;

Как запускать старые игры на Windows 10?

Как на Windows 10 запускать игры для Windows XP?

Все причины, из-за которых старые игры не запускаются на Windows 10, связаны с несовместимостью программного обеспечения и компонентами ОС. Поэтому «пожилые» игры совершенно оправдано требует особый режим экран (отключённый по умолчанию в «десятке»), повышенные привилегии (права) и т. п. Так что же делать?

1. Определите совместимость и установите права администратора

Все проекты, выпущенные во времена «хрюши» (Windows XP), всегда по умолчанию будут требовать у вас повышенных прав для запуска и нормальной работы игры. Собственно, именно по этой причине любую такую игру важно запускать всегда от имени администратора. Это можно сделать в свойствах файла и в контекстном меню «Проводника», но мы рекомендуем первый вариант. Для этого нужно сделать следующее:

  • ПКМ по исполняемому .exe-файлу в папке игры или по ярлыку на рабочем столе, после чего выбираете «Свойства»;

Как запускать старые игры на Windows 10?

2. Настройте параметры экрана

Кроме того, устаревшие игры могут не работать из-за отсутствия поддержки установленного разрешения и цветовой гаммы. Настроить эти параметры также можно во вкладке «Совместимость». И тут тяжело дать однозначные рекомендации всем и каждому, а поскольку точного рецепта нет, придётся воспользоваться «методом научного тыка». Так что проверяйте разные режимы пониженной цветности, пониженного разрешения экрана и, как вариант, попробуйте отключить полноэкранный режим.

3. Установите и включите старые компоненты DirectX

Рекомендуем обратить внимание на то, что он в обязательном порядке должен быть автономным установщиком со всеми важными файлами. Использовать нужно только его, потому что другой веб-собрат точно сообщит, мол, уже всё установлено. В любом случае это ещё и необходимо настроить, предлагаем воспользоваться ещё одной инструкцией:

  • Скачиваете и запускаете инсталлятор;

Как запускать старые игры на Windows 10?

Как запускать старые игры на Windows 10?

Как запускать старые игры на Windows 10?

Как запускать старые игры на Windows 10?

Создайте образ Windows XP через VirtualBox

Что делать, если ничего из вышеописанного не помогло, а наладить отношения с Windows 10 по-прежнему никак не получается? Последний вариант – это создание виртуального образа Windows XP с помощью программы VirtualBox. По итогу получится, что вы установили ОС внутри ОС.

Как запускать старые игры на Windows 10?

Возможно, звучит дико, но в современных реалиях это абсолютно нормально, поскольку в таком случае старенькая игра 100% запустится. Единственный минус способа заключается в том, что для реализации задуманного предстоит иметь достаточный объём оперативной памяти, чтобы «железо» тянуло всю эту «кашу» без лагов и фризов, а также найти где-то чистый образ Windows XP.



Со старыми играми, имеющими DRM-защиту «SecuROM» или «SafeDisc» всё сложнее, потому что от этих двух технологий, связанных с управлением цифровыми правами проблем больше, чем пользы. Windows 10 не даёт засорять ими систему, так что если у вас есть DVD-диск с такой игрой, увы, запустить ее не получится.

Однако варианты решения этой проблемы существуют: первый – купить игру снова, но в цифровом магазине Steam или GOG (часто есть вариант обмена ключа с диска через поддержку издательства); второй – попытаться отыскать «no CD» патч, что потенциально небезопасно; третий – уже знакомый вариант с созданием виртуального образа подходящей ОС.

Нередко пользователи Windows 10 сталкиваются с тем, что не могут запустить ту или иную игру. Если не рассматривать единичные ситуации, когда юзер, к примеру, скачал с торрент-трекера игровой Repack и столкнулся с проблемой «битого» установщика или некачественного «кряка» (взломщика лицензии), прилагаемого к игре в репаке, то часто у пользователя не получается запустить несколько различных игр под десяткой.

Проблема, скорее всего, кроется в операционной системе, под которой софт не хочет работать корректно. К числу наиболее распространённых нюансов можно отнести:

  • блокировку запуска установщика антивирусным софтом;
  • несовместимость игры с Windows 10;
  • наличие повреждённых и устаревших драйверов либо вовсе отсутствие драйверов, как таковых;
  • неактуальная версия DirectX;
  • отсутствие прав администратора;
  • некорректно указанный путь к файлу установки;
  • отсутствующие версии Net Framework и C++;
  • отсутствующие DLL-библиотеки, нужные игре для запуска.

Если речь идёт об установке игры на системный раздел жёсткого диска, на нём может просто оказаться недостаточно места для инсталляции (сама по себе Windows 10, учитывая все обновления и дополнения, весит немало). Рассмотрим наиболее типичные ситуации, в которых пользователь испытывает сложности с запуском игр по Windows 10 и поговорим о всевозможных путях их решения.

Какие существуют проблемы с установкой игр на Windows 10 и как их решить?

Для начала рассмотрим самый первый пример, который был обозначен выше – битый/повреждённый инсталлятор. Его нужно проверить на целостность и попробовать загрузить файл установщик игры заново. Вполне вероятно, что во время загрузки архива с игрой или самого exe-шника антивирус мог прервать операцию, и файл был скачан не полностью. Ещё одна причина – внезапная потеря связи компьютера с сервером во время скачивания игры. Это наиболее простые и очевидные варианты. Далее рассмотрим более интересные случаи.

Отсутствие прав администратора

Это очень частая проблема и причина невозможного запуска игр на ПК. Решается она достаточно просто, если вход в систему был осуществлён под учётной записью Администратора.

По дефолту система запускается из этой учётки, за исключением случаев, когда вы, например, создали гостевую запись и не выдали ей прав администратора. В этом случае нужно перезагрузить ПК и попробовать войти в учётку админа. Смотрите так же: как получить права администратора в Windows 10 .

Если же вы вошли под «правильной» учётной записью, то следует кликнуть ПКМ по инсталлятору и в контекстном меню выбрать пункт запуска от имени администратора. С ярлыком игры на рабочем столе нужно проделать ту же манипуляцию. Далее система запросит подтверждение запуска. Подтверждаем, устанавливаем/играем.

Читайте также: