QuiteReluctant
Hm, unexpected but good!

https://appdb.winehq.org/objectManager.php?sClass=version&iId=24749&iTestingId=80917

They mention Linux, Debian GNU, Ubuntu, Gentoo etc. of different flavors. Skyrim (apparently with HiAlgoBoost) runs on most of them.
Quote
flaneur
I wish the WineHQ poster would've elaborated on how. It's possible the poster copied the HiAlgoBoost files to a folder but they aren't actually in play. That seems to be what I have done.

I am running Steam / Skyrim in Wine on a modified Acer C720 Chromebook that dual boots Chrubuntu. I am getting 8-15 fps according to this FRAPS-style check launched from the terminal:

WINEDEBUG=fps wine "/home/user/.wine/drive_c/Program Files (x86)/Steam/SteamApps/common/Skyrim/TESV.exe" 2>&1 | tee /dev/stderr | grep --line-buffered "^trace:fps:" | osd_cat


I also overheat and freeze an hour or two into gameplay, so I was hoping to get HiAlgoBoost working. If it helps, my d3d9.dll file is located at:

/home/user/.wine/drive_c/windows/system32/d3d9.dll


I don't know how to redirect HiAlgoBoost's dll to my system d3d9.dll yet. I've been on Google for a few hours and my head hurts :-P

From the HiAlgoBoost FAQ:

Quote:
We have not heard about any success when using Cider or Wine. If you want to figure it out on your own, here's what you should know about HiAlgoBoost: when TESV.exe starts, it is supposed to load our d3d9.dll. Our DLL, in its turn, is trying to load system's d3d9.dll. To find it, we ask OS: where is your system folder? (Usual answer is 'C:/Windows/system32/' or like this). So, if your emulator/port/whatever is able to receive and answer this question correctly, HiAlgoBoost should work.


Can HiAlgoBoost use the above info to create a d3d9.dll that points to the correct Wine path? From what I read, it is incredibly difficult to deconstruct, edit, and recompile a downloaded dll. Or perhaps I am missing a simpler solution that can be implemented from my side?

Quote
QuiteReluctant
Quote:
it is incredibly difficult to deconstruct, edit, and recompile a downloaded dll

True. The simpler approach would be to use source code and replace asking OK about location with hardcoded location, for example /home/user/.wine/drive_c/windows/system32/d3d9.dll.


However, it still would require a few trials, without guarantee for success. So, one need to have the target platform (Chrubuntu in your case) available. We here do not have bandwidth for this... [bawl]
Quote
flaneur
If anyone wants to send me a file, I'm more than happy to test it on Chrubuntu. I swapped out the hd for a 128g ssd in the Speed Acer, which has an Intel Haswell Mobile graphics card and the Chrubuntu version is Ubuntu 13.10.

I played for a couple of hours this morning with no freezing. One follower and 12 mods. But I also elevated the Acer a half inch between two books to hinder overheating.

Screenshot from 2014-09-13 09:28:01.png 
Quote
HiAlgoBoost
Try this:
1) Get the latest HiAlgoBoost for Skyrim from the nexus forums:
http://www.nexusmods.com/skyrim/mods/15123/

2) Copy the files to the Skyrim game folder (it is the folder where you have your TESV.exe)

3) Copy the system d3d9.dll from the system folder to the  game folder, while renaming it to d3d9_system.dll

4) Edit HiAlgoBoost.ini [PROXY] section like this:

[PROXY]
EnableProxy_d3d9     = true
ProxyLibrary_d3d9    = d3d9_system.dll

Tell me if this worked... Good luck! [smile]


Quote
flaneur
Looked like a good idea and the instructions were easy to follow, but nothing happened. No injection window on loading and no HiAlgo logo in the corner. Thanks for trying though.

My son runs HiAlgoBoost on a Windows laptop with no problems. Maybe I should join the Dark Side :-P


