Jump to content

Horrible luck: cannot get ECW or W3Dhl working on any of my OS's


Veyrdite

Recommended Posts

Intro

I've been sick the past few days, so I thought I have a look at what's happening in the old Renegade Forums.  I came across an announcement post by Jerad for ECW and couldn't be more excited!

Many many years ago I remember playing RP2 online.  I remember being on a certain beta version for a long time and flying around in the interior universe, exploiting !save/!load server-side commands to slowly gain Z height through terrain.  I never did work out how to get into the weed house, but I think I discovered a secret mod/admin area above an interior once.  I also never discovered how to get to Halo island.  Much sadness.

delorean_spam.thumb.PNG.6cfac953bd07bd6fa26096cdc970758e.PNG

Then came a major new RP2 release which reset all of my server-side progress and stats.  A few days (?) later everything was reverted and the RP2 downloads were pulled due to scripts licensing violations. 

During my time in the Rene community I made some particularly poor Renegade Comics and some magic-eye stereoscopic imaging

havocroom.thumb.jpeg.f4b434ce3887fc37e66f54f5cd05d0ef.jpeg

I might have actually been on the RP2 forums, but I believe they are long gone. I used to be nicknamed 'Dthdealer'.  

It's a shame RenHelp.net isn't around anymore, a lot of community-contributed tutorials were lost when that site died.  I had a tutorial there about making generic bbox physics objects and it had a video/gif of me knocking down a giant tower of dominoes with a Nod buggy.  I don't think I'll ever see that again.

Somewhere around this point (~10 years ago) I  stopped playing Ren.  I recall I wasn't able to play the game any longer on my computer, or something along those lines, I used to (and still mostly do) live off old hardware.  The last thing I ever remember reading about RP2 was a blog post about optimising the swimming code to require less tests per second. 

I remember trying to load up RP2 in LevelEdit once and wondered how the hell you guys managed to put a script zone across the entire map's ocean.  Script zones would always bug out when I tried to make them that large.

 

 

Anyway, enough with all that.  I owe a lot of what I am today to Renegade.  I'm really eager to try UCW  and see what the community is like here :), but unfortunately I'm being held back by technical issues.  Apologies if the rest of this post reads a bit harsh, it documents my experiences trying to get this game to work.

 

Aside: I'll be judging the quality of this project purely by how nice Mount Chiliad is. 

cliff_fall.thumb.jpeg.72d6b8e4ccdefa58cee08846566adf9d.jpeg

No other metric matters.

W3Dhl: Linux+Wine

Background: Renegade (and most games) work great on Wine these days.  Renegade itself has worked for years, and I was able to get help from JonWil on renegadeforums with some TT patch issues.

Support for the latest versions of dotnet is another story. [Insert opinion about MS making dotnet intentionally hard to get working on anything but the latest version of Windows]

W3Dhub install

$ wine w3dhub_launcher_0.8.3.1_install.exe

The dotnet461 step fails.  Thankfully the people who wrote this installer are kind and let the process continue if this happens :)  Hats off.  I've had installers that immediately and automatically delete all progress when any error occurs.

Trying to get W3Dhub running

First attempt:

The entry point method could not be loaded due to Could not load file or assembly 'PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. assembly:PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 type:<unknown type> member:<none>

It looks like we need dotnet.  So let's try installing dotnet 4.5.1. 

Now when I try to run W3Dhub I get even scarier errors:

