Help please, trying to run Direct3D 9 program.

Questions about Wine on Linux
Locked
hcorion
Level 1
Level 1
Posts: 5
Joined: Thu Jan 21, 2016 4:18 pm

Help please, trying to run Direct3D 9 program.

Post by hcorion »

Alright, here we go,
I’ve spent all day yesterday trying to work this out, I haven’t gotten anywhere.
What I’m trying to do.
TL;DR Trying to run a program
My school (K-12, homeschool) has a course called Immersive Technology, in which we use a program (among others) called Thinking Worlds. Thinking Worlds is a 3D game in which you enter a virtual world and do missions based on educational subjects.
Thinking Worlds is, like most educational computer programs is outdated, has no support and is Windows only.
Thinking Worlds, apparently uses “Windows media 9 and DirectX Version 9C”
Image
How I’m trying to do it.
TL;DR I tried on mac, didn’t work. Turned to Linux for official support.
So, nobody at my school uses Linux, only mac. So I originally set out to make an installer for mac.
For ease of use for the students of my school, I originally set out to use winebottler - http://winebottler.kronenberg.org/ but I got nowhere. I then tried Wineskin, but it also seemed to fail me.
So because I’m running a Windows PC, I loaded up VirtualBox and ran a hackintosh in there. No dice, I ran into issues, which I googled, and appeared to be related to insufficient graphics drivers, which are non-existant in VirtualBox (for mac at least).
So, I was then able to borrow a MacBook Pro from a friend. Still problems. Doesn’t even run.
I then decided I should seek official support, and moved to my efforts an Ubuntu 15.04 virtual box system, which eventually failed me because of lack of sufficient opengl.
I then moved onto a physical laptop running Ubuntu 14.04, which failed me, because it, again, lacked sufficient OpenGL.
I finally moved to my last resort. My Arch Linux file server. It has a sufficient graphics card, but using VNC is slightly painful, and I didn’t want to set it up multiarch. After I was unable to set it up, and got similar errors, I knew it was time to hit the forums.
What my problem is
TL;DR Seriously? Actually read this part.
OK, so from the start. Here are the system specs:
OS: 64-bit Arch Linux
GFX: GeForce 9300 GE running nvidia-340xx drivers
CPU: AMD Phenom 8450
RAM: 2GB
X.Org version: 1.18.0
Wine version: wine-1.9.2
Winetricks version: 20160109 (manual install)
Desktop Environment: KDE Plasma
So, the steps I take:
  1. Delete previous wine prefix, ex rm -r $HOME/.wine32
  2. Set the wine prefix: export WINEPREFIX=”$HOME/.wine32”
  3. Set the wine arch: export WINEARCH=win32
  4. Run winecfg to generate the wine prefix.
  5. Run the installer. (download here) I get the following log, but it seems to install fine. VERBOSE LOG HERE.

    Code: Select all

    fixme:shell:SHAutoComplete stub
    fixme:exec:SHELL_execute flags ignored: 0x00000180
    fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
    err:richedit:ReadStyleSheet skipping optional destination
    err:richedit:ReadStyleSheet skipping optional destination
    err:richedit:ReadStyleSheet skipping optional destination
    err:richedit:ReadStyleSheet skipping optional destination
    err:richedit:ReadStyleSheet skipping optional destination
  6. I then cd to the directory: cd “$HOME/.wine32/drive_c/Program Files/Caspian Learning/Thinking Worlds/Thinking Worlds/”
  7. On Ubuntu, I would run winetricks install mdac28 because the ODBC drivers don’t seem to work in Ubuntu, but they work fine on Arch Linux
  8. Then, I get some error messages in the command line that don’t tell me anything, and nothing happens, I have to Ctrl-C to stop wine.

    Code: Select all

    fixme:win:EnumDisplayDevicesW ((null),0,0x32f724,0x00000000), stub!
    fixme:console:CONSOLE_DefaultHandler Terminating process 8 on event 
    You can find the verbose output here: http://paste.scratchbook.ch/view/ec9a60dc



Some notes:
The verbose run log talks a lot about this:

Code: Select all