Quote
HiAlgoBoost
Well, the management there changed, so... Would you at least consider a dual boot? [wink]
Quote
Diqus
I have 2 questions, if it's ok:
1) Since "we ask OS: where is your system folder? (Usual answer is 'C:/Windows/system32/' or like this)", is there a possibility to ask authors to preliminary insert this answer into separate, specially designed d3d9.dll for Wine to workaround this problem?
2) I got 2 log files in 'My Games/HiAlgo' directory:
HiAlgoBoost.log
::::::::::::::
10/22/14  07:47:15      Attaching to process...
::::::::::::::
xinput.log
::::::::::::::
10/22/14  07:47:15      Attaching to process...
10/22/14  07:47:15      Loaded C:\windows\system32\xinput1_3.dll!
10/22/14  07:47:15      Loaded xinput API.
-----
And no d3d9.log file. Is this correct for Wine or I did something wrong?
And I wonder, if xinput1_3.dll can be loaded from the system directory, why d3d9.dll can't? [frown]

I also tried to run system's d3d9.dll via proxy settings too. And logs look exactly the same.
Moreover, if I leave empty 'c:\windows\system32\xinput1_3.dll', I got error system message "failed to load ...".
If I leave empty 'c:\windows\system32\d3d9.dll', game works fine without noticeable changes.
From my point of view, looks like Wine doesn't load d3d9.dll from Skyrim's directory and, probably, doesn't use it at all...
Quote
QuiteReluctant
Very interesting info! Thanks!

There supposed to be 3 log files related to the system DLLs:

d3d9.log - for video card support, created by our custom d3d9.dll
dinput8.log- for mouse support, created by our custom dinput8.dll
xinput.log - for joystick support, created by our custom xinput1_3.dll

(and the fourth, HiAlgoBoost.log, created by HiAlgoBoost.dll).

The first of the three is the most important, the last is the least important. Maybe the first two are blocked by the system for security reasons? Maybe there are settings (in DirectX 9 or in Wine) that can disable or enable loading non-system d3d9.dll and dinput8.dll?

(In Windows this is possible. 
In Windows, there is a DLL loader, provided by the system, which, by default, first looks for the DLL in the folder from where the application started, and only if it does not find it, it searched the system folder. Actually, the full sequence is even more complicated).

Unfortunately - as I mentioned - we have no knowledge about Wine, and even no access to it. But if you can figure out anything, we would be happy to cooperate.

Thanks again.

Quote
Diqus
Thanks for your answer.
I can, for now, only repeat:
If I leave empty 'c:\windows\system32\d3d9.dll', the game works fine without noticeable changes.
So, I should suppose that ANY d3d9.dll isn't loaded at all! Not one of them, and the game works. Is this possible without d3d9.dll?
Or Wine somehow MUST "emulate" d3d9.dll by itself or load another .dll file instead of it? Could be there any "substitution" for d3d9.dll in DirectX or anywhere (except Wine)?
Or could it be that d3d9.dll is "replaced" by native linux video card drivers (by Wine)?
Quote
QuiteReluctant
> Could be there any "substitution" for d3d9.dll in DirectX or anywhere (except Wine)?
No, it is very unlikely.

> Or Wine somehow MUST "emulate" d3d9.dll by itself or load another .dll file instead of it?
load another .dll - possible

Or could it be that d3d9.dll is "replaced" by native linux video card drivers (by Wine)?
Possible

Yet another option: there may be additional copies of system's d3d9.dll, in other locations. On my computer I have it in C:\Windows\System32, but also in

C:\Windows\winsxs\x86_microsoft-windows-directx-direct3d9_31bf3856ad364e35_6.1.7601.17514_none_c454d690bf084f04

DirectX has some ability to detect modified or missing files and restore them...
Quote
Diqus
YES! I've got

d3d9.log
::::::::::::::
10/22/14  11:04:49      Attaching to process...
10/22/14  11:04:50      Failed to load C:\windows\system32\d3d9.dll. Error code 7e.
10/22/14  11:04:57      Oops! Failed to load d3d9 API. Exiting.
10/22/14  11:04:57      Detaching from process...

And Wine error:
err:module:import_dll Library d3d8thk.dll (which is needed by L"C:\\windows\\system32\\d3d9.dll") not found
err:module:attach_process_dlls "d3d9.dll" failed to initialize, aborting

Will look for installing d3d8thk.dll and will let you know if anything changes.
-----
(to whom it may concern) The part of solution: run winecfg and set override rule for d3d9 to 'native'.
Quote
QuiteReluctant
Woo-hoo! [thumb]

