WineHQ
Oblivion Script Extender All versions



Category: Main > Games > Game Tools > Oblivion Script Extender > All versions


NameOblivion Script Extender
VersionAll versions
License Free to use
URLhttp://obse.silverlock.org/
Votes 8
RatingPlatinum
Wine Version1.3.24
Maintainers of this version:
No maintainers. Volunteer today!
Description
All versions
Old test results
The test results you have selected are very old and may not represent the current state of Wine.
Selected Test Results (selected in 'Test Results' table below)

What works
Nothing


What does not
The program does not work at all. It gives the following error whenever you attempt to run it:

err:ntdll:RtlpWaitForCriticalSection section 0x7efece04 "loader.c: loader_section" wait timed out in thread 0012, blocked by 0011, retrying
(60 sec)
Couldn't inject dll.
err:seh:raise_exception Unhandled exception code c0000194 flags 0 addr 0x7ef93f60

I have emailed Ian Patterson, one of the program's authors, about the problem, and he gives this as his response:

This appears to be a discrepancy between the Windows implementation of the DLL dependency handler/loader and the Wine implementation. Unfortunately I don't have a linux install to test this on, but my first guess would be that calling CreateProcess with the CREATE_SUSPENDED flag set leaves the new process' loader critical section locked until the main thread is resumed.

The loader works in a pretty straightforward way:

- create the new process with CREATE_SUSPENDED
- VirtualAllocEx some executable memory in the new process to store enough code for "jmp LoadLibraryA" and a null-terminated string pointing to our DLL (in a perfect world we would just point the thread entry point straight at LoadLibraryA, but this makes some virus scanners explode, literally)
- use CreateRemoteThread to create a thread in the new process pointing to the injected code, setting the parameter to the thread function to the DLL path in the new process (conveniently the calling convention and signature of thread entry points and LoadLibrary are exactly the same)
- wait for the thread to terminate, signifying that the DLL has been loaded
- clean up

This sequence requires that processes not be holding the loader lock immediately after creation.


What was not tested
Nothing


Additional Comments


Test Results
DistributionTest dateWine versionInstalls?Runs?RatingSubmitter
ShowUbuntu 11.04 "Natty" x86_64 (+ variants like Kubuntu)Sep 05 20111.3.24 Yes Yes Platinum Jannik H. 
ShowGentoo Linux AMD64Jun 18 20111.3.21 Yes No Garbage Jazz 
ShowsiduxOct 12 20101.2.1 Yes Yes Silver MassteR 
ShowUbuntu 9.10 "Karmic" x86_64 (+ variants like Kubuntu)Jan 03 20101.1.33 Yes Yes Platinum Clint Schad 
ShowDebian GNU/Linux Unstable "Sid" x86_64Nov 05 20091.1.32 N/A No Garbage Eddahbi Karim 


Known bugs
Bug # Description Status Resolution Other apps affected
13915 Oblivon Script Extender (OBSE) fails to start (needs address space layout randomization (ASLR) disabled and prelink enabled) CLOSED FIXED View

 

The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.

If obse_loader.exe is not working, look at this post
by Patrick Arnold on Wednesday October 19th 2011, 20:48
Look under the "Selected Test Results"

appdb.winehq.org/objectManager.php?sClass=version&iId=7506&iTestingId=58561

[post new] [reply to this]

Do Not Load Directly
by Lampros Liontos on Saturday August 20th 2011, 23:35
To those who are seeing error messages when launching obse_loader.exe, this may help:

Do not launch the loader directly with "wine obse_loader.exe", as this will cause the application to crash. However, launching it with a third-party tool, such as Wrye Bash, will allow the launcher to work. I have not seen any issues; nGCD and Progress seem to perform as expected.

[post new] [reply to this]




   << Back

Page loaded in 0.15013 seconds.