Wow실행을 앞두고 문제가...!

dtd1966의 이미지

안녕하세요.

wine으로 와우를 설치까지 마치고 실행에 앞두었습니다.

젠투 HOWTO를 보고 했습니다.

그런데, 에러를 뿜길래 HOWTO문서를 보니 패치하는법이 있긴 있습니다.

하지만, 정작 내공 부족으로 패치하는법을 모르겠습니다. :oops:

아마 0.9.7 and up쪽 내용인데.. 한번 봐 주시고 패치법을 가르쳐주셨으면 합니다.

http://gentoo-wiki.com/HOWTO_Install_and_update_World_Of_Warcraft_with_wine

입니다. 그럼 좋은하루되세요!

아! ebuild는 못씁니다. 우분투 DapperDrake입니다.

아마.. 이부분 일껍니다.

X Error of failed request: BadMatch
It appears that somewhere between WoW 1.8 and 1.9.3 as well as wine-0.9.4 and later, there are some issues with the opengl interface.

You may get an error that is similiar to this:

Code: BadMatch error
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 143 (GLX)
Minor opcode of failed request: 13 (X_GLXCreateGLXPixmap)
Serial number of failed request: 373
Current serial number in output stream: 374

This apparently is because of a patch that is present in wine-0.9.4, and reversing that patch is reputed to help. I have created a quick reverse of the patch, which you can save in your files directory, and apply to the ebuild(don't forget to digest afterwards ;)).

[edit]Patching wine 0.9.4 or 0.9.5
The reverse patch can be found here: wine-0.9.4-reverse-bitmaprendering.patch

Some people say that all of this patch isn't nessecary to reverse the patch and this patch only reverses that: [1]

[edit]Patching wine 0.9.6
The 0.9.4 patch has ceased to work with 0.9.6 or later. Reversing a single line that the 0.9.4 patch applies to the file dlls/opengl32/wgl.c will allow wine-0.9.6 to compile. The patch removes the line

DWORD type = GetObjectType(hdc);
from the function wglMakeCurrent.

[edit]Patching wine 0.9.7 - 0.9.10?
Someone merged the wine-0.9.4-reverse-bitmaprendering.patch and wine-0.9.4-wow_fixes.patch to wine-0.9.7-wow_fixes.patch. Seems to work and does not need any other non-standard patch. You might get an error message when starting Launcher.exe, but the main program WoW.exe runs cleanly.

--- libs/wine/mmap.c.old 2006-02-07 14:42:08.000000000 +0100
+++ libs/wine/mmap.c 2006-02-07 15:10:18.000000000 +0100
@@ -164,6 +164,25 @@

#endif /* (__svr4__ || __NetBSD__) && !MAP_TRYFIXED */

+static void *get_anon_mmap_null_address(size_t size)
+{
+ static int got_override = 0;
+ static void *low_alloc_ptr = NULL;
+ void * current_low_alloc_ptr;
+
+ if (!got_override)
+ {
+ low_alloc_ptr = (void*)0x10000000;
+ got_override = 1;
+ }
+
+ current_low_alloc_ptr = low_alloc_ptr;
+
+ if (low_alloc_ptr)
+ low_alloc_ptr += size;
+
+ return current_low_alloc_ptr;
+ }

/***********************************************************************
* wine_anon_mmap
@@ -212,6 +231,9 @@
return start;
#endif
}
+ if ((start == NULL) && !(flags & MAP_FIXED))
+ start = get_anon_mmap_null_address(size);
+
return mmap( start, size, prot, flags, fdzero, 0 );
#else
return (void *)-1;
--- loader/preloader.c.old 2006-02-02 15:56:14.000000000 +0100
+++ loader/preloader.c 2006-02-07 14:30:37.000000000 +0100
@@ -110,7 +110,7 @@
{
{ (void *)0x00000000, 0x00110000 }, /* DOS area */
{ (void *)0x7ffe0000, 0x01020000 }, /* shared user data + shared heap */
- { (void *)0x00110000, 0x1fef0000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */
+ { (void *)0x10000000, 0x00f00000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */
{ 0, 0 } /* end of list */
};

--- dlls/opengl32/wgl.c.old 2006-02-02 15:55:59.000000000 +0100
+++ dlls/opengl32/wgl.c 2006-02-07 13:54:39.000000000 +0100
@@ -149,11 +149,11 @@
}

-/* retrieve the GLX drawable to use on a given DC */
+/* retrieve the X drawable to use on a given DC */
inline static Drawable get_drawable( HDC hdc )
{
- GLXDrawable drawable;
- enum x11drv_escape_codes escape = X11DRV_GET_GLX_DRAWABLE;
+ Drawable drawable;
+ enum x11drv_escape_codes escape = X11DRV_GET_DRAWABLE;

if (!ExtEscape( hdc, X11DRV_ESCAPE, sizeof(escape), (LPCSTR)&escape,
sizeof(drawable), (LPSTR)&drawable )) drawable = 0;
@@ -566,8 +566,6 @@
}
TRACE(" make current for dis %p, drawable %p, ctx %p\n", ctx->display, (void*) drawable, ctx->ctx);
ret = glXMakeCurrent(ctx->display, drawable, ctx->ctx);
- if(ret && type == OBJ_MEMDC)
- glDrawBuffer(GL_FRONT_LEFT);
}
LEAVE_GL();
TRACE(" returning %s\n", (ret ? "True" : "False"));

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.