warn:wincodecs:PngDecoder_Frame_GetResolution no pHYs block present
I'm not sure it matters though.
I think it’s tripping up on line 295 – 298 of the verbose log, which says:

Code: Select all

warn:d3d_surface:surface_init Creating a lockable surface with a POOL of DEFAULT, that doesn't specify DYNAMIC usage.
warn:d3d9:d3d9_swapchain_QueryInterface {580ca87e-1d3c-4d54-991d-b7d3e3c298ce} not implemented, returning E_NOINTERFACE.
warn:d3d9:d3d9_swapchain_QueryInterface {580ca87e-1d3c-4d54-991d-b7d3e3c298ce} not implemented, returning E_NOINTERFACE.
warn:d3d9:d3d9_device_QueryInterface {580ca87e-1d3c-4d54-991d-b7d3e3c298ce} not implemented, returning E_NOINTERFACE.
Which is outputted just after this line:

Code: Select all

fixme:win:EnumDisplayDevicesW ((null),0,0x33f724,0x00000000), stub!
Which you can see on the normal log.
It also talks about:

Code: Select all

warn:wgl:X11DRV_wglGetPixelFormatAttribivARB Unable to convert iPixelFormat 0 to a GLX one!
I’m also not sure if this has anything to do with it not working.
According to Dependency Walker
It’s using the following “main” dependencies.
dinput8.dll
D3D9.dll
winmm.dll
dsound.dll
wmvcore.dll
kernel32.dll
user32.dll
GDI32.dll
comdlg32.dll
advapi32.dll
shell32.dll
ole32.dll
oleaut32.dll
odbc32.dll
If you want a full dependency list, I’ve got it here: http://hastebin.com/raw/eficuladuj


If this is a bug, I would be willing to pay to get it fixed.
Wine seems to be on Bountysource, but has had no bounties, is it supported?
User avatar
dimesio
Moderator
Moderator
Posts: 13208
Joined: Tue Mar 25, 2008 10:30 pm

Re: Help please, trying to run Direct3D 9 program.

Post by dimesio »

File a bug.
hcorion
Level 1
Level 1
Posts: 5
Joined: Thu Jan 21, 2016 4:18 pm

Re: Help please, trying to run Direct3D 9 program.

Post by hcorion »

dimesio wrote:File a bug.
Hi dimesio,
Is there a way I can put a bounty, AKA monetary reward, for a bug?
User avatar
dimesio
Moderator
Moderator
Posts: 13208
Joined: Tue Mar 25, 2008 10:30 pm

Re: Help please, trying to run Direct3D 9 program.

Post by dimesio »

You can always offer, but I doubt it will make a difference.
Arcosanti
Level 2
Level 2
Posts: 10
Joined: Mon Apr 16, 2012 3:35 pm

Re: Help please, trying to run Direct3D 9 program.

Post by Arcosanti »

Direct 3D support in Wine is a hit or miss thing unfortunately. It depends on your graphics hardware if this will work or not. You're best bet is to install the mesa version 10.x to get support for Direct X 9.0 support. You'll also need to get a copy of a modified Wine or the patches to it in order to use mesa's Direct X 9.0 capabilities. If that doesn't work, then what you are attempting to do will not work at this time.
Bladeforce
Level 3
Level 3
Posts: 63
Joined: Fri Nov 09, 2012 8:01 am

Re: Help please, trying to run Direct3D 9 program.

Post by Bladeforce »

If all else fails run a VM :)
hcorion
Level 1
Level 1
Posts: 5
Joined: Thu Jan 21, 2016 4:18 pm

Re: Help please, trying to run Direct3D 9 program.

Post by hcorion »

Hi, all. So I did eventually post a bug report, and another forum post asking for help with fixing the bug. Somebody made a patch to fix my problem, and voila! The program started working properly!
lahmbi5678
Level 7
Level 7
Posts: 823
Joined: Thu Aug 27, 2009 6:23 am

Re: Help please, trying to run Direct3D 9 program.

Post by lahmbi5678 »

As mentioned in the bug report, the patch is just a hack, not a proper solution, so it might break other applications. You'll probably have to build your own wine version for some time, until there's a proper solution. You could try to contact the developer(s) of the application, since the application's behaviour is at least questionable according to the bug report.
Locked