Всем 0/
Клиент от lazybloke 17.08.2013, wine 1.7.0. Доставить потребовалось только mfc42 (winetricks mfc42).
Всё воркает. Со фар.
Всем 0/
Клиент от lazybloke 17.08.2013, wine 1.7.0. Доставить потребовалось только mfc42 (winetricks mfc42).
Всё воркает. Со фар.
Всем 0/
Клиент от lazybloke 17.08.2013, wine 1.7.0. Доставить потребовалось только mfc42 (winetricks mfc42).
Всё воркает. Со фар.
orizzonte, вы не в состоянии закомментить одну строку и перекомпилить одну либу?
orizzonte, вы не в состоянии закомментить одну строку и перекомпилить одну либу?
Всё точно так и есть, как сказал ruro. Без функции работает феерично.
Распаковываете исходники, открываете файл dlls/ntdll/ntdll.spec и комментируете символом # строку @ stub ZwSetLdtEntries. Компилите ntdll. Профит.
Скорость запуска феерична, да.
P.S. Вечно, как ночь, так меня несёт куда не надо -_-
Исправленная ntdll.dll.so, скомпиленная под i686: ntdll.dll.so.
Оверрайдить ntdll нельзя. Бекапим-копипастим в /usr/lib/wine/ или собираем обёртку.
Так как вместо реальной функции в ntdll стоит заглушка - можно, в принципе, безбоязнено заместить либу в /usr/lib/wine/.
Всё точно так и есть, как сказал ruro. Без функции работает феерично.
Распаковываете исходники, открываете файл dlls/ntdll/ntdll.spec и комментируете символом # строку @ stub ZwSetLdtEntries. Компилите ntdll. Профит.
Скорость запуска феерична, да.
P.S. Вечно, как ночь, так меня несёт куда не надо -_-
Исправленная ntdll.dll.so, скомпиленная под i686: ntdll.dll.so.
Оверрайдить ntdll нельзя. Бекапим-копипастим в /usr/lib/wine/ или собираем обёртку.
Так как вместо реальной функции в ntdll стоит заглушка - можно, в принципе, безбоязнено заместить либу в /usr/lib/wine/.
orizzonte, вот ведь нехорошие разработчики руро, а! Ведь вся документация в ntdll.dll лежит к мсдн в полном объёме, но они специально заюзали единственную недокументированную или устаревшую или ещё какую функцию ZwSetLdtEntries в ntdll.dll! Пишут руро под вайн и при этом используют функции, которые там не реализованы! Вот нубы! xD
orizzonte, вот ведь нехорошие разработчики руро, а! Ведь вся документация в ntdll.dll лежит к мсдн в полном объёме, но они специально заюзали единственную недокументированную или устаревшую или ещё какую функцию ZwSetLdtEntries в ntdll.dll! Пишут руро под вайн и при этом используют функции, которые там не реализованы! Вот нубы! xD
orizzonte, спасибо за информацию. На тот момент мне было лениво смотреть статистику/ченджлог/исходники (по) ntdll.dll вайна на предмет данной функции: была она и её выпилили в .11 - .13 или её вообще там и не было никогда; поэтому однозначно заключить какая из команд разработчиков виновата я не мог.
Однако, необоснованых обвинений я, увы, не люблю больше, чем ленюсь, поэтому я посмотрел куда следует и выяснил, что данная функция не реализована командой разработчиков wine. Если вас интересует скорейшее решение проблемы - пишите в инстанции, например.
За статью спасибо - кому-нибудь будет полезно её почитать.
orizzonte, спасибо за информацию. На тот момент мне было лениво смотреть статистику/ченджлог/исходники (по) ntdll.dll вайна на предмет данной функции: была она и её выпилили в .11 - .13 или её вообще там и не было никогда; поэтому однозначно заключить какая из команд разработчиков виновата я не мог.
Однако, необоснованых обвинений я, увы, не люблю больше, чем ленюсь, поэтому я посмотрел куда следует и выяснил, что данная функция не реализована командой разработчиков wine. Если вас интересует скорейшее решение проблемы - пишите в инстанции, например.
За статью спасибо - кому-нибудь будет полезно её почитать.
Только что с помощью скрипта поставил клиент от Lazybloke датированный 2011-02-11. Версия wine - 1.3.13. После запуска появилось новое окно с логином и паролем, ввёл. Далее апдейтер без проблем выкачал несколько патчей, патчер отработал так же без проишествий. После запуска непосредственно уже клиента оно сообщило, что я ввёл неверную комбинацию логина и пароля. Далее клиент вылетел.
Теперь запускаем клиент без WINEDEBUG=-all и видим следующее:
[code:3bm7gv4r]err:module:find_forwarded_export function not found for forward 'msvcrt._except_handler4_common' used by L"C:\windows\system32\msvcr90.dll". If you are using builtin L"msvcr90.dll", try using the native one instead.
...
wine: Call from 0x7ef94f55 to unimplemented function MSVCR90.dll._initterm_e, aborting[/code:3bm7gv4r]
Соответственно этому указанию ставим либу либо руками либо через winetricks:
env WINEPREFIX="$HOME/.wine_motr" winetricks vcrun2008
Запускаем клиент. На счёт либы всё спокойно. Клиент запускается, отркывается чарселект, но после выбора персонажа клиент крашится.
! wine: Call from 0x7ef88fdf to unimplemented function ntdll.dll.ZwSetLdtEntries, aborting
! wine: Unimplemented function ntdll.dll.ZwSetLdtEntries called at address 0x7ef88fdf (thread 0025), starting debugger...
! Unhandled exception: unimplemented function ntdll.dll.ZwSetLdtEntries called in 32-bit code (0x7ef88fdf).
! err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
! Register dump:
! CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
! EIP:7ef88fdf ESP:0033f5d8 EBP:0033f63c EFLAGS:00200212( - -- I -A- - )
! EAX:7efcf033 EBX:7efe3ff4 ECX:7efcdd60 EDX:000000c0
! ESI:0033f5e4 EDI:000000dc
! Stack dump:
! 0x0033f5d8: 00000000 000a0009 7efe3ff4 80000100
! 0x0033f5e8: 00000001 00000000 7ef88fdf 00000002
! 0x0033f5f8: 7efcdd60 7efcf033 001104d8 00000002
! 0x0033f608: 7ffd8c00 0033f650 00007dac 00000000
! 0x0033f618: 00000004 00000000 80010001 7ef60000
! 0x0033f628: 0033f648 0033f65c 7edcb0c3 80010001
! Backtrace:
! =>0 0x7ef88fdf __wine_spec_unimplemented_stub+0x4f() in ntdll (0x0033f63c)
! 1 0x7ef6db2d in ntdll (+0xdb2c) (0x0033f63c)
! 2 0x80000100 (0x0033f6a0)
! 3 0x00475cf8 in ruro (+0x75cf7) (0x0033f6dc)
! 4 0x004722d2 in ruro (+0x722d1) (0x0033fc5c)
! 5 0x00472e5d in ruro (+0x72e5c) (0x0033fc7c)
! 6 0x0047435f in ruro (+0x7435e) (0x0033fe00)
! 7 0x00478078 in ruro (+0x78077) (0x0033fe90)
! 8 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fea8)
! 9 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fee8)
! 10 0x7edd426b in kernel32 (+0x4426a) (0x0033fef8)
! 11 0x7efb811b call_thread_entry_point+0x6f() in ntdll (0x0033ffc8)
! 12 0x7ef9531e in ntdll (+0x3531d) (0x0033ffe8)
! 13 0xb762ebe5 wine_call_on_stack+0x1c() in libwine.so.1 (0x00000001)
! 0x7ef88fdf __wine_spec_unimplemented_stub+0x4f in ntdll: subl $4,%esp
! Modules:
! Module Address Debug info Name (76 modules)
! PE 400000- 520000 Export ruro
! ELF 7bf00000-7bf04000 Deferred <wine-loader>
! ELF 7daa6000-7db00000 Deferred dbghelp<elf>
! -PE 7dab0000-7db00000 \ dbghelp
! ELF 7dcc3000-7dcfa000 Deferred libjpeg.so.8
! ELF 7dd17000-7dd93000 Deferred windowscodecs<elf>
! -PE 7dd30000-7dd93000 \ windowscodecs
! ELF 7dd93000-7dda9000 Deferred psapi<elf>
! -PE 7dda0000-7dda9000 \ psapi
! ELF 7dda9000-7de90000 Deferred oleaut32<elf>
! -PE 7ddc0000-7de90000 \ oleaut32
! ELF 7debb000-7df22000 Deferred gdiplus<elf>
! -PE 7ded0000-7df22000 \ gdiplus
! ELF 7df22000-7df3b000 Deferred imagehlp<elf>
! -PE 7df30000-7df3b000 \ imagehlp
! ELF 7df3b000-7df52000 Deferred snmpapi<elf>
! -PE 7df40000-7df52000 \ snmpapi
! ELF 7df7f000-7dff2000 Deferred rpcrt4<elf>
! -PE 7df90000-7dff2000 \ rpcrt4
! ELF 7dff2000-7e0ed000 Deferred ole32<elf>
! -PE 7e010000-7e0ed000 \ ole32
! ELF 7e109000-7e13c000 Deferred uxtheme<elf>
! -PE 7e110000-7e13c000 \ uxtheme
! ELF 7e13c000-7e228000 Deferred comctl32<elf>
! -PE 7e150000-7e228000 \ comctl32
! ELF 7e228000-7e41f000 Deferred shell32<elf>
! -PE 7e240000-7e41f000 \ shell32
! ELF 7e41f000-7e481000 Deferred shlwapi<elf>
! -PE 7e430000-7e481000 \ shlwapi
! ELF 7e481000-7e4a5000 Deferred mpr<elf>
! -PE 7e490000-7e4a5000 \ mpr
! ELF 7e4a5000-7e509000 Deferred wininet<elf>
! -PE 7e4b0000-7e509000 \ wininet
! ELF 7e509000-7e50f000 Deferred libxfixes.so.3
! ELF 7e50f000-7e519000 Deferred libxcursor.so.1
! ELF 7e519000-7e521000 Deferred libxrandr.so.2
! ELF 7e521000-7e52b000 Deferred libxrender.so.1
! ELF 7e52b000-7e531000 Deferred libxxf86vm.so.1
! ELF 7e531000-7e552000 Deferred imm32<elf>
! -PE 7e540000-7e552000 \ imm32
! ELF 7e552000-7e56d000 Deferred libxcb.so.1
! ELF 7e56d000-7e585000 Deferred libice.so.6
! ELF 7e585000-7e69c000 Deferred libx11.so.6
! ELF 7e69c000-7e6ab000 Deferred libxext.so.6
! ELF 7e6ab000-7e6b4000 Deferred libsm.so.6
! ELF 7e6b4000-7e75b000 Deferred winex11<elf>
! -PE 7e6c0000-7e75b000 \ winex11
! ELF 7e75b000-7e770000 Deferred libz.so.1
! ELF 7e770000-7e7f3000 Deferred libfreetype.so.6
! ELF 7e810000-7e86b000 Deferred advapi32<elf>
! -PE 7e820000-7e86b000 \ advapi32
! ELF 7e86b000-7e8f4000 Deferred gdi32<elf>
! -PE 7e880000-7e8f4000 \ gdi32
! ELF 7e8f4000-7ea21000 Deferred user32<elf>
! -PE 7e910000-7ea21000 \ user32
! ELF 7ea21000-7ea2d000 Deferred libnss_files.so.2
! ELF 7ea2d000-7ea38000 Deferred libnss_nis.so.2
! ELF 7ea38000-7ea40000 Deferred libnss_compat.so.2
! ELF 7ea40000-7ea44000 Deferred libxcomposite.so.1
! ELF 7ea44000-7ea5d000 Deferred version<elf>
! -PE 7ea50000-7ea5d000 \ version
! ELF 7ed7b000-7ef07000 Dwarf kernel32<elf>
! -PE 7ed90000-7ef07000 \ kernel32
! ELF 7ef07000-7ef2d000 Deferred libm.so.6
! ELF 7ef2d000-7ef33000 Deferred libxdmcp.so.6
! ELF 7ef33000-7ef4a000 Deferred libnsl.so.1
! ELF 7ef4a000-7f000000 Dwarf ntdll<elf>
! -PE 7ef60000-7f000000 \ ntdll
! ELF b74a1000-b74a5000 Deferred libxau.so.6
! ELF b74a7000-b74ab000 Deferred libdl.so.2
! ELF b74ab000-b75f0000 Deferred libc.so.6
! ELF b75f0000-b7609000 Deferred libpthread.so.0
! ELF b7621000-b7626000 Deferred libuuid.so.1
! ELF b7626000-b7767000 Dwarf libwine.so.1
! ELF b7768000-b7786000 Deferred ld-linux.so.2
! ELF b7786000-b7787000 Deferred [vdso].so
! Threads:
! process tid prio (all id:s are in hex)
! 0000000e services.exe
! 0000001a 0
! 00000014 0
! 00000010 0
! 0000000f 0
! 00000011 winedevice.exe
! 00000016 0
! 00000013 0
! 00000012 0
! 00000017 plugplay.exe
! 0000001c 0
! 00000019 0
! 00000018 0
! 0000001d explorer.exe
! 0000001e 0
! 00000024 (D) C:\Games\MOTR_Lazybloke\ruro.exe
! 00000027 1
! 00000026 0
! 00000025 0 <==
! 00000028 Ragexe.exe
! 00000031 0
! 00000030 0
! 0000002f 15
! 0000002e 15
! 0000002d 15
! 00000029 0
! Backtrace:
! =>0 0x7ef88fdf __wine_spec_unimplemented_stub+0x4f() in ntdll (0x0033f63c)
! 1 0x7ef6db2d in ntdll (+0xdb2c) (0x0033f63c)
! 2 0x80000100 (0x0033f6a0)
! 3 0x00475cf8 in ruro (+0x75cf7) (0x0033f6dc)
! 4 0x004722d2 in ruro (+0x722d1) (0x0033fc5c)
! 5 0x00472e5d in ruro (+0x72e5c) (0x0033fc7c)
! 6 0x0047435f in ruro (+0x7435e) (0x0033fe00)
! 7 0x00478078 in ruro (+0x78077) (0x0033fe90)
! 8 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fea8)
! 9 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fee8)
! 10 0x7edd426b in kernel32 (+0x4426a) (0x0033fef8)
! 11 0x7efb811b call_thread_entry_point+0x6f() in ntdll (0x0033ffc8)
! 12 0x7ef9531e in ntdll (+0x3531d) (0x0033ffe8)
! 13 0xb762ebe5 wine_call_on_stack+0x1c() in libwine.so.1 (0x00000001)
! wine: Call from 0x7ef88fdf to unimplemented function ntdll.dll.ZwSetLdtEntries, aborting
! wine: Call from 0x7ef88fdf to unimplemented function ntdll.dll.ZwSetLdtEntries, aborting
С увереностью можно заключить, что на данную дату, клиент с патчами от, вроде бы, 15 февраля не работает под вайном версии 1.3.13. Можете попробовать предыдущие версии вайна - может и заработает. Мне это делать лениво.
Только что с помощью скрипта поставил клиент от Lazybloke датированный 2011-02-11. Версия wine - 1.3.13. После запуска появилось новое окно с логином и паролем, ввёл. Далее апдейтер без проблем выкачал несколько патчей, патчер отработал так же без проишествий. После запуска непосредственно уже клиента оно сообщило, что я ввёл неверную комбинацию логина и пароля. Далее клиент вылетел.
Теперь запускаем клиент без WINEDEBUG=-all и видим следующее:
[code:3bm7gv4r]err:module:find_forwarded_export function not found for forward 'msvcrt._except_handler4_common' used by L"C:\windows\system32\msvcr90.dll". If you are using builtin L"msvcr90.dll", try using the native one instead.
...
wine: Call from 0x7ef94f55 to unimplemented function MSVCR90.dll._initterm_e, aborting[/code:3bm7gv4r]
Соответственно этому указанию ставим либу либо руками либо через winetricks:
env WINEPREFIX="$HOME/.wine_motr" winetricks vcrun2008
Запускаем клиент. На счёт либы всё спокойно. Клиент запускается, отркывается чарселект, но после выбора персонажа клиент крашится.
! wine: Call from 0x7ef88fdf to unimplemented function ntdll.dll.ZwSetLdtEntries, aborting
! wine: Unimplemented function ntdll.dll.ZwSetLdtEntries called at address 0x7ef88fdf (thread 0025), starting debugger...
! Unhandled exception: unimplemented function ntdll.dll.ZwSetLdtEntries called in 32-bit code (0x7ef88fdf).
! err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
! Register dump:
! CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
! EIP:7ef88fdf ESP:0033f5d8 EBP:0033f63c EFLAGS:00200212( - -- I -A- - )
! EAX:7efcf033 EBX:7efe3ff4 ECX:7efcdd60 EDX:000000c0
! ESI:0033f5e4 EDI:000000dc
! Stack dump:
! 0x0033f5d8: 00000000 000a0009 7efe3ff4 80000100
! 0x0033f5e8: 00000001 00000000 7ef88fdf 00000002
! 0x0033f5f8: 7efcdd60 7efcf033 001104d8 00000002
! 0x0033f608: 7ffd8c00 0033f650 00007dac 00000000
! 0x0033f618: 00000004 00000000 80010001 7ef60000
! 0x0033f628: 0033f648 0033f65c 7edcb0c3 80010001
! Backtrace:
! =>0 0x7ef88fdf __wine_spec_unimplemented_stub+0x4f() in ntdll (0x0033f63c)
! 1 0x7ef6db2d in ntdll (+0xdb2c) (0x0033f63c)
! 2 0x80000100 (0x0033f6a0)
! 3 0x00475cf8 in ruro (+0x75cf7) (0x0033f6dc)
! 4 0x004722d2 in ruro (+0x722d1) (0x0033fc5c)
! 5 0x00472e5d in ruro (+0x72e5c) (0x0033fc7c)
! 6 0x0047435f in ruro (+0x7435e) (0x0033fe00)
! 7 0x00478078 in ruro (+0x78077) (0x0033fe90)
! 8 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fea8)
! 9 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fee8)
! 10 0x7edd426b in kernel32 (+0x4426a) (0x0033fef8)
! 11 0x7efb811b call_thread_entry_point+0x6f() in ntdll (0x0033ffc8)
! 12 0x7ef9531e in ntdll (+0x3531d) (0x0033ffe8)
! 13 0xb762ebe5 wine_call_on_stack+0x1c() in libwine.so.1 (0x00000001)
! 0x7ef88fdf __wine_spec_unimplemented_stub+0x4f in ntdll: subl $4,%esp
! Modules:
! Module Address Debug info Name (76 modules)
! PE 400000- 520000 Export ruro
! ELF 7bf00000-7bf04000 Deferred <wine-loader>
! ELF 7daa6000-7db00000 Deferred dbghelp<elf>
! -PE 7dab0000-7db00000 \ dbghelp
! ELF 7dcc3000-7dcfa000 Deferred libjpeg.so.8
! ELF 7dd17000-7dd93000 Deferred windowscodecs<elf>
! -PE 7dd30000-7dd93000 \ windowscodecs
! ELF 7dd93000-7dda9000 Deferred psapi<elf>
! -PE 7dda0000-7dda9000 \ psapi
! ELF 7dda9000-7de90000 Deferred oleaut32<elf>
! -PE 7ddc0000-7de90000 \ oleaut32
! ELF 7debb000-7df22000 Deferred gdiplus<elf>
! -PE 7ded0000-7df22000 \ gdiplus
! ELF 7df22000-7df3b000 Deferred imagehlp<elf>
! -PE 7df30000-7df3b000 \ imagehlp
! ELF 7df3b000-7df52000 Deferred snmpapi<elf>
! -PE 7df40000-7df52000 \ snmpapi
! ELF 7df7f000-7dff2000 Deferred rpcrt4<elf>
! -PE 7df90000-7dff2000 \ rpcrt4
! ELF 7dff2000-7e0ed000 Deferred ole32<elf>
! -PE 7e010000-7e0ed000 \ ole32
! ELF 7e109000-7e13c000 Deferred uxtheme<elf>
! -PE 7e110000-7e13c000 \ uxtheme
! ELF 7e13c000-7e228000 Deferred comctl32<elf>
! -PE 7e150000-7e228000 \ comctl32
! ELF 7e228000-7e41f000 Deferred shell32<elf>
! -PE 7e240000-7e41f000 \ shell32
! ELF 7e41f000-7e481000 Deferred shlwapi<elf>
! -PE 7e430000-7e481000 \ shlwapi
! ELF 7e481000-7e4a5000 Deferred mpr<elf>
! -PE 7e490000-7e4a5000 \ mpr
! ELF 7e4a5000-7e509000 Deferred wininet<elf>
! -PE 7e4b0000-7e509000 \ wininet
! ELF 7e509000-7e50f000 Deferred libxfixes.so.3
! ELF 7e50f000-7e519000 Deferred libxcursor.so.1
! ELF 7e519000-7e521000 Deferred libxrandr.so.2
! ELF 7e521000-7e52b000 Deferred libxrender.so.1
! ELF 7e52b000-7e531000 Deferred libxxf86vm.so.1
! ELF 7e531000-7e552000 Deferred imm32<elf>
! -PE 7e540000-7e552000 \ imm32
! ELF 7e552000-7e56d000 Deferred libxcb.so.1
! ELF 7e56d000-7e585000 Deferred libice.so.6
! ELF 7e585000-7e69c000 Deferred libx11.so.6
! ELF 7e69c000-7e6ab000 Deferred libxext.so.6
! ELF 7e6ab000-7e6b4000 Deferred libsm.so.6
! ELF 7e6b4000-7e75b000 Deferred winex11<elf>
! -PE 7e6c0000-7e75b000 \ winex11
! ELF 7e75b000-7e770000 Deferred libz.so.1
! ELF 7e770000-7e7f3000 Deferred libfreetype.so.6
! ELF 7e810000-7e86b000 Deferred advapi32<elf>
! -PE 7e820000-7e86b000 \ advapi32
! ELF 7e86b000-7e8f4000 Deferred gdi32<elf>
! -PE 7e880000-7e8f4000 \ gdi32
! ELF 7e8f4000-7ea21000 Deferred user32<elf>
! -PE 7e910000-7ea21000 \ user32
! ELF 7ea21000-7ea2d000 Deferred libnss_files.so.2
! ELF 7ea2d000-7ea38000 Deferred libnss_nis.so.2
! ELF 7ea38000-7ea40000 Deferred libnss_compat.so.2
! ELF 7ea40000-7ea44000 Deferred libxcomposite.so.1
! ELF 7ea44000-7ea5d000 Deferred version<elf>
! -PE 7ea50000-7ea5d000 \ version
! ELF 7ed7b000-7ef07000 Dwarf kernel32<elf>
! -PE 7ed90000-7ef07000 \ kernel32
! ELF 7ef07000-7ef2d000 Deferred libm.so.6
! ELF 7ef2d000-7ef33000 Deferred libxdmcp.so.6
! ELF 7ef33000-7ef4a000 Deferred libnsl.so.1
! ELF 7ef4a000-7f000000 Dwarf ntdll<elf>
! -PE 7ef60000-7f000000 \ ntdll
! ELF b74a1000-b74a5000 Deferred libxau.so.6
! ELF b74a7000-b74ab000 Deferred libdl.so.2
! ELF b74ab000-b75f0000 Deferred libc.so.6
! ELF b75f0000-b7609000 Deferred libpthread.so.0
! ELF b7621000-b7626000 Deferred libuuid.so.1
! ELF b7626000-b7767000 Dwarf libwine.so.1
! ELF b7768000-b7786000 Deferred ld-linux.so.2
! ELF b7786000-b7787000 Deferred [vdso].so
! Threads:
! process tid prio (all id:s are in hex)
! 0000000e services.exe
! 0000001a 0
! 00000014 0
! 00000010 0
! 0000000f 0
! 00000011 winedevice.exe
! 00000016 0
! 00000013 0
! 00000012 0
! 00000017 plugplay.exe
! 0000001c 0
! 00000019 0
! 00000018 0
! 0000001d explorer.exe
! 0000001e 0
! 00000024 (D) C:\Games\MOTR_Lazybloke\ruro.exe
! 00000027 1
! 00000026 0
! 00000025 0 <==
! 00000028 Ragexe.exe
! 00000031 0
! 00000030 0
! 0000002f 15
! 0000002e 15
! 0000002d 15
! 00000029 0
! Backtrace:
! =>0 0x7ef88fdf __wine_spec_unimplemented_stub+0x4f() in ntdll (0x0033f63c)
! 1 0x7ef6db2d in ntdll (+0xdb2c) (0x0033f63c)
! 2 0x80000100 (0x0033f6a0)
! 3 0x00475cf8 in ruro (+0x75cf7) (0x0033f6dc)
! 4 0x004722d2 in ruro (+0x722d1) (0x0033fc5c)
! 5 0x00472e5d in ruro (+0x72e5c) (0x0033fc7c)
! 6 0x0047435f in ruro (+0x7435e) (0x0033fe00)
! 7 0x00478078 in ruro (+0x78077) (0x0033fe90)
! 8 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fea8)
! 9 0x7edd1cec call_process_entry+0xb() in kernel32 (0x0033fee8)
! 10 0x7edd426b in kernel32 (+0x4426a) (0x0033fef8)
! 11 0x7efb811b call_thread_entry_point+0x6f() in ntdll (0x0033ffc8)
! 12 0x7ef9531e in ntdll (+0x3531d) (0x0033ffe8)
! 13 0xb762ebe5 wine_call_on_stack+0x1c() in libwine.so.1 (0x00000001)
! wine: Call from 0x7ef88fdf to unimplemented function ntdll.dll.ZwSetLdtEntries, aborting
! wine: Call from 0x7ef88fdf to unimplemented function ntdll.dll.ZwSetLdtEntries, aborting
С увереностью можно заключить, что на данную дату, клиент с патчами от, вроде бы, 15 февраля не работает под вайном версии 1.3.13. Можете попробовать предыдущие версии вайна - может и заработает. Мне это делать лениво.
drinkermann, судя по генлоп, тогда у меня стояла версия 1.3.10. Под виртуалбоксом работает, под вмваре - тоже. Но неиграбельно абсолютно.
Ребят, может, конечно, в .13 что-то и сломали... Я сейчас опять выкачаю клиент и попробую - будет ли работать, но учтите, если опять всё заработает - я нашлю на вас коклюш, свинку и коньюктивит.
drinkermann, судя по генлоп, тогда у меня стояла версия 1.3.10. Под виртуалбоксом работает, под вмваре - тоже. Но неиграбельно абсолютно.
Ребят, может, конечно, в .13 что-то и сломали... Я сейчас опять выкачаю клиент и попробую - будет ли работать, но учтите, если опять всё заработает - я нашлю на вас коклюш, свинку и коньюктивит.
А были апдейты после 12 января? Если были, то, конечно, что - нибудь могло и поломаться. Однако, судя по тому, что жалобы поступают именно от убунтоводов, мне кажется, что проблема не с клиентом. Запустите без WINEDEBUG=-all и покажите, что оно там кричит, может и либ не хватает - посмотрим.
Скрипт писал около 5-и утра и мог накосячить (хоть и было всё 100500 раз перепроверено), однако, при всём уважении, в 29-й строчке нет лишних скобок - там одна закрывающая фигурная скобка, которая, соответственно, закрывает функцию. Без неё будет внезапный еоф. Что в убунтах за шелл? O_о
А были апдейты после 12 января? Если были, то, конечно, что - нибудь могло и поломаться. Однако, судя по тому, что жалобы поступают именно от убунтоводов, мне кажется, что проблема не с клиентом. Запустите без WINEDEBUG=-all и покажите, что оно там кричит, может и либ не хватает - посмотрим.
Скрипт писал около 5-и утра и мог накосячить (хоть и было всё 100500 раз перепроверено), однако, при всём уважении, в 29-й строчке нет лишних скобок - там одна закрывающая фигурная скобка, которая, соответственно, закрывает функцию. Без неё будет внезапный еоф. Что в убунтах за шелл? O_о
Гайд актуален на 10 января 2011. Устанавливается клиент от 2011-01-02.
Клиент, после работы патчера, запускается долго! Терпите! Оно не зависло.
Часто после чарселекта первый логин фейлится. Отходим назад к выбору сервера, ждём 5-10 минут и нормально логинимся.
1. Скачать пропатченный клиент из этой темы.
Проще всего - скачать в формате exe от Lazybloke и установить с помощью скрипта.
2. В ту же папку скачайте либы aossdk.dll и v3hunt.dll. Let Zeno google them for you
! 3. Откройте текстовый редактор. Скопируйте туда код из спойлера motr_install, что ниже приведён. Сохраните как motr_install в ту же папку, куда скачали клиент в формате exe и dll-ки.
! >! [code:2v1u22y7]#!/bin/bash
!
! if [ $# -lt 4 ]
! then
! echo "Usage: motr_install motr_installer.exe aossdk.dll v3hunt.dll /path/to/winetricks"
! exit
! else
! for i in $@
! do
! if [ ! -e $i ]; then echo "Ошибка: $i - файл не найден"; exit; fi
! done
! if [ ! -x $4 ]; then echo "Ошибка: $4 - файл не является запускаемым. Убедитесь, что вы указали именно winetricks. Если это правда winetricks, то сделайте на него chmod +x $4 (возможно, от рута). И вообще, права проверьте."; exit; fi
! fi
!
!
!
! echo -e "
! \033[1m[1]\E[0m Создаём окружение и ставим необходимые патчеру mfc42.dll и msvcp60.dll
! "
! env WINEPREFIX="$HOME/.wine_motr" $4 mfc42
!
!
! # Читаем текущее разрешение
! RES=xrandr | grep "default connected" | sed 's/default connected //' | sed 's/\([0-9]*x[0-9]*\).*/\1/'
! function really_important_height_calculator {
! local height
! let height=$1-$2
! echo -e "Не понятно? Объясняю: допустим, ваше любимое разрешение - 1024x$1, $1 - высота, $1-$2=$height, т.о. вводить надо 1024x\033[1m$height\E[0m."
! }
! echo -e "
! \033[1m[2]\E[0m Клиент лучше запускать с эмуляцией виртуального рабочего стола (дабы видеть, что оно работает).
! Можно указать ваше обычное разрешение экрана - тогда клиент будет на весь экран.
! Если хотите видеть панель задач и прочее, отнимите от высоты примерно 20-25 пикселей и введите новое значение ниже (значение высоты панели часто можно посмотреть в её свойствах)."
! really_important_height_calculator 768 20
! echo -e "
! Текущее разрешение экрана: \033[1m$RES\E[0m
! Если определилось разрешение, а не температура на Марсе, и вас всё устраивает (вы хотите, чтобы РО было на весь экран), нажмите \033[1m<ENTER>\E[0m
! Иначе - ведите разрешение виртуального рабочего стола в формате \033[1mШИРИНАxВЫСОТА\E[0m"
! NEWRES=0
! read NEWRES
! if [ $NEWRES ]; then RES=$NEWRES; fi
!
!
! echo -e "
! \033[1m[3]\E[0m Введите объём памяти вашей видеокарты (\033[1mтолько цифры\E[0m без mb/gb/etc., eg. 256 или 2048 etc.):
! Если не введёте ничего, а просто нажмёте \033[1m<ENTER>\E[0m, что, в общем, не возбраняется, то я введу вам 256, как у меня."
! MEM=256
! NEWMEM=0
! read NEWMEM
! if [ $NEWMEM ]; then MEM=$NEWMEM; fi
!
!
! echo -e "
! \033[1m[4]\E[0m Применяем настройки"
! # Кидаем всё в файл реестра и импортим его
! echo "REGEDIT4
!
! [HKEY_CURRENT_USER\Software\Wine\Explorer]
! "Desktop"="Default"
!
! [HKEY_CURRENT_USER\Software\Wine\Explorer\Desktops]
! "Default"="$RES"
!
! [HKEY_CURRENT_USER\Software\Wine\Direct3D]
! "VideoMemorySize"="$MEM"" > /tmp/motr.reg
! env WINEPREFIX="$HOME/.wine_motr" regedit /tmp/motr.reg
! rm /tmp/motr.reg
!
!
! echo -e "
! \033[1m[5]\E[0m Запускаем установку: \033[1m_НЕ_ меняйте путь установки\E[0m - писать лишнее мне лень; просто тыкайте далее, далее, установить, готово (оно всё равно в отдельном окружении):)!\E[0m"
! env WINEPREFIX="$HOME/.wine_motr" wine $1
!
!
! echo -e "
! \033[1m[6]\E[0m Фиксим права rurolog_p.txt чтобы не было лагов мышки и прочего."
! touch ~/.wine_motr/drive_c/Games/MOTR_Lazybloke/rurolog_p.txt
! chmod 000 ~/.wine_motr/drive_c/Games/MOTR_Lazybloke/rurolog_p.txt
!
!
! echo -e "
! \033[1m[7]\E[0m Копируем куда нужно aossdk.dll и v3hunt.dll, без которых игра не работает."
! cp $2 ~/.wine_motr/drive_c/Games/MOTR_Lazybloke/
! cp $3 ~/.wine_motr/drive_c/Games/MOTR_Lazybloke/
!
! echo -e "
! \033[1m[8]\E[0m Создаём скрипт запуска runmotr (на всякий случай)."
! echo "#!/bin/bash
! cd ~/.wine_motr/drive_c/Games/MOTR_Lazybloke/
! env WINEPREFIX="$HOME/.wine_motr" WINEDEBUG=-all wine "C:\\Games\MOTR_Lazybloke\updater.exe"" > runmotr
! chmod +x runmotr
!
! echo -e "
!
! \033[1mУстановка завершена!\E[0m
! Запускайте игру из меню вашего DE.
!
! Игра установлена в окружение по адресу: \033[1m$HOME/.wine_motr\E[0m
! Чтобы попасть в настройки окружения, введите: \033[1menv WINEPREFIX="$HOME/.wine_motr" winecfg\E[0m
! Чтобы попасть в редактор реестра окружения введите: \033[1menv WINEPREFIX="$HOME/.wine_motr" regedit\E[0m
!
!
! Запускать из командной строки можно так:
! \033[1mcd ~/.wine_motr/drive_c/Games/MOTR_Lazybloke/ && env WINEPREFIX="$HOME/.wine_motr" WINEDEBUG=-all wine "C:\\Games\MOTR_Lazybloke\updater.exe"\E[0m
!
! В текущем катологе (\033[1m$PWD\E[0m) создан скрипт для запуска игры (\033[1mrunmotr\E[0m). Можете запустить игру просто дабл-кликнув по нему.
! Если хотите, положите скрипт в \033[1m/usr/local/bin/\E[0m - тогда сможете запускать игру просто набрав
! \033[1mrunmotr\E[0m
! или использовать \033[1mrunmotr\E[0m в качестве "команды" для запуска в менюшках вашего DE/WM.
!
! \033[1mВНИМАНИЕ:\E[0m
! Зайдите в настройки видео клиента.
! Включите Fullscreen и из выпадающего списка выберите разрешение, соответствующее вашему виртуальному рабочему столу, которое вы ввели в шаге [2] (вы там ввели \033[1m$RES\E[0m).
! Отключите lightmap - докладывали, что из-за него проблемы."[/code:2v1u22y7]
!
! 4. Откройте эмулятор терминала, перейдите в каталог со скаченным клиентом и библиотеками и наберите:
! sh motr_install MOTR_DD.MM.YYYY.exe aossdk.dll v3hunt.dll /path/to/winetricks
! Где MOTR_DD.MM.YYYY.exe - установщик клиента в формате exe;
! aossdk.dll v3hunt.dll - файлы библиотек (обратите внимание: у вас они могут быть в верхнем регистре - смотрите, что пишите и пользуйте <TAB>);
! /path/to/winetricks - полный путь к winetricks.
! У меня это выглядит, буквально, так: sh motr_install MOTR_02.01.2011.exe aossdk.dll v3hunt.dll /usr/bin/winetricks
!
! 5. Читайте и делайте то, что пишет скрипт.
!
! 6. Профит. >! 3. Создаём новое окружение env WINEPREFIX="$HOME/.wine_motr" winecfg. В конфиге вайна в разделе графика ставим эмуляцию виртуального рабочего стола и приемлемое разрешение. Применить, ок.
! Клиент лучше запускать с эмуляцией виртуального рабочего стола (дабы видеть, что оно работает).
! Можно указать ваше обычное разрешение экрана - тогда клиент будет на весь экран.
! Если хотите видеть панель задач и прочее, отнимите от высоты примерно 20-25 пикселей и введите новое значение ниже (значение высоты панели часто можно посмотреть в её свойствах).
!
! 4. Скачиваем, если нету, winetricks: можно сделать так:
! (из под рута)
! cd /usr/local/bin
! wget <!-- m --><a class="postlink" href="http://www.kegel.com/wine/winetricks">http://www.kegel.com/wine/winetricks</a><!-- m -->
! chmod +x winetricks
!
! 5. Устанавливаем, с помощью winetricks, необходимые патчеру mfc42.dll и msvcp60.dll:
! env WINEPREFIX="$HOME/.wine_motr" winetricks mfc42
!
! 6. Копируем/перемещаем скачанный клиент и либы в папку созданного окружения Program Files (~/.wine_motr/drive_c/Program\ Files/).
!
! 7. Чтобы не было тормозов в игре создаём файл rurolog_p.txt и устанавливаем на него права 000:
! touch ~/.wine_motr/drive_c/Program\ Files/MOTR/rurolog_p.txt
! chmod 000 ~/.wine_motr/drive_c/Program\ Files/MOTR/rurolog_p.txt
!
! 8. Запустите клиент из меню вашего DE. Или командой из эмулятора терминала cd ~/.wine_motr/drive_c/Program\ Files/MOTR/ &&
! env WINEPREFIX="/home/incinerator/.wine_motr" WINEDEBUG=-all wine "C:\Program Files\MOTR\updater.exe"
! Зайдите в настройки видео клиента.
! Включите Fullscreen и из выпадающего списка выберите разрешение, соответствующее виртуальному рабочему столу вайна.
! Отключите lightmap - докладывали, что из-за него проблемы.
!
! 9. Создаём скрипт для запуска ро (из под рута):
! touch /usr/local/bin/runmotr
! Открываем его и пишем туда:
! [code:2v1u22y7]#!/bin/sh
!
! cd ~/.wine_motr/drive_c/Program\ Files/MOTR/client/
! nohup env WINEPREFIX="$HOME/.wine_motr" WINEDEBUG=-all wine "C:\Program Files\MOTR\updater.exe" > /dev/null 2>&1 &[/code:2v1u22y7]
! Делаем его запускаемым: chmod +x /usr/local/bin/runmotr
!
! 10. Создаём "иконку" меню: *
! touch ~/.local/share/applications/motr_ro.desktop
! Копируем в него следующий текст:
! [code:2v1u22y7][Desktop Entry]
! Name=Mirror Of The Realm
! Type=Application
! Comment=MMORPG Ragnarok Online on motronline.com server
! Categories=Game;RPG;MMORPG;
! Exec=runmotr[/code:2v1u22y7]
!
! Теперь в разделе Игры должен появится пункт Mirror Of The Realm. Из эмулятора терминала запустить ро можно командой runmotr.
!
! * Чтобы у пункта меню появилась иконка, нужно найти и скачать ту самую иконку, поместить её куда-нибудь на компе и в файл из 10-го пункта ~/.local/share/applications/motr_ro.desktop добавить строку наподобие Icon=$HOME/.wine_motr/drive_c/Program\ Files/MOTR/icon.png
! Иконку я взял вот отсюда: http://citri.deviantart.com/art/Ragnarok-Online-Dock-Icon-75701012. >! Запускать нужно в вайне с эмуляцией виртуального рабочего стола. Иначе не сможете юзать ALT+TAB - РО повиснет.
! Патчер не работает без mfc42.dll и msvcp60.dll: winetricks mfc42.
! Клиент не работет без aossdk.dll и v3hunt.dll. Класть в корневую папку клиента.
! Клиент не запустится, если его запускать из "чужой" директории: updater.exe будет жаловаться, что не может найти Ragexe.exe. Нужно запукать из корневой, например: cd motr && wine updater.exe.
! Клиент будет жутко лагать, если не урезать права на rurolog_p.txt, лежащий в корне до 000: chmod 000 rurolog_p.txt.
! В аудио/видео настройках клиента не забудьте включить fullscreen и выставить разрешение, соответствующее виртуальному рабочему стола вайна.
! Говорят, что из-за lightmap имеются проблемы, так что отключайте там же.
!
Действительно. Всё работает. Однако, сразу после коннекта к серверу (ещё до ввода логина и пароля) клиент начинает дико тормозить. Дёргается всё: чар, мышь, звук. Тормоза идут из-за того, что клиент усилинно пишет нечто на диск. А именно, непрерывно пишет лог в файл rurolog_p.txt. Чтобы оное пофиксить, нужно не давать клиенту общаться с этим файлом. Сделать это можно установив права 000 (chmod 000 rurolog_p.txt). После этого играется так же, как когда - то.
А, ну да, забыл упомянуть, что DirectX ставить совершенно излишне. Ставить нужно mfc42.dll и msvcp60.dll. Ставятся с помощью winetricks mfc42.