Falcon BMS on GNU/Linux
-
http://ananke.laggygamerz.com/falcon/bms/wine-bisect-falcon-bms.diff FIX!111111111111111111
Essential settings to prevent GPU hang on 3D enter:
[Software\Wine\Direct3D] 1361006260
“DirectDrawRenderer”=“gdi”
“Multisampling”=“disabled”
“OffscreenRenderingMode”=“fbo”
“UseGLSL”=“enabled”
“VideoMemorySize”=“2048” -
Patch v2, no longer quick and dirty.
-
Hmm… if it runs on Linux under Wine, then maybe it will run under OS X using one of the OS X wine wrappers. Might give it a shot
-
Update - switching to Catalyst Wine 1.2.3 (last working version) in order to test X-Plane. If Wine works well with BMS I’ll stay with it.
How long ago did you update your mesa?
X-Plane has native linux support.
-
http://ananke.laggygamerz.com/falcon/bms/wine-bisect-falcon-bms.diff FIX!111111111111111111
Essential settings to prevent GPU hang on 3D enter:
[Software\Wine\Direct3D] 1361006260
“DirectDrawRenderer”=“gdi”
“Multisampling”=“disabled”
“OffscreenRenderingMode”=“fbo”
“UseGLSL”=“enabled”
“VideoMemorySize”=“2048”Where are these settings entered?
Patch applies cleanly, but I am struggling to compile wine on a 64 bit system. I gather I need to set up a 32 bit chroot, but this seems a bit too much for me at the moment…
I can confirm that with fglrx, I also get very low fps - around 1ps!
-
Use https://github.com/sthalik/wine-hacks/tree/pinned-memory-v3 instead! Or ati-catalyst-is-trash branch
You don’t need a chroot if you have i386 binaries in /usr/lib32 and multilib GCC.
Chroot is simple with debootstrap.
Enter settings in ~/.wine/user.reg after issuing “wineserver -k” to prevent Wine from overwriting them.
Note that if you disable GLSL as well as disable HDR in Config.exe, it gives HUGE fps boost. Also standard of disabling anisotropy and enabling forcing anisotropy to 4x with amdcccle works too
-
Good stuff! Any idea if your patch will be accepted into Wine?
-
It won’t be, it’s actually more probable that ATI dudes fix it.
-
Have you been able to test this patch on nvidia (proprietary)? I have been unable to test the patch for now, but I will try to find some time to do it.
-
No. Use the ‘ati-catalyst-is-trash’ branch on nvidia, there’s no pinned memory there.
-
Use https://github.com/sthalik/wine-hacks/tree/pinned-memory-v3 instead! Or ati-catalyst-is-trash branch
You don’t need a chroot if you have i386 binaries in /usr/lib32 and multilib GCC.
Chroot is simple with debootstrap.
Enter settings in ~/.wine/user.reg after issuing “wineserver -k” to prevent Wine from overwriting them.
Note that if you disable GLSL as well as disable HDR in Config.exe, it gives HUGE fps boost. Also standard of disabling anisotropy and enabling forcing anisotropy to 4x with amdcccle works too
OK… None of those entries were present in registry under hkey_current_user/software/wine/direct3d. I had to create them - is this correct?. also what is 1361006260? Where does that go??
Still, I built wine with the second of your patches, but it crashes after clicking launch:
fixme:thread:GetThreadUILanguage : stub, returning default language.
fixme:thread:GetThreadPreferredUILanguages 56, 0x33d8fc, (nil) 0x33d924
fixme:thread:GetThreadPreferredUILanguages 56, 0x33d8fc, (nil) 0x33d924
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your OpenGL drivers haven’t been installed correctly (using GL renderer “AMD Radeon HD 6530D”, version “1.4 (2.1 (4.2.11903 Compatibility Profile Context))”).
fixme:win:EnumDisplayDevicesW ((null),0,0x33f588,0x00000000), stub!
err:mmdevapi:DllGetClassObject Driver initialization failed
err:ole:apartment_getclassobject DllGetClassObject returned error 0x80004005
err:ole:CoGetClassObject no class object {bcde0395-e52f-467c-8e3d-c4579291692e} could be created for context 0x1
err:dsound:get_mmdevenum CoCreateInstance failed: 80004005
fixme:dbghelp_dwarf:dwarf2_parse_udt_type Unhandled Tag type 0x1 at ctx(0x33c08c,L"ntdll<elf>“), for debug_info(abbrev:0x38602e0,symt:0x3b94274)
fixme:dbghelp_dwarf:dwarf2_parse_udt_type Unhandled Tag type 0x1 at ctx(0x33c08c,L"ntdll<elf>”), for debug_info(abbrev:0x38602e0,symt:0x3b94274)
fixme:dbghelp_dwarf:dwarf2_parse_subprogram Unhandled Tag type 0xf at ctx(0x33c08c,L"ntdll<elf>“), for debug_info(abbrev:0x3860bac,symt:0x3b94120)
fixme:dbghelp_dwarf:dwarf2_parse_subprogram_block Unhandled Tag type 0x15 at ctx(0x33c08c,L"kernel32<elf>”), for debug_info(abbrev:0x7c43580,symt:(nil))
fixme:dbghelp_dwarf:dwarf2_parse_subprogram_block Unhandled Tag type 0xf at ctx(0x33c08c,L"kernel32<elf>"), for debug_info(abbrev:0x7c43580,symt:(nil))
fixme:dbghelp_msc:codeview_add_type_enum_field_list Unsupported type 1404 in ENUM field list
fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithDataSegs
fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithHandleData
fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpScanMemoryWasn’t sure how to use pinned-memory-3 - is it a whole download, or possible to patch vanilla wine?</elf></elf></elf></elf></elf>
-
You don’t have libGL set up right. Install Catalyst, rebuild Wine.
It’s possible to patch, yes. Generate diff via ‘git checkout pinned-memory-v3 && git diff upstream/master’.
If you’re using catalyst, uninstall mesa.
-
You don’t have libGL set up right. Install Catalyst, rebuild Wine.
It’s possible to patch, yes. Generate diff via ‘git checkout pinned-memory-v3 && git diff upstream/master’.
If you’re using catalyst, uninstall mesa.
That was silly of me! Don’t think I can uninstall mesa without uninstalling xorg-dev on Ubuntu? Anyway, the Catalyst driver seems to work fine with mesa still installed if I use the pre-packeged version of wine.
I tried to build again with fglrx installed and got no further:
fixme:thread:GetThreadUILanguage : stub, returning default language.
fixme:thread:GetThreadPreferredUILanguages 56, 0x33d8fc, (nil) 0x33d924
fixme:thread:GetThreadPreferredUILanguages 56, 0x33d8fc, (nil) 0x33d924
fixme:win:EnumDisplayDevicesW ((null),0,0x33f588,0x00000000), stub!
err:mmdevapi:DllGetClassObject Driver initialization failed
err:ole:apartment_getclassobject DllGetClassObject returned error 0x80004005
err:ole:CoGetClassObject no class object {bcde0395-e52f-467c-8e3d-c4579291692e} could be created for context 0x1
err:dsound:get_mmdevenum CoCreateInstance failed: 80004005
fixme:dbghelp_dwarf:dwarf2_parse_udt_type Unhandled Tag type 0x1 at ctx(0x33c08c,L"ntdll<elf>“), for debug_info(abbrev:0x38602e0,symt:0x3b94274)
fixme:dbghelp_dwarf:dwarf2_parse_udt_type Unhandled Tag type 0x1 at ctx(0x33c08c,L"ntdll<elf>”), for debug_info(abbrev:0x38602e0,symt:0x3b94274)
fixme:dbghelp_dwarf:dwarf2_parse_subprogram Unhandled Tag type 0xf at ctx(0x33c08c,L"ntdll<elf>“), for debug_info(abbrev:0x3860bac,symt:0x3b94120)
fixme:dbghelp_dwarf:dwarf2_parse_subprogram_block Unhandled Tag type 0x15 at ctx(0x33c08c,L"kernel32<elf>”), for debug_info(abbrev:0x7c43580,symt:(nil))
fixme:dbghelp_dwarf:dwarf2_parse_subprogram_block Unhandled Tag type 0xf at ctx(0x33c08c,L"kernel32<elf>"), for debug_info(abbrev:0x7c43580,symt:(nil))
fixme:dbghelp_msc:codeview_add_type_enum_field_list Unsupported type 1404 in ENUM field list
fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithDataSegs
fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithHandleData
fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpScanMemory</elf></elf></elf></elf></elf> -
You’re missing sound still.
-
Yep. I thought that was what it was, but I don’t know why… what libs provide that? The only warnings I got were about missing libtiff and a couple of other (non sound) libs -libosmesa IIRC.
Would not working sound mean that it doesn’t start up tho??
-
alsa
-
alsa
Yep - I’m pretty sure the alsa development libs must be installed… It was certainly not mentioned in the config step of wine as far as I remember, but I will double check when I am back on that computer.
-
When in doubt, run winecfg and click ‘test sound’.
-
-
Yes. Sound worked from there no prob.
OK - so the problem was, I had sound working in 64 bit but not 32 bit. I installed asoundlib-dev (i386) and it now works with sound and starts up. However, when I launch into instant action, the screen stays black, and I get this:
fixme:win:EnumDisplayDevicesW ((null),0,0x33f588,0x00000000), stub!
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:swapchain_init The application requested more than one back buffer, this is not properly supported.
Please configure the application to use double buffering (1 back buffer) if possible.
err:d3d:context_create wglSwapIntervalEXT failed to set swap interval 0 for context 0x14f4baf0, last error 0x591
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
err:d3d:context_create wglSwapIntervalEXT failed to set swap interval 0 for context 0x14ed8760, last error 0x591
fixme:d3d:query_init Unhandled query type 0x4.
err:d3d:resource_unload Resource 0x14edc2b0 is being unloaded while mapped.
err:d3d:resource_unload Resource 0x71b428a8 is being unloaded while mapped.
err:d3d:resource_unload Resource 0x71b6fe10 is being unloaded while mapped.
err:d3d:resource_unload Resource 0x71b9c3e0 is being unloaded while mapped.
fixme:d3d:wined3d_buffer_preload Too many declaration changes or converting dynamic buffer, stopping converting
fixme:d3d_draw:draw_primitive Using software emulation because manual fog coordinates are provided.
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x1cf030 is being unloaded while mapped.
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x1cf2e0 is being unloaded while mapped.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:wined3d_buffer_preload Too many declaration changes or converting dynamic buffer, stopping converting
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
err:d3d:context_create wglSwapIntervalEXT failed to set swap interval 0 for context 0x671198a0, last error 0x591
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x154a6f30 is being unloaded while mapped.
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x158b0390 is being unloaded while mapped.
err:d3d:context_create wglSwapIntervalEXT failed to set swap interval 0 for context 0x735bd318, last error 0x591
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x1cee98 is being unloaded while mapped.
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x73396308 is being unloaded while mapped.
err:d3d:wined3d_buffer_map >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glUnmapBufferARB @ buffer.c / 1079
err:d3d:resource_unload Resource 0x158afd68 is being unloaded while mapped.
^CI tried entering the registry values in (as you suggested), but to no avail.