Windows XP Program patcher |
Здравствуйте, гость ( Авторизация | Регистрация )
Windows XP Program patcher |
06.03.2016, 07:44
Сообщение
#21
|
|
Почти Игроман Репутация: 67 Группа: Участник Сообщений: 741 Награды: 4 Регистрация: 01.06.2007 |
Продолжаем. Отсутствующие функции _wfopen_s() в msvcrt.dll xp
Решение - пропатчить _wfopen_s() на _wfopen(), которая под XP имеется |
 
|
|
|
|
06.03.2016, 12:40
Сообщение
#22
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
helter, ты уверен? Эти функции отличаются по параметрам.
Такая замена ни к чему хорошему не приведет. Если даже не вылетит, то откроет файл с мусором в имени, который и то не сможет правильно вернуть в программу. Тут надо прокси-dll для msvcrt делать(типа как zernel, который ты тут скидывал.) и там обёртку на функцией. Код errno_t _wfopen_s(FILE **pFile, const wchar_t *filename, const wchar_t *mode)
{ if(!pFile || !filename || !mode) return EINVAL; if(*pFile = _wfopen(filename,mode) == 0) return ENOENT; return 0; // success } |
 
|
|
06.03.2016, 16:25
Сообщение
#23
|
|
Почти Игроман Репутация: 67 Группа: Участник Сообщений: 741 Награды: 4 Регистрация: 01.06.2007 |
Не проверял, друг столкнулся вчера в ffmpeg , на руборде пишут помогло
Я вобще функции выпиливаю и работает |
 
|
|
20.06.2016, 13:17
Сообщение
#24
|
|
Почти Игроман Репутация: 67 Группа: Участник Сообщений: 741 Награды: 4 Регистрация: 01.06.2007 |
патчер системных длл от япошек. Теперь приложения думают что это семерка
|
 
|
|
20.08.2016, 04:49
Сообщение
#25
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
патчер системных длл от япошек. Теперь приложения думают что это семерка Ну не япошек, а BlackWingCat'a - гуру ассемблера, он из Японии, нужно уважать человека. Кто там хотел DDS Converter запустить на ХР? У меня на 2003 пошел, кстати WineD3D 10/11 для XP реальность. У меня еще есть куда более продвинутый zernel32.dll, правда это все хренотень на самом деле, куда лучше встроить новые функции экспорта в родной kernel32, с чем я и BWC боремся сейчас (под Win2003). Сообщение отредактировал Svyatpro - 20.08.2016, 05:15 |
 
|
|
20.08.2016, 13:46
Сообщение
#26
|
|
Почти Игроман Репутация: 67 Группа: Участник Сообщений: 741 Награды: 4 Регистрация: 01.06.2007 |
У меня еще есть куда более продвинутый zernel32.dll, правда это все хренотень на самом деле, куда лучше встроить новые функции экспорта в родной kernel32, с чем я и BWC боремся сейчас (под Win2003). А функция getthreadid у вас работает? Находил zernel32 с ней но Chrome так и не запустился. Где кстати BWC обитает кроме MSFN форума ? |
 
|
|
20.08.2016, 15:49
Сообщение
#27
|
|
Мастер Игры Репутация: 382 Группа: Участник Сообщений: 1450 Награды: 4 Регистрация: 25.09.2009 |
Приложение выдает ошибку что не является win32 Ошибка - GetTickCount64 не найдена в библиотеке DLL KERNEL32.dll Как раз столкнулся с такими проблемами на Windows XP Professional x64, какое из решений подойдет? -------------------- |
 
|
|
20.08.2016, 18:24
Сообщение
#28
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
У меня еще есть куда более продвинутый zernel32.dll, правда это все хренотень на самом деле, куда лучше встроить новые функции экспорта в родной kernel32, с чем я и BWC боремся сейчас (под Win2003). А функция getthreadid у вас работает? Находил zernel32 с ней но Chrome так и не запустился. Где кстати BWC обитает кроме MSFN форума ? GetThreadId работает т.к. в Win2003 она имплементирована нативно. Chrome 50 без проблем бегает в моем Win2003 окружении и с полным, "почти" валидным аппаратным акселем. BWС очень закрытый человек, можете писать сообщения у него в Приложение выдает ошибку что не является win32 Ошибка - GetTickCount64 не найдена в библиотеке DLL KERNEL32.dll Как раз столкнулся с такими проблемами на Windows XP Professional x64, какое из решений подойдет? Как вариант переименовать функцию импорта в GetTickCount. Либо имплементить ее в zernel32 и скомпилить для x64, сорсы есть. Сообщение отредактировал Svyatpro - 20.08.2016, 18:22 |
 
|
|
20.08.2016, 18:44
Сообщение
#29
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
патчер системных длл от япошек. Теперь приложения думают что это семерка Теперь на ХР может работать 3 и 4 рендер столкира? С намоканием и другими плюшками? -------------------- |
 
|
|
20.08.2016, 18:58
Сообщение
#30
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
патчер системных длл от япошек. Теперь приложения думают что это семерка Теперь на ХР может работать 3 и 4 рендер столкира? С намоканием и другими плюшками? Сталкер запускается как с третьим так и с четвертым рендерером но работает некорректно, многие форматы текстур не поддерживаеются до сих пор, а также многие шейдеры просто напросто не распознаются и в итоге не прорисовуются. Это вопрос времени, нужно ждать, отправлять качественные баг репорты в багзиллу winehq. Примерно так выглядит менюшка сталкера чн на ХР при запуске под WineD3D10 Если кому интересно, можете потестить последний мой билд WineD3D специально адаптированный под XP/2003. Сообщение отредактировал Svyatpro - 20.08.2016, 19:06 |
 
|
|
20.08.2016, 19:47
Сообщение
#31
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
|
 
|
|
20.08.2016, 19:54
Сообщение
#32
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
Для того чтобы привести его в нормальный вид, пишите баги в |
 
|
|
20.08.2016, 20:05
Сообщение
#33
|
|
Ветеран Репутация: 4 Группа: Участник Сообщений: 85 Награды: 1 Регистрация: 27.09.2015 |
А что насчет запуска например : bf3\4 , gta 5?
|
 
|
|
20.08.2016, 20:15
Сообщение
#34
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
Bidjo, рано очень, сейчас необходимо разобраться со всеми простыми приложениями которые в большинстве своем используют какой-то определенный аспект DX10/11, до интеграционного тестирования пока рано, но попробовать можно, в лучшем случае получите картинку с артефактами, в худшем не запустится вообще. Для таких игр как BF4, GTA5 потребуются также функции окружения NT6+, а также 64-битная среда. Здесь как минимум хотелось бы получить валидный DX10/11 API, чтобы запускалось и корректно работало все, что не привередливое к особенным фишкам NT6, тот же сталкер например.
|
 
|
|
29.08.2016, 14:09
Сообщение
#35
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
Путем совместных усилий вместе с BlackWingCat, удалось добавить новые функции экспорта в kernel32.dll win2003, путем перенаправления вызовов на библиотеки враппера. Перенаправление осуществляется непосредственного из нативного kernel32.dll. Это достаточно избыточное решение, но на данный момент другие решения слишком сложные. Данное нововведение обещает получить возможность запускать некоторые NT6-only приложения.
Сообщение отредактировал Svyatpro - 29.08.2016, 14:09 |
 
|
|
29.08.2016, 17:49
Сообщение
#36
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
На счет проги топикстартера, то я применил фикс kernel32.dll описанный BlackWingCat'ом в его блоге, теперь у меня запускаются все приложения с флагом Subsystem 0006 без ошибки " xxxx.exe не является приложением Win32"
Можете почитать о нем в его блоге: |
 
|
|
23.09.2016, 18:28
Сообщение
#37
|
|
Почти Игроман Репутация: 67 Группа: Участник Сообщений: 741 Награды: 4 Регистрация: 01.06.2007 |
Начал войну с Next Car Game Wreckfest
Getticketcount64 решилась патчем GetConsoleScreenBufferInfoEx и SetConsoleScreenBufferInfoEx заменил SetConsolePalette Билд 2015 заработал. свежий требует d3d11.dll |
 
|
|
24.09.2016, 17:43
Сообщение
#38
|
|
Новичок Репутация: 5 Группа: Участник Сообщений: 10 Регистрация: 20.08.2016 |
Начал войну с Next Car Game Wreckfest Getticketcount64 решилась патчем GetConsoleScreenBufferInfoEx и SetConsoleScreenBufferInfoEx заменил SetConsolePalette Билд 2015 заработал. свежий требует d3d11.dll Ну все эти функции можно запихнуть в родной kernel32.dll от ХР, путем расширения таблицы экспорта и перенаправления функций на библиотеку враппера. А вот с полноценной поддержкой DirectX11 пока рано. Я как делаю, я создаю еще одну секцию в библиотеке, например kernel32.dll, делаю ее размером больше чем требует родная таблица экспорта, переношу в новую секцию родную таблицу экспорта и добавляю нужные мне функции путем перенаправления на библиотеку враппера, например GetTickCount64.KERNEL32EX.GetTickCount64. Но это только теория, там много подводных камней, так как просто создать секцию не повредив другие секции вряд ли получится, поэтому приходится переписывать другие секции вместе с моей новой секцией. Но тем не менее, кому интересно могу поделиться результатом своей работы, но именно под Win2003 SP2. Сообщение отредактировал Svyatpro - 24.09.2016, 17:48 |
 
|
|
24.09.2016, 19:20
Сообщение
#39
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
Я думаю править системные библиотеки это не очень хорошая идея. Всё-таки враппер лучше, его можно сделать универсальным. Только надо найти способ подменять DLL-ки при запуске программы, чтобы вручную это не делать.
|
 
|
|
24.09.2016, 19:52
Сообщение
#40
|
|
Продвинутый геймер Репутация: 90 Группа: Участник Сообщений: 395 Награды: 3 Регистрация: 07.04.2014 |
Я думаю, что издеваться над трупом не лучшая идея
-------------------- no more running
|
 
|
|
Текстовая версия | Сейчас: 20.04.2024, 03:04 |