0012:fixme:wer:WerSetFlags (2) stub!
0012:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0017:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period 86400 msg (null) cmd (null)
0019:fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
wine: Call from 0x7b44021b to unimplemented function mscoree.dll.CorIsLatestSvc, aborting
wine: Unimplemented function mscoree.dll.CorIsLatestSvc called at address 0x110023:0x7b44021b (thread 0019), starting debugger...

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'W3DHub.Launcher.App' threw an exception. ---> System.DllNotFoundException: PresentationNative_v0400.dll
  at (wrapper managed-to-native) MS.Win32.UnsafeNativeMethods:IntCreateWindowEx (int,string,string,int,int,int,int,int,System.Runtime.InteropServices.HandleRef,System.Runtime.InteropServices.HandleRef,System.Runtime.InteropServices.HandleRef,object)
  at MS.Win32.UnsafeNativeMethods.CreateWindowEx (System.Int32 dwExStyle, System.String lpszClassName, System.String lpszWindowName, System.Int32 style, System.Int32 x, System.Int32 y, System.Int32 width, System.Int32 height, System.Runtime.InteropServices.HandleRef hWndParent, System.Runtime.InteropServices.HandleRef hMenu, System.Runtime.InteropServices.HandleRef hInst, System.Object pvParam) [0x00000] in <962683128112448d94373b4d97ac4577>:0 
  at MS.Win32.HwndWrapper..ctor (System.Int32 classStyle, System.Int32 style, System.Int32 exStyle, System.Int32 x, System.Int32 y, System.Int32 width, System.Int32 height, System.String name, System.IntPtr parent, MS.Win32.HwndWrapperHook[] hooks) [0x00229] in <962683128112448d94373b4d97ac4577>:0 
  at MS.Win32.MessageOnlyHwndWrapper..ctor () [0x00000] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.Threading.Dispatcher..ctor () [0x00088] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.Threading.Dispatcher.get_CurrentDispatcher () [0x0000e] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.Threading.DispatcherObject..ctor () [0x00006] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.DependencyObject..ctor () [0x00000] in <962683128112448d94373b4d97ac4577>:0 
  at W3DHub.Launcher.App..cctor () [0x0000a] in <b986085cc5c84c5392f00b7c9b913618>:0 
   --- End of inner exception stack trace ---
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'W3DHub.Launcher.App' threw an exception. ---> System.DllNotFoundException: PresentationNative_v0400.dll
  at (wrapper managed-to-native) MS.Win32.UnsafeNativeMethods:IntCreateWindowEx (int,string,string,int,int,int,int,int,System.Runtime.InteropServices.HandleRef,System.Runtime.InteropServices.HandleRef,System.Runtime.InteropServices.HandleRef,object)
  at MS.Win32.UnsafeNativeMethods.CreateWindowEx (System.Int32 dwExStyle, System.String lpszClassName, System.String lpszWindowName, System.Int32 style, System.Int32 x, System.Int32 y, System.Int32 width, System.Int32 height, System.Runtime.InteropServices.HandleRef hWndParent, System.Runtime.InteropServices.HandleRef hMenu, System.Runtime.InteropServices.HandleRef hInst, System.Object pvParam) [0x00000] in <962683128112448d94373b4d97ac4577>:0 
  at MS.Win32.HwndWrapper..ctor (System.Int32 classStyle, System.Int32 style, System.Int32 exStyle, System.Int32 x, System.Int32 y, System.Int32 width, System.Int32 height, System.String name, System.IntPtr parent, MS.Win32.HwndWrapperHook[] hooks) [0x00229] in <962683128112448d94373b4d97ac4577>:0 
  at MS.Win32.MessageOnlyHwndWrapper..ctor () [0x00000] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.Threading.Dispatcher..ctor () [0x00088] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.Threading.Dispatcher.get_CurrentDispatcher () [0x0000e] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.Threading.DispatcherObject..ctor () [0x00006] in <962683128112448d94373b4d97ac4577>:0 
  at System.Windows.DependencyObject..ctor () [0x00000] in <962683128112448d94373b4d97ac4577>:0 
  at W3DHub.Launcher.App..cctor () [0x0000a] in <b986085cc5c84c5392f00b7c9b913618>:0 
   --- End of inner exception stack trace ---

I have tried dotnet461, but unfortunately it completely fails to install in Wine at the moment.  Even running it unattended with /q leads to some fun, such as mscoree.dll going AWOL. 

With a bit of playing in a few fresh wineprefixes I  manage to get as far as getting some form of W3Dhub GUI, but only in the form of an error message:

wine_hostnameparse.png.fc7e186977206bf267a2d8f64e5332ef.png

Unresolvable hostnames would be all and good, but I've never heard of hostname parsinproblems :D

In all of these tests: no errors.log or diagnostics.log files were created anywhere.

W3Dhl: Windows XP VM

As you probably know: no longer supported by W3Dhub.  The installer runs fine (apart from dotnet461 failing)  but the final W3Dhub executable is in a format XP cannot understand. 

W3Dhl: Windows 7 VM

The dotnet 461 installer failed again, claiming my OS is 'not supported'.  All other mixtures of no dotnet, dotnet40 and dotnet45 lead to error messages like these:

w7_nodotnet.thumb.png.d247a4d79dd6128d60075c33f1d377d9.png

w7_stopwork.thumb.png.aa41c08762147883fb3a53feb397299e.png

As it turns out: dotnet461 was refusing to install because my Windows 7 install was an old (pre-SP1) version.  After a few hours of Windows update I was able to install dotnet461 and launch W3Dhub. 

Huzzah!

Or so I thought.

The files for ECW all download, but then nothing further happens.  A little "installation failed" message appears at the top of the window:

w7_ecwdownloadfail.thumb.png.f2fd0a3b247bd899947f1695b697aa6a.png

This time W3Dhub has loaded far enough to create an errors.txt file.  Three types of message are repeated inside of it (full log attached):

--------------------------------------------------
2018/01/31 19:01:47
Application version: 0.8.4.0 W3D Hub Launcher.exe
--------------------------------------------------

An exception of type System.Net.WebException occurred
    Message The operation has timed out

    Stack Trace;
   at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
   at System.Net.HttpWebRequest.GetRequestStream()
   at W3DHub.Backend.BackendWebClient.CreatePostRequest(Uri uri, Byte[] postData, String contentType, String encoding)
--------------------------------------------------
2018/01/31 19:01:47
Application version: 0.8.4.0 W3D Hub Launcher.exe
--------------------------------------------------

An exception of type System.Exception occurred
    Message Error whilst calling https://secure.w3dhub.com/apis/w3dhub/1/get-news

    Stack Trace;

    Inner Exception (System.Exception) Failed to create request
    Stack Trace;
--------------------------------------------------
2018/01/31 19:37:22
Application version: 0.8.4.0 W3D Hub Launcher.exe
--------------------------------------------------

An exception of type System.Exception occurred
    Message A game installation of type INSTALL failed. Reason: One or more packages failed to download

    Stack Trace;

From my uninformed perspective they don't look useful.

Restarting the W3Dhub program and trying to download ECW again through it: same error.  The 'download' process is much faster, however, so I suspect it is just re-hashing the already downloaded files.

Installing ECW directly: Linux + Wine

ECW's website has a directly downloaded installer.  Unfortunately I'm also heavily out of luck here.

On Linux+Wine the install succeeds.  I can't run ECW.exe (likely due to the dotnet problems) but I can try and run one of the game[drawdist].exe's directly. 

Unfortunately I get this when I try:

wine_bhsdll.png.87781894845dd5a393bebc63779882d4.png

I wanted to ask for help on the ECW forums, but I think it might be better to ask here, given what they currently look like:

ecw_forum.thumb.png.d1c9e199240f93decf705a6b84340a96.png

