!РЕШЕНО! Нужна помощь с .dll (d3d9.dll, dxdi.dll) - это не про то что "игра не видит файл" тут нужна конкретная помощь
В общем решил я вспомнить молодость и погонять в Test Drive Unlimited 1, наткнулся на мод Test drive unlimited platinum, в этом моде меня привлекло то что там был онлайн.
Покатался 2 дня и вспомнил что у меня есть vr шлем, короче ковырялся всю ночь с установкой и настройкой
Пробовал Vorpx (там он просто растянул картинку на виртуальный экран и никакой стереоскопии).
Потом нашел вариант с настройкой vr в не поддерживаемых играх, через reshade, вобщем все поставил, все настроил, но отвалился онлайн, потому что reshade заменил d3d9.dll, а без "оригинального" .dll от мода не пускает в онлайн.
Короче я заманался, скажу сразу - -я не программист (хотя иногда че то в файлах читать и ковыряться пытаюсь), и полез смотреть, как открыть .dll файл.
Нашел Resource Hacker, но кроме замены названий, каких-то внутри файла я больше ничего не смог сделать, что, как вы наверное уже поняли, совсем не помогло.
Потом я нашел какой-то HEX эдитор, поковырялся в нем, и понял что для такого я совсем дум дум.
После, мне посоветовали установить решейд для dx9 в отдельную папку, затем установить решейд для dx10 в папку с игрой и поменять название файла от dx9 версии (d3d9.dll), в версию от dx10 (dxgi.dll), и просто заменить в папке с игрой, что тоже не помогло.
Не уверен, но так мне сказал вроде один из разрабов мода, и больше на связь не выходил.
Я уже исписал форумы, дискорды и реддиты по TDU, но как оказалось фан сообщество у игры хоть и есть, но там че то все полуживое и найти хоть какую-то более-менее полезную информацию крайне сложно.
Может есть, кто в этом разбирается, и сам по себе программист (ну или там разбирается во всех этих dll'ных делах), сможет подсказать что лучше сделать, может как-то можно (если это возможно) скрестить d3d9 игры и d3d9 решейда?
Я просто взялся за это уже, провозился достаточно много времени и не хочу вот так на почти конце пути все бросать.
Так ссылка удалилась, короче если вдруг будут вопросы по этой теме пишите. (только по тест драйву, я ниче там не кодил и не ковырял)
d3d9.dll - это компонент directx9
Решейд подменяет оригинальную библиотеку своей, с тем, чтобы иметь возможность перехватывать вызов функций графического api dx9
Если игра проверяет хэш библиотеки, и блочит онлайн по факту несовпадения хэша со списком известных - ты никак не сможешь этот механизм обойти.
Пляски с dxgi никак не помогут?
Всё зависит от того, как игра детектит подмену библиотеки. В любом случае без навыков погромиста, причём вменяемого, тут делать нечего.
я просто че так зацепился за все это дело, разрабы же как то этот d3d9 поменяли что бы туда онлайн записать, я уже думал может с ними связаться, но че то контактов и даже сайта найти не могу
Чавой?
:D
ну смотри, если я меняю d3d9.dll от мода на d3d9.dll от решейда - игра запускается и решейд работает, но вот доступ к серверам от мода она теряет. Я сделал вывод, что записи для подключения к серверу как раз в этом d3d9 от мода
—
а почему так то тогда? может че то с .exe файлом?
А, онлайн - это мод что ли? Ну да, тогда так же через перехват вызовов. Но сам ты это не воспроизведёшь, я уже сказал. Тут навыки вменяемого погромиста нужны. Мало того, что нужно понимание того, как расковырять библиотеку, так ещё и что перехватывать и куда передавать.
а вот то что мне сказали установить рейшейд для dx10 в папку с игрой и просто переименовать d3d9 от решейда для dx9 в dxgi и заменить? Я так понял это наверное и был один из разрабов мода
Ну попробуй, что мешает? Разраб мода, очевидно, должен понимать как его мод работает.
так я сделал и решейд не появляется, и мне кажется потому что dxgi это для 10 директа, а игра просто этот файл не видит, потому что она на 9 директе, хотя он вроде сказал что это injection файл и типо он сам внедряется.
Или может я как то не правильно его слова понял?
Может это я, конечно, чего-то не понимаю в этой жизни, но никакая библиотека "сама" никуда не внедряется, к ней надо обратиться так или иначе.
а к ней обращается .exe?
К dxdi dx9 игра? Без понятия. На первый взгляд не должна.
ладно, буду дальше ковырятся(
спасибо
Я как бы не исключаю что у меня может какие-то устаревшие представления, или есть какие-то хитрости о которых я не знаю.
Спокойно внедряется множеством способом. Для этого и понятие есть, dll injection. Другое дело, что, разумеется, нужно знать, что и как делать.
Для загрузки нескольких dll, существует такая штука - asi loader.
Ставишь её dll вместо одной поддерживаемой игрой, а уже самому Asi скармливаешь остальные нужные dll переименовывая их в любое_название.asi
вот это реально крутая штука, спасибо
Комментарий недоступен