Uwannadie Опубликовано 15 мая, 2010 Поделиться Опубликовано 15 мая, 2010 в связи с обновлением элементов системы защиты сервера запуск клиента не из под Win невозможен Итак, клиент астериоса сломился под натиском геймеров и запустился под Ubuntu|Debian Поэтому для широкой публики напишу гайд по запуску Прежде всего необходим клиент Lineage II Gracia Epilogue для N\A серверов (евпропейская версия) Собственно гайд: 1. Устанавливаем wine sudo add-apt-repository ppa:ubuntu-wine/ppa sudo apt-get update sudo apt-get install wine1.2 2. Качаем с сайта http://dll.ru 2 файла: mscoree.dll и streamci.dll Копируем их в ~/.wine/drive_c/windows/system32 3. Качаем файл kernel32.dll.rar, который собрал DieselMachine Копируем его в /usr/lib/wine/kernel32.dll.so для i386(x32) систем или /usr/lib32/wine/kernel32.dll.so для AMD64(x64) систем 4. обновляем directX, VS2005 redistributable packages, шрифты winetricks vcrun2005 allfonts directx9 5. Заходим в настройки вайна на вкладку Графика и ставим галочку напротив "Эмулировать рабочий стол" и выставляем необходимое разрешение экрана 6. Создаем ярлык и в свойствах запуска ставим "wine "путь к файлу l2.exe" " и наслаждаемся игрой Исходник патча для kernell32.dll.so (для других дистрибутивов) HMODULE hKernel32 = NULL; FARPROC hLoadLibraryW = NULL; LPVOID loadLibraryWStorage = NULL; SIZE_T loadLibraryWSize = 0; HMODULE hWS232 = NULL; FARPROC hWS232Connect = NULL; LPVOID ws232ConnectStorage = NULL; SIZE_T ws232ConnectSize = 0; BOOL WINAPI VirtualProtect( LPVOID addr, SIZE_T size, DWORD new_prot, LPDWORD old_prot) { if(!hKernel32) { CHAR kernel32Name[] = { 'K','e','r','n','e','l','3','2', 0 }; hKernel32 = GetModuleHandleA(kernel32Name); } if(hKernel32 && !hLoadLibraryW) { CHAR loadLibraryWName[] = { 'L','o','a','d','L','i','b','r',' a','r','y','W', 0 }; hLoadLibraryW = GetProcAddress(hKernel32, loadLibraryWName); } if(hLoadLibraryW && ((LPVOID)hLoadLibraryW == addr)) { if(new_prot == 0x40) { if(loadLibraryWStorage) { HeapFree(GetProcessHeap(), 0, loadLibraryWStorage); loadLibraryWStorage = NULL; } loadLibraryWStorage = HeapAlloc(GetProcessHeap(), 0, size); CopyMemory(loadLibraryWStorage, hLoadLibraryW, size); loadLibraryWSize = size; } if(new_prot == 0x80) { if(loadLibraryWStorage && (loadLibraryWSize == size)) { CopyMemory(hLoadLibraryW, loadLibraryWStorage, size); HeapFree(GetProcessHeap(), 0, loadLibraryWStorage); loadLibraryWStorage = NULL; } } } if(!hWS232) { CHAR ws232Name[] = { 'w','s','2','_','3','2', 0 }; hWS232 = GetModuleHandleA(ws232Name); } if(hWS232 && !hWS232Connect) { CHAR connectName[] = { 'c','o','n','n','e','c','t', 0 }; hWS232Connect = GetProcAddress(hWS232, connectName); } if(hWS232Connect && ((LPVOID)hWS232Connect == addr)) { if(new_prot == 0x40) { if(ws232ConnectStorage) { HeapFree(GetProcessHeap(), 0, ws232ConnectStorage); ws232ConnectStorage = NULL; } ws232ConnectStorage = HeapAlloc(GetProcessHeap(), 0, size); CopyMemory(ws232ConnectStorage, hWS232Connect, size); ws232ConnectSize = size; } if(new_prot == 0x80) { if(ws232ConnectStorage && (ws232ConnectSize == size)) { CopyMemory(hWS232Connect, ws232ConnectStorage, size); HeapFree(GetProcessHeap(), 0, ws232ConnectStorage); ws232ConnectStorage = NULL; } } } return VirtualProtectEx( GetCurrentProcess(), addr, size, new_prot, old_prot ); } ©DieselMachine Примечания: В А Ж Н О. ПОСЛЕ ЛЮБОГО АПДЕЙТА WINE НЕОБХОДИМО ЗАНОВО ВЫПОЛНИТЬ ПУНКТ 3. ©rogra чат в игре только английский (русский понимает но не пишет, юзаем .cfg => транслит) нашел способ немного поднять фпс: надо в файле /asterios/asterios.ini увеличить параметр: [L2] CacheSizeMegs но не более 512, т.к. ла2 просто больше не умеет понимать ©Uwannadie Запустил клиент с отключенным compiz'ом, без интерфейса - от 50 до 500 кадров, с интерфейсом - от 20 до 150, разрешение 1920*1080. Вот так удобно отключать\включать compiz, на Ubuntu 10.04: 1. Назначаем комбинации клавиш. В Ubuntu 10.04, это делается так. "СИСТЕМА">"ПАРАМЕТРЫ">"Комбинации клавиш клавиатуры" "Добавить" Имя: metacity Команда: metacity --replace Комбинация клавиш: alt+9 "Добавить" Имя: compiz Команда: compiz --replace Комбинация клавиш: alt+0 2. Теперь, каждый раз перед запуском lineage, нажимаем alt+9(выключаем compiz), а после того как поиграли, нажимаем alt+0(включаем compiz). Также нужно поступать при просмотре фильмов. http://forum.ubuntu..../webby/wink.gif Compiz неблагоприятно влияет на полноэкранные приложения, с ним они больше нагружают компьютер и могут возникать визуальные артефакты. Интересное наблюдение: Настройка "местность", очень сильно влияет на fps на открытых пространствах, разница между максимальной и минимальной 30 fps, а это существенный плюс к минимальному fps, при этом расстояние прорисовки персонажей не меняется, самая дальняя прорисовка персонажей, примерно равна минимальной прорисовке местности, что примечательно, под офтопом, эта настройка если и влияет, то очень мало ©kotago сообщение будет дополнятся в процессе настройки Ссылка на комментарий Поделиться на другие сайты Поделиться
shojebydet Опубликовано 15 мая, 2010 Поделиться Опубликовано 15 мая, 2010 ммм неплохо) лагает больше чем на хп? Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 15 мая, 2010 Автор Поделиться Опубликовано 15 мая, 2010 35 фпс в городе/45-50 в негустонаселенных локах на GF9800GT Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 15 мая, 2010 Автор Поделиться Опубликовано 15 мая, 2010 50-55 в городе, в пустых локах 70-100 в гх 10-15 Ссылка на комментарий Поделиться на другие сайты Поделиться
DieselMachine Опубликовано 16 мая, 2010 Поделиться Опубликовано 16 мая, 2010 С производительностью я посмотрю что можно сделать. Но это будет не скоро, потому что с DirectX/OpenGL и их реализацией под Wine/Linux мне придётся разбираться с нуля. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kasab Опубликовано 16 мая, 2010 Поделиться Опубликовано 16 мая, 2010 плюсанул автора, но надо немного развернуть вопрос . Позволяем Wine отправлять ICMP пакеты: в где прописать обновляем directX, VS2005 redistributable packages: от куда лучше качать тему закрепить бЫ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 16 мая, 2010 Автор Поделиться Опубликовано 16 мая, 2010 все выделенные в цитаты команды пишутся в терминальных клиентах. по-умолчанию в дебиане/убунту стоит Bash winetricks качает все файлы с сайта мелкомягких Ссылка на комментарий Поделиться на другие сайты Поделиться
delivanov Опубликовано 16 мая, 2010 Поделиться Опубликовано 16 мая, 2010 Спасибо за гайд, попробую попозже под 10.04 запустить. А то у меня получилось только под виртуалкой запускать. upd. Сделал всё по гайду, игра запустилась, но в ней полностью отсутствует текст. Поставил шрифты, всё отобразилось. Но не работает там клавиатура. Логин и пароль не напечатать. Подскажите куда копать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 16 мая, 2010 Автор Поделиться Опубликовано 16 мая, 2010 сними выделение с окна ла2 и заново выдели его p.s. русский язык пока не работает, надо учить вайн понимать его Ссылка на комментарий Поделиться на другие сайты Поделиться
delivanov Опубликовано 16 мая, 2010 Поделиться Опубликовано 16 мая, 2010 Спасибо за быстрый ответ. Всё теперь заработало. Огромный респект за гайд Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 16 мая, 2010 Автор Поделиться Опубликовано 16 мая, 2010 прикрутил к вайну поддержку юникода, но толи не до конца прикрутил, толи дело не в этом, но русские символы так и не печатаются p.s: скрин в гх, фпс примерно сопоставим с виндовым P.P.S нашел способ немного поднять фпс: надо в файле /asterios/asterios.ini увеличить параметр: [L2] CacheSizeMegs но не более 512, т.к. ла2 просто больше не умеет понимать Ссылка на комментарий Поделиться на другие сайты Поделиться
MDH Опубликовано 17 мая, 2010 Поделиться Опубликовано 17 мая, 2010 с этой шнягой меньше лагает? что это вобще и для чего она? Ссылка на комментарий Поделиться на другие сайты Поделиться
mept Опубликовано 17 мая, 2010 Поделиться Опубликовано 17 мая, 2010 Спасибо за патч и гайд. Вот только странно, фпс в безлюдном форте и гиране не сильно различается (15-20 и 7-15), когда в винде соответственно 50-60 и 10-20. Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 17 мая, 2010 Автор Поделиться Опубликовано 17 мая, 2010 с этой шнягой меньше лагает? что это вобще и для чего она? указывает размер памяти для кеширования графики Ссылка на комментарий Поделиться на другие сайты Поделиться
Tomoharu Опубликовано 17 мая, 2010 Поделиться Опубликовано 17 мая, 2010 кто знает как тоже самое сделать на Gentoo?? Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 17 мая, 2010 Автор Поделиться Опубликовано 17 мая, 2010 а в чем трудности?) разница в командах консоли и способах установки прог...остальное идентично вчера запускали на слаке и архе Ссылка на комментарий Поделиться на другие сайты Поделиться
PEOW Опубликовано 18 мая, 2010 Поделиться Опубликовано 18 мая, 2010 Арч, вайн из гита - не работает Ссылка на комментарий Поделиться на другие сайты Поделиться
Tomoharu Опубликовано 18 мая, 2010 Поделиться Опубликовано 18 мая, 2010 трудность в том что я его ставлю а после апдейта ничего не происходит, хз мб ось кривая но знач не у меня одного она кривая, ближе к лету переставлю на новую посмотрим что будет Ссылка на комментарий Поделиться на другие сайты Поделиться
Uwannadie Опубликовано 18 мая, 2010 Автор Поделиться Опубликовано 18 мая, 2010 попробуй логи глянуть WINEDEBUG=+relay wine "path to l2.exe" &> ~/log.txt Ссылка на комментарий Поделиться на другие сайты Поделиться
Отстаньте Опубликовано 18 мая, 2010 Поделиться Опубликовано 18 мая, 2010 Итак, клиент астериоса сломился под натиском геймеров и запустился под Ubuntu|Debian Поэтому для широкой публики напишу гайд по запуску Прежде всего необходим клиент Lineage II Gracia Epilogue для N\A серверов (евпропейская версия) Собственно гайд: 1. Устанавливаем wine sudo apt-get wine 2. Качаем с сайта http://dll.ru 2 файла: mscoree.dll и streamci.dll Копируем их в ~/.wine/drive_c/windows/system32 3. Качаем файл kernel32.dll.rar, который собрал DieselMachine Копируем его в /usr/lib/wine/kernel32.dll.so для i386(x32) систем или /usr/lib32/wine/kernel32.dll.so для AMD64(x64) систем 4. Позволяем Wine отправлять ICMP пакеты: sudo setcap cap_net_raw+eip /usr/bin/wine sudo setcap cap_net_raw+eip /usr/bin/wine-preloader 5. в файл ~/.wine/user.reg добавляем в конец: [Software\\Wine\\DllOverrides] 1196330736 "d3d8"="native" "d3d9"="native" "d3dim"="native" "d3dx8"="native" "d3dxof"="native" "dciman32"="native" "ddrawex"="native" "devenum"="native" "dinput"="native" "dinput8"="native" "dmband"="native" "dmcompos"="native" "dmime"="native" "dmloader"="native" "dmscript"="native" "dmstyle"="native" "dmsynth"="native" "dmusic"="native" "dplay"="native" "dplayx"="native" "dpnaddr"="native" "dpnet"="native" "dpnhpast"="native" "dswave"="native" "dxdiagn"="native" "mscoree"="native" "quartz"="native" "streamci"="native" 6. устанавливаем winetricks wget http://www.kegel.com/wine/winetricks chmod +x winetricks sudo mv winetricks /usr/bin - указать пароль на рут 7. обновляем directX, VS2005 redistributable packages winetricks vcrun2005 vcrun2005sp1 directx9 8. После установки ДиректХ - делаем следующее в терминале пропишите winecfg переходим на вкладку "Библиотеки" Нажимаем "Редактировать" и выставляем "Встроенная (wine)" у следующих библиотек: d3d8, d3d9, ddrawex, dinput, dinput8 8. Заходим в настройки вайна на вкладку Графика и ставим галочку напротив "Эмулировать рабочий стол" и выставляем необходимое разрешение экрана 9. Создаем ярлык и в свойствах запуска ставим "wine "путь к файлу l2.exe" " и наслаждаемся игрой сообщение будет дополнятся в процессе настройки искреннее спасибо, все запустилось и благополучно работает. p.s. окончательно прощай хр! 8) Ссылка на комментарий Поделиться на другие сайты Поделиться
Begotten Опубликовано 18 мая, 2010 Поделиться Опубликовано 18 мая, 2010 ммм.... пардон за оффтоп, современные пользователи никсов (после выхода ХР) - все программисты/сисадмины и т.д.? Чем для вас обусловленнно использование никсов дома? Доводы о производительности давайте исключим сразу. Ссылка на комментарий Поделиться на другие сайты Поделиться
mept Опубликовано 18 мая, 2010 Поделиться Опубликовано 18 мая, 2010 ммм.... пардон за оффтоп, современные пользователи никсов (после выхода ХР) - все программисты/сисадмины и т.д.? Нет. Чем для вас обусловленнно использование никсов дома? Доводы о производительности давайте исключим сразу. Давайте не будем тут разводить срач, весь интернет завален подобными темами. Ссылка на комментарий Поделиться на другие сайты Поделиться
DieselMachine Опубликовано 18 мая, 2010 Поделиться Опубликовано 18 мая, 2010 Арч, вайн из гита - не работает На вайн надо наложить мой патч. Либо бери готовый kernel32.dll.so из первого поста, либо компиляй сам. Для этого надо в /wine/dlls/kernel32/virtual.c заменить функцию VirtualProtect на (это и есть мой патч) HMODULE hKernel32 = NULL; FARPROC hLoadLibraryW = NULL; LPVOID loadLibraryWStorage = NULL; SIZE_T loadLibraryWSize = 0; HMODULE hWS232 = NULL; FARPROC hWS232Connect = NULL; LPVOID ws232ConnectStorage = NULL; SIZE_T ws232ConnectSize = 0; BOOL WINAPI VirtualProtect( LPVOID addr, SIZE_T size, DWORD new_prot, LPDWORD old_prot) { if(!hKernel32) { CHAR kernel32Name[] = { 'K','e','r','n','e','l','3','2', 0 }; hKernel32 = GetModuleHandleA(kernel32Name); } if(hKernel32 && !hLoadLibraryW) { CHAR loadLibraryWName[] = { 'L','o','a','d','L','i','b','r','a','r','y','W', 0 }; hLoadLibraryW = GetProcAddress(hKernel32, loadLibraryWName); } if(hLoadLibraryW && ((LPVOID)hLoadLibraryW == addr)) { if(new_prot == 0x40) { if(loadLibraryWStorage) { HeapFree(GetProcessHeap(), 0, loadLibraryWStorage); loadLibraryWStorage = NULL; } loadLibraryWStorage = HeapAlloc(GetProcessHeap(), 0, size); CopyMemory(loadLibraryWStorage, hLoadLibraryW, size); loadLibraryWSize = size; } if(new_prot == 0x80) { if(loadLibraryWStorage && (loadLibraryWSize == size)) { CopyMemory(hLoadLibraryW, loadLibraryWStorage, size); HeapFree(GetProcessHeap(), 0, loadLibraryWStorage); loadLibraryWStorage = NULL; } } } if(!hWS232) { CHAR ws232Name[] = { 'w','s','2','_','3','2', 0 }; hWS232 = GetModuleHandleA(ws232Name); } if(hWS232 && !hWS232Connect) { CHAR connectName[] = { 'c','o','n','n','e','c','t', 0 }; hWS232Connect = GetProcAddress(hWS232, connectName); } if(hWS232Connect && ((LPVOID)hWS232Connect == addr)) { if(new_prot == 0x40) { if(ws232ConnectStorage) { HeapFree(GetProcessHeap(), 0, ws232ConnectStorage); ws232ConnectStorage = NULL; } ws232ConnectStorage = HeapAlloc(GetProcessHeap(), 0, size); CopyMemory(ws232ConnectStorage, hWS232Connect, size); ws232ConnectSize = size; } if(new_prot == 0x80) { if(ws232ConnectStorage && (ws232ConnectSize == size)) { CopyMemory(hWS232Connect, ws232ConnectStorage, size); HeapFree(GetProcessHeap(), 0, ws232ConnectStorage); ws232ConnectStorage = NULL; } } } return VirtualProtectEx( GetCurrentProcess(), addr, size, new_prot, old_prot ); } трудность в том что я его ставлю а после апдейта ничего не происходит, хз мб ось кривая но знач не у меня одного она кривая, ближе к лету переставлю на новую посмотрим что будет После какого апдейта у тебя ничего не происходит? Вайн ты откуда поставил? Какой он версии? Интересно узнать, какой будет прирост производительности на Gentoo. Так что запускай давай. Чем для вас обусловленнно использование никсов дома? Доводы о производительности давайте исключим сразу. Во-первых моя винда засралась так, что загружалась минуты три. Во-вторых её окончательно сожрали вирусы, что месяц назад даже линейка перестала запускаться. Вот тогда-то я и решил завести-таки её на линуксе. И в-третьих, мне просто интересно как программисту покопаться в этой системе. Ссылка на комментарий Поделиться на другие сайты Поделиться
zGnom Опубликовано 19 мая, 2010 Поделиться Опубликовано 19 мая, 2010 Ребята сделал все по мануалу только kernel32.dll.so оставил нативную OpenSuSe с вашей ругался err:module:load_builtin_dll failed to load .so lib for builtin L"kernel32.dll": /lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/../lib/wine/kernel32.dll.so) Вайн запустился Asterios.exe - запустился прошел (правда с кодировкой что то у меня по умолчанию UTF8) А потом пишет нельзя запускать L2 подвиртуальной машиной .... Это проблему решит если Я перекомпилю себе kernel32.dll.so с вашими патчем ??? (заранее спасибо) Ссылка на комментарий Поделиться на другие сайты Поделиться
DieselMachine Опубликовано 19 мая, 2010 Поделиться Опубликовано 19 мая, 2010 А потом пишет нельзя запускать L2 подвиртуальной машиной Похоже, что у тебя вайн старый, нужен 1.1.44 Если у тебя libc другой версии, то тогда да, сам компиляй, должно помочь Ссылка на комментарий Поделиться на другие сайты Поделиться
zGnom Опубликовано 19 мая, 2010 Поделиться Опубликовано 19 мая, 2010 Похоже, что у тебя вайн старый, нужен 1.1.44 Если у тебя libc другой версии, то тогда да, сам компиляй, должно помочь Обновил Wine Вот что получилось ??? Ссылка на комментарий Поделиться на другие сайты Поделиться
DieselMachine Опубликовано 19 мая, 2010 Поделиться Опубликовано 19 мая, 2010 У меня тоже такое было, воспроизводится редко и нестабильно. Не могу сказать в чём проблема Ссылка на комментарий Поделиться на другие сайты Поделиться
Apocaliptis Опубликовано 20 мая, 2010 Поделиться Опубликовано 20 мая, 2010 Всем привет. давно пытаюсь запустить линягу под убунтой. Кучу мануалов перечитал. Этот пока вроде как самый полный. Значит вот суть проблеммы: Запускаю я апдейтер. Проходит апдейт. жму кнопку старт. И все. псолютно ничего не происходит. Wine обновил стоит версии 1.1.44. Попробовал зпуститьчерез "WINEDEBUG=+relay wine "path to l2.exe" &> ~/log.txt". Уже кое-чего получилось. Окошко загрузки линяги (то что фигурное в самом начале) появляется, что-то грузится, а потом просто выбивает иксы. И выбрасывает меня на страничку логина. Тоесть иксы полность перегружаются. После такой процедуры остается лог 190 метровый. Что в нем смотреть - понятия не имею. Могу его куда-нибудь выложить или поиском найти в нем что-то и выложить сюда. Помогите пожалуйста разобраться. Ссылка на комментарий Поделиться на другие сайты Поделиться
DieselMachine Опубликовано 20 мая, 2010 Поделиться Опубликовано 20 мая, 2010 Если ты внимательно читал первый пост, то там в пункте 3 написано, что надо после установки вайна заменить файл kernel32.dll.so на тот что в аттаче лежит. Это решит твою проблему. Ссылка на комментарий Поделиться на другие сайты Поделиться
ГИДРОБЛАСТ Опубликовано 20 мая, 2010 Поделиться Опубликовано 20 мая, 2010 качаю дебиан, прощай окно ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.