(Although for all I know this might just be the metagame of ECW.  I don't know :( )

Installing ECW directly: Windows 7 VM

Installer completes successfully.  I try and open the game launcher:

w7_rp2_updatefail1.PNG.dd5608bf8888126c5af4db22d42db04a.PNGw7_rp2_updatefail2.png.42e7a043bf7c247b4f6744e62aad9999.pngw7_rp2_updatefail3.PNG.06583395ff79b849a66e54ee1eab8e5f.PNG

Hmm, update process does not seem to work.  I'll try selecting 'No' and continuing:

w7_rp2_launcherconfail.thumb.png.54a3bddb3d8ddf60952e252235c4f0d1.png

Hmm, servers must be down.  Nice transparency, however.

I'll try playing a LAN game.

w7_rp2_notinstafail.thumb.PNG.417eef1a264a9a3362b69c83f2e8dbdf.PNG

Eek. 

How about launching game100.exe directly?

w7_rp2_directlaunch.thumb.png.49f4e164b9899798c2fb9ab0d2d1ebdc.png

A new window border briefly flashes, then disappears.  Then the exe terminates and I'm left back at the prompt.   I cannot see any log files apart from log.txt, which has a mod date of 2014 and does not get written to during this process.

Re-installing the game does not fix any of these issues.

 

Questions

(1) Is this the best place to ask for help regarding the bhs.dll error, or should I ask over on renegadeforums.com?

(2) Should I use the http://expansivecivilianwarfare.com/ forums at all?

(3) Does anyone here have this game working on Windows 7 or Wine?

(4) Any tips for what else I can try on any of my operating systems?

 

Regards,  a lost, sick and confused dave's arrow.

errors.log

Edited by Veyrdite
Link to comment
Share on other sites

Hey nice to see from you again Dthdealer, comics made me chuckle.

Anyways onto why you're actually here:

1. This issue is caused 90% by a need to install/reinstall directx9.0c.

2. No, in fact I'm contacting Brandan right now to redirect the forums link to here and to kill that download, its a super out of date version (probably 3 years or more old).

3. Works on Windows 7, Windows 8, and Windows 10 for me, although a lot of people seem to suffer from black screens.

4. If you have a working copy of Windows 7 you should be able to install the W3dHub Launcher and install ECW with no problems (you might get black screens in game after the install but you should at least be able to get it installed with the new launcher, if the new launcher isn't working on a clean install of Windows 7 (ideally fully updated) we'll have to pull Danpaul in here).

 

Edit: I stand corrected, that version of the game is almost 5 years old.

Link to comment
Share on other sites

Thanks Jerad.

1. bhs.dll error on the 5yo version of ECW under wine: Installing d3dx9 and directx9 seems to make no difference.  I think I might abandon trying this old version now I know :p

2. ECW site hosting ancient content: Fill it with notices or redirects until the sun doesn't shine!  I have completely assumed that site was up to date.   If it wasn't for my chance perusal of renegadeforums.com today I wouldn't have known you have moved to here

I'm not sure who Brandan is, but if he's not someone you can easily get your hands on: do you have control over the domain?

4. Windows 7:   I'll try a fresh VM and a fresh physical install, see where I go from there.  Unfortunately it looks like my goto Windows box has a failing HDD, so this might be more fun than usual.

 

Quote

3. Works on Windows 7, Windows 8, and Windows 10 for me, although a lot of people seem to suffer from black screens.

Thanks for the heads up.

 

I might also try looking at the ECW resources that the W3Dhl downloads.  I presume they're hosted on http, so I might have some luck manually installing them.

 

Edited by Veyrdite
Link to comment
Share on other sites

I'd love to get my hands on a copy of that 'broken' always2 so I can find out why it breaks...
 

As for Linux, the launcher uses .net 4.6 and wpf. Typically it's the wpf bit that falls over on Linux because it's not been ported to wine. I am starting to move some of the underlying libraries over to net standard (which does support Linux) which might give us the option in future of a command line Linux client (I don't see much prospect of porting the GUI any time soon) but there's just not much demand for Linux support in the community so it's very much on the back burner right now.

 

I know Omar got the launcher working on Linux at one point and even contributed a few code tweaks to help improve the support but I'm not sure if he's around at the moment

 

Link to comment
Share on other sites

5 hours ago, Veyrdite said:

I might have actually been on the RP2 forums, but I believe they are long gone. I used to be nicknamed 'Dthdealer'.  

It's a shame RenHelp.net isn't around anymore, a lot of community-contributed tutorials were lost when that site died.  I had a tutorial there about making generic bbox physics objects and it had a video/gif of me knocking down a giant tower of dominoes with a Nod buggy.  I don't think I'll ever see that again.

Hey man! I remember your name from a while back! I just wanted to point out that all of the RenHelp tutorials should be re-hosted here: https://w3dhub.com/forum/forum/171-w3d-tutorials/

Let us know if we're missing any! Cheers! :) 

Link to comment
Share on other sites

Wow, thankyou everyone.

I'm slightly bewildered and flattered that two whole people remember me.  I must have been a particularly nasty community influence. 

 

23 hours ago, moonsense715 said:

Always2.zip fails for many people.

 

23 hours ago, danpaul88 said:

I'd love to get my hands on a copy of that 'broken' always2 so I can find out why it breaks...

Dang, I've already nuked that VM.  If it happens again I'll make sure to hook you in danpaul.

 

23 hours ago, danpaul88 said:

As for Linux, the launcher uses .net 4.6 and wpf. Typically it's the wpf bit that falls over on Linux because it's not been ported to wine.

Ah.  WPF looks to be a behemoth.

Linux port of W3Dhl:  No pressure.  Once I get everything up and running under Windows I'll see what I can do to get the games installed and running under *nix, it might be as simple as a few scripts if I forgo most of the features of the client (I have not been able to look closely at it, but I suspect an external server browser might be necessary).

 

I'm heavily tied up in work now that I'm quasi-un-sick again, so I'll be slow to update here.  I'll be back with progress next week.  In the meantime you have my full permission to laugh at my slightly abandoned blog.

 

Link to comment
Share on other sites

On 2/1/2018 at 9:11 PM, OWA said:

I just wanted to point out that all of the RenHelp tutorials should be re-hosted here: https://w3dhub.com/forum/forum/171-w3d-tutorials/

I spot lots of interesting new ones, but many of the old ones are missing.  I take it this is a voluntary rehost, not a resurrection of the content from the old renhelp-variant sites?

Link to comment
Share on other sites

On 2/1/2018 at 10:03 AM, danpaul88 said:

I know Omar got the launcher working on Linux at one point and even contributed a few code tweaks to help improve the support but I'm not sure if he's around at the moment

Very little lately. In the middle of painting, building a kitchen, doing electrical wiring etc.  :p
Living/sleeping space is the only thing pretty much done haha.

If I can find a bit of spare time I'll see what I can do to retrieve/update what I had.

On 2/2/2018 at 10:27 AM, Veyrdite said:

I spot lots of interesting new ones, but many of the old ones are missing.  I take it this is a voluntary rehost, not a resurrection of the content from the old renhelp-variant sites?

Pretty much. Basically all we've been able to find/retrieve so far has been put up. If you know or have any missing ones, they can be added as well.

Link to comment
Share on other sites

Renhelp: I recall that many tutorials contained a small nugget of unique truth that you needed to understand what was going on.  Unfortunately archive.org did not archive the contents of the tutorials themselves, so I'm not able to find examples.

Getting W3Dhl and ECW working in a fresh Win7 VM

Works perfectly now.  I was able to join the server and become heavily lost in the tutorials, then play the game for a while.  

w7_working2.thumb.jpeg.a095cf031c43f9d471f400b9bd2b52f8.jpeg

Do not stare directly at the ocean shaders when using Oracle's (*twitch*) graphics passthrough on a VM:

w7_working1.thumb.jpeg.f46f5748af4669ab19616c004abc93e5.jpegw7_working3.thumb.jpeg.7d5bd0ffe98ac2d45d59bb4a4b74dfca.jpeg

It's interesting to note that all of the game-generated screenshots I took had invalid alpha channelling.  These were all 100% transparent images -- I had to manually edit them to fix this.  Probably a 3D drivers issue, assuming a D3D call was being used to dump the screen.

Aside: If any of you are interested then I'd be happy to write some opinions about the game at a later point.

 

Getting the game working under WINE

Direct game directory copy (no reg keys, no W3Dhl) and running a Game*.exe directly:

bhsdll_again.png.fa1717a21aa6e75f14ea769b0d67688b.png

According to dllload.txt:

[bhs.dll] Failed to load, error 998. No access to memory location.

What is bhs.dll trying to get access to?  Could this be an attempted access to something outside the scope of the game (eg a Windows OS component)?

The game seems to be explicitly trying to load d3dx9_43.dll, so I installed that, but no dice.  I'm poring through Wine's debug logs to try and work out what to do.

If you are curious: attached is a good 100M of Wine debug logfiles.  One is very verbose (search for the word "Unfortunately" to get to the time the dialog was made, it's a win32 diag), the other is much more terse (diag spawn not noted in this one, search for "usp10" to get to around the right point).  Apologies for the format, a .zip of them 6.8M, which is above my forum upload limit.

 

winedebug_logfiles.7z

Edited by Veyrdite
Link to comment
Share on other sites

It looks like an exception is being thrown whilst initialising shaders.dll, shortly followed by bhs.dll getting unloaded.  I'm going to keep poking in the dark and see if I get anywhere.

27845.374:0008:0009:trace:ntdll:NtQueryInformationProcess (0xffffffff,0x00000022,0x33d2fc,0x00000004,(nil))
27845.374:0008:0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0x458b3874 ip=458b3874 tid=0009
27845.374:0008:0009:trace:seh:raise_exception  info[0]=00000000
27845.374:0008:0009:trace:seh:raise_exception  info[1]=458b3874
27845.374:0008:0009:trace:seh:raise_exception  eax=7d3cca80 ebx=00000000 ecx=7d3b1b50 edx=458b3874 esi=02d9173c edi=00000000
27845.374:0008:0009:trace:seh:raise_exception  ebp=1283868c esp=0033d67c cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210206
27845.374:0008:0009:trace:seh:call_stack_handlers calling handler at 0x1282a7dc code=c0000005 flags=0
27845.374:0008:0009:Call KERNEL32.GetLastError() ret=1281b1f4
27845.374:0008:0009:Ret  KERNEL32.GetLastError() retval=00000000 ret=1281b1f4
27845.374:0008:0009:trace:seh:call_stack_handlers handler at 0x1282a7dc returned 1
27845.374:0008:0009:trace:seh:call_stack_handlers calling handler at 0x1282a93b code=c0000005 flags=0
27845.374:0008:0009:Call KERNEL32.GetLastError() ret=1281b1f4
27845.374:0008:0009:Ret  KERNEL32.GetLastError() retval=00000000 ret=1281b1f4
27845.374:0008:0009:trace:seh:call_stack_handlers handler at 0x1282a93b returned 1
27845.374:0008:0009:trace:seh:call_stack_handlers calling handler at 0x1281d3b0 code=c0000005 flags=0
27845.374:0008:0009:trace:seh:call_stack_handlers handler at 0x1281d3b0 returned 1
27845.374:0008:0009:trace:seh:call_stack_handlers calling handler at 0x7bcb2720 code=c0000005 flags=0
27845.374:0008:0009:trace:seh:__regs_RtlUnwind code=c0000005 flags=2
27845.374:0008:0009:trace:seh:__regs_RtlUnwind eax=00000000 ebx=7bcb2550 ecx=0033d624 edx=0033d818 esi=0033d818 edi=7bcb2550
27845.374:0008:0009:trace:seh:__regs_RtlUnwind ebp=0033d168 esp=0033d148 eip=7bcb25bd cs=0023 ds=002b fs=0063 gs=006b flags=00200206
27845.374:0008:0009:trace:seh:__regs_RtlUnwind calling handler at 0x7bc8a690 code=c0000005 flags=2
27845.374:0008:0009:trace:seh:__regs_RtlUnwind handler at 0x7bc8a690 returned 1
27845.374:0008:0009:trace:seh:__regs_RtlUnwind calling handler at 0x1282a7dc code=c0000005 flags=2
27845.374:0008:0009:Call KERNEL32.GetLastError() ret=1281b1f4
27845.374:0008:0009:Ret  KERNEL32.GetLastError() retval=00000000 ret=1281b1f4
27845.374:0008:0009:trace:seh:__regs_RtlUnwind handler at 0x1282a7dc returned 1
27845.374:0008:0009:trace:seh:__regs_RtlUnwind calling handler at 0x1282a93b code=c0000005 flags=2
27845.374:0008:0009:Call KERNEL32.GetLastError() ret=1281b1f4
27845.374:0008:0009:Ret  KERNEL32.GetLastError() retval=00000000 ret=1281b1f4
27845.374:0008:0009:trace:seh:__regs_RtlUnwind handler at 0x1282a93b returned 1
27845.374:0008:0009:trace:seh:__regs_RtlUnwind calling handler at 0x1281d3b0 code=c0000005 flags=2
27845.374:0008:0009:trace:seh:__regs_RtlUnwind handler at 0x1281d3b0 returned 1
27845.374:0008:0009:exception in PE entry point (proc=0x1281ac20,module=0x12800000,reason=PROCESS_ATTACH,res=(nil))
27845.374:0008:0009:Ret  PE DLL (proc=0x1281ac20,module=0x12800000 L"shaders.dll",reason=PROCESS_ATTACH,res=(nil)) retval=0
27845.374:000c:000d:trace:heap:RtlFreeHeap (0x110000,70000062,0x168aa0): returning TRUE
27845.374:0008:0009:Call PE DLL (proc=0x1281ac20,module=0x12800000 L"shaders.dll",reason=PROCESS_DETACH,res=(nil))
27845.374:0008:0009:Ret  PE DLL (proc=0x1281ac20,module=0x12800000 L"shaders.dll",reason=PROCESS_DETACH,res=(nil)) retval=0
27845.374:0008:0009:warn:module:process_attach Initialization of L"shaders.dll" failed
27845.374:0008:0009:trace:actctx:RtlDeactivateActivationContext 0 cookie=122568
27845.374:0008:0009:trace:heap:RtlFreeHeap (0x110000,70000062,0x122568): returning TRUE
27845.374:0008:0009:trace:module:process_attach (L"shaders.dll",(nil)) - END
27845.374:0008:0009:trace:actctx:RtlDeactivateActivationContext 0 cookie=11d2b0
27845.374:000c:000d:trace:heap:RtlFreeHeap (0x110000,70000062,0x165b88): returning TRUE
0036: *wakeup* signaled=TIMEOUT
0030: *wakeup* signaled=TIMEOUT

 

Edited by Veyrdite
Link to comment
Share on other sites

This ancient (2007 era) RenegadeForums topic describes the exact error message I'm having and a workaround.  The workaround appears to simply boil down to:

  1.  delete scripts.dll
  2.  rename scripts2.dll to be scripts.dll

To my best of knowledge this is deleting the custom scripts and replacing them with the vanilla Ren ones -- can someone more familiar with the filenames please confirm this?

This gets the game to at least launch and be able to start a LAN match.  Mouse input is completely broken/ingored, only keyboard input works, and once the LAN game is entered keyboard input gets ignored too.  According to the FPS counter + sound effects the game is at least still ticking.

1.thumb.jpeg.ea6015d68ef42883ce689a610671f8c1.jpeg2.thumb.jpeg.7a3bb4ac61f5a498f65ec5903246fc44.jpeg3.thumb.jpeg.c3dadc7f7edc4bee43c41dfa2da58c5f.jpeg

Conclusions: problem likely sits in scripts.dll and/or shaders.dll

 

Those with access to scripts/shaders source: I'd love to get my hands on some builds of these dlls with some form of debug symbols.  They appear to be from a 2003-era Visual C++ compiler, is this correct?

JeradGrey: Installing DXSDK_Jun10.exe didn't seem to affect the problem.

 

 

 

Edited by Veyrdite
Link to comment
Share on other sites

On 2/15/2018 at 6:54 AM, danpaul88 said:

IIRC there was a shim version of d3dx9_43.dll which hooked some calls to inject new logic and forwarded other stuff to the system wide variant of the dll - not sure if WINE can support that...

Ooh, do you remember any other information or keywords I might be able to find it with?  Not sure if it will help me, but worth a shot.

I note that ECW ships with a copy of d3d8.dll -- is it vanilla?

Edited by Veyrdite
Link to comment
Share on other sites

  • 2 weeks later...

Renaming scripts2 to scripts will probably lose your ability to spawn into game/get through the tutorial (it doesn't try to hook into shaders.dll or bhs.dll without it thus uses the original dx8 that stock ren did). :\

Link to comment
Share on other sites

On ‎2‎/‎16‎/‎2018 at 1:30 AM, Veyrdite said:

Ooh, do you remember any other information or keywords I might be able to find it with?  Not sure if it will help me, but worth a shot.

I note that ECW ships with a copy of d3d8.dll -- is it vanilla?

Fake, its actually directx9. The version of scripts that ECW has runs 9 instead of 8, but I don't think you'll have nay luck getting it to run with 8.

Link to comment
Share on other sites

These two dlls used to be used in ECW back in the days of Rp2, helped some people with crashing, you can give it a try but I kind of doubt it'll do much. (Sorry about multiple posts btw, switching between devices and trying to head to bed so I'm going to be lazy not to clean up all these posts).

d3dx9_42.dll

d3dx9_32.dll

Link to comment
Share on other sites

Thanks Jerad.

Using either of your d3dx9's as my d3d8.dll: no dice, same problem.

I've been spending some time trying to debug my game at an instruction level.   With a debugger attached the game segfaults on start, hopefully this is the same error as what I'm normally seeing (eg it might get caught and turned into the "Failed to load bhs.dll" msgbox when run normally).  Unfortunately there's also multiple game threads signalling each other and stack dances going on, so it's pain for a newbie like me to follow. 

The game code before the segfault is also time-sensitive.  Single-stepping through it (or running it slowly in other ways) leads to completely non-segfaulting and non-useful branches of code running infinitely, presumably to handle signals/time/events.

Given that BHS did a lot of their work to prevent cheating: can I presume that the code I'm looking at is designed to be malicious towards me attempting to debug and reverse-engineer it?

Edited by Veyrdite
Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...