Diqus wrote:
(to whom it may concern) The part of solution: run winecfg and set override rule for d3d9 to 'native'.
Quote
Diqus
By some testing and googling, I found that installing Microsoft's d3d8thk.dll on Wine is a bad idea, since it depends on gdi32.dll which can't be supported by Wine.
And I forgot about dinput8.dll. [smile]
So, I set overrides for d3d9 and dinput8 to 'native then builtin' and deleted these dlls from c:/windows/system32/ for hope that Wine will use its libs instead.

Now the game starts by publishing small window "HiAlgoBoost for Skyrim(r) ver 2.3c" with in-game usage (and I've got 4 log files with 'TESV1cache1' of 5.4 MB).
But as soon as I press 'Ok' it crashes with lots of debug messages. On top of them:

fixme: d3d9: Direct3DShaderValidatorCreate9 stub
fixme: d3d:query_init Unhandled query type 0xa.
wine: Unhandled page fault on read access to 0x00000000 at address 0x21644c9 (thread 0009), starting debugger...

::::::::::::::
d3d9.log
::::::::::::::
10/22/14  12:32:41      Attaching to process...
10/22/14  12:32:41      Loaded C:\windows\system32\d3d9.dll!
10/22/14  12:32:41      Loaded d3d9 API.
::::::::::::::
dinput8.log
::::::::::::::
10/22/14  12:32:41      Attaching to process...
10/22/14  12:32:41      Loaded C:\windows\system32\dinput8.dll!
10/22/14  12:32:41      Loaded dinput8 API.
10/22/14  12:32:44      Created device: KEYBOARD.
10/22/14  12:32:44      Created device: MOUSE.
10/22/14  12:32:48      Created device: MOUSE.
::::::::::::::
HiAlgoBoost.log
::::::::::::::
10/22/14  12:32:41      Attaching to process...
10/22/14  12:32:44      ======== GRAPHIC ADAPTER ============================
10/22/14  12:32:44      Device Descr     : NVIDIA GeForce GTX 650 Ti
10/22/14  12:32:44      Vendor Id        : 0x10DE
10/22/14  12:32:44      Device Id        : 0x11C6
10/22/14  12:32:44      Device SubSysId  : 0x0
10/22/14  12:32:44      Device Revision  : 0x0
10/22/14  12:32:44      Device GUID      : {AEB2CDD4-6E41-43EA-941C-8361CC760781}
10/22/14  12:32:44      -------- DRIVER -------------------------------------
10/22/14  12:32:44      User-friendly name       : nvd3dum.dll
10/22/14  12:32:44      Driver version           : 0xC1A02
10/22/14  12:32:44      =====================================================
10/22/14  12:32:48      Error in file IDirect3DDevice9_wrapper.cpp, line 4451.
::::::::::::::
xinput.log
::::::::::::::
10/22/14  12:32:41      Attaching to process...
10/22/14  12:32:41      Loaded C:\windows\system32\xinput1_3.dll!
10/22/14  12:32:41      Loaded xinput API.
-----
Do you have any ideas?
There is a creation of 2 mouse devices. Is it normal? (I have only one [smile]  )
Does your program use Direct3DShaderValidatorCreate9 or it's from game's engine? This function, seems, wasn't written in Wine.
Quote
Diqus
Have found (https://www.facebook.com/HiAlgoBoost/posts/593528870670015) that

HiAlgoBoost for Skyrim
Error in file IDirect3DDevice9_wrapper.cpp, line 4451. --> cannot create timestamp query, D3DQUERYTYPE_TIMESTAMP :  hres = pD3D9Device-

>CreateQuery(D3DQUERYTYPE_TIMESTAMP,&pQuery);


Does it link to wine's debug message: 'fixme: d3d:query_init Unhandled query type 0xa'? And iCreateQuery() really necessary for HiAlgoBoost to work properly?

On your forum (http://hialgo.forumchitchat.com/post/hi-algo-chill-crashes-skyrim-6815983) stated that it needs to update GPU drivers, right?
So, do you know what drivers I need to update: Wine's nvd3dum.dll or Linux NVIDIA driver? Or something else???
Quote