Jump to content

Veyrdite

Staff
  • Posts

    134
  • Joined

  • Last visited

  • Days Won

    4
  • Donations

    10.00 USD 

Posts posted by Veyrdite

  1. Last updated 2020-09-24  (tested on wine 5.16 and W3Dhl: 0.11.2.1)

    Summary:

    • The W3D engine itself (in current game releases) has no compatibility issues on Wine, the games are click and play. 
    • Some games that use older versions of scripts  (ECW) require a simple workaround to get working.
    • The W3D Hub launcher itself requires some non-obvious workarounds to get working (as detailed further down in this post). 
    • New renderer (scripts 5.x games) do not perform as well as of the time of writing. (lower framerates). EDIT: this is now in a lot of flux, both in the engine and the Linux graphics driver world.  Things are a lot better.

    Introduction

    For years I have run Renegade and other Windows games using Wine on Linux.  Wine's compatibility is reasonably impressive, but recent dotnet versions and DRM in popular games are known headaches or showstoppers.  The W3Dhub launcher uses a recent version of dotnet and WPF, making it problematic.

    Wine lets you run Windows programs on Linux.  It's not an emulator, it doesn't have to be (we're all on x86), instead it provides a userspace compatible with Windows (dlls, services, etc) so Windows programs can be run natively.  Once wine is installed you can double-click on EXEs and they'll run.

    Wine can be installed on any major Linux distro through your relevant package manager.

    W3D Hub Launcher

    Download and run the W3Dhub installer as you normally would. 

    I've ordered these problems based on the order I think you will encounter them.

    Prerequisite: Wine 4.0 or later

    Make sure you are running an up to date copy of wine:

    $ wine --version
    wine-4.0

    Many distributions (eg Ubuntu, Mint, Debian) ship out of date copies of Wine.  These will not allow dotnet and the W3Dhub launcher to operate correctly.  Manually install a copy of Wine Stable if you have to.

    Problem 1: The W3Dhub installer hangs when it tries to install dotnet.

    Workaround:

    1. Kill the dotnet installer process.  The W3DHub launcher won't notice the failure and will continue normally.
    2. Install winetricks.  Your distro should have winetricks in its package manager.
    3. Use winetricks to install dotnet461:
    $ winetricks dotnet461

    Installing 461 will take quite some time: various versions of dotnet have to be installed in a certain order to get there.  In my case one of the steps hung because I had other Wine applications open ("Waiting for all wine applications to close"), so I had to manually close some other Windows applications I was using.

    Problem 2: (updated!) Graphical glitches in the launcher and drop-down menus misbehaving

    launcherundrawn.thumb.jpeg.1b4915a6ac101db72b838a3e0713928b.jpeglauncherundrawn3.thumb.jpeg.918167fb1954798727332bfbb089e0e6.jpeg

    Workaround: open a terminal and run this command:

    wine reg add "HKCU\\SOFTWARE\\Microsoft\\Avalon.Graphics" /v DisableHWAcceleration /t REG_DWORD /d 1 /f

    This forces WPF to use software rendering, as detailed in Wine bug 49055.  This will not affect your game, only the launcher (and other WPF apps).

    Problem 3: Extremely poor framerate/performance, even in game menus

    This is a common symptom seen by people using 64 bit Linux distros that don't come with the necessary libraries for 32 bit graphics acceleration.  As a result your system uses slow software rendering for 32-bit games.

    On Debian based distros (Debian, Ubuntu, Mint, etc) you need to install several packages:

    $ sudo apt-get install libglx-mesa0:i386     (other packages?)

    TODO: find the full list of packages that need installing, or a source to link to.  Nag me if you need help here, even if it's years in the future

    Problem 4: DXSETUP fails to run when installing a game

    dxsetup.png.03875c877e03e9afb9195d9ba3b68b85.png

    Workaround: ignore.  Appears to be harmless.

    Problem 5: Expansive Civilian Warfare (ECW) crashes on start with a "please report this error" dialog

    ECW came from an era of scripts/shaders where some directx8->directx9 conversions were being performed using a 'thunk' dll.  Wine (by default) ignores any game-provided or microsoft-provided d3d8.dll and instead uses it's own version.

    Workaround: Open up winecfg and add a native override for d3d8.dll:

    d3d8_override.thumb.png.e1bd7dc75b920a4b1e846026357de6a3.png

    Additionally: this workaround may affect or break some other games.  Change it to '"Builtin (Wine)"  to disable the fix.

    Thankyou to the members of the WineHQ community for providing the fix .

    Problem 6: Screen is left looking bright (or dark) after a game is closed.

    The W3D engine changes your screen/card gamma settings when the game is launched, but it does not always to restore them back when you close the game.  Some Windows users also (used to?) experience this.

    Workaround: reset your gamma.  A simple way on the command line:

    xgamma -gamma 1.0

    Alternative workaround: set all of the brightness/contrast/gamma sliders in the in-game settings to 1.0 or 0.0 (as appropriate).  This will make the game use a gamma of 1.0, making things appear darker overall but also ensuring a strange gamma level is not left when you close the game.  Technically this also "improves" the image quality by avoiding colour crushing, so it's my preferred fix.

    Problem 7: Mouse problems: limited aiming angles, mouse leaves game, sluggish or slow mouse movement

    Cause 1: "borderless windowed mode" is not well supported. 
    Workaround: Choose "fullscreen" or "windowed" mode instead for the game settings.

    Cause 2: external applications running, eg screenshot utilities when you press PrintScreen. 
    Workaround: press Esc to enter the pause menu, then esc again to return back to game.  The game will grab the mouse back properly again.

     

    The problem of 'limited mouse movement', where you feel that your mouse has been constrained in a large box, is also known to occur when some specific directinput DLLs are installed.  If you have previously installed these DLLs to fix other games you may need to remove them.

    (Retired problem): My login credentials are not being saved

    The W3Dhub launcher only saves your login credentials when it exits normally.  If the launcher crashes then it won't save them.

    Workaround:

    1. Enter your credentials
    2. Wait until you are logged in
    3. Close the W3Dhub launcher before it crashes.

    (Retired problem): The W3Dhub launcher crashes exactly 15 seconds after logging in

    EDIT: As of Wine 4.3 (March 2019) this problem no-longer appears to occur.  If you are still suffering this problem then please reply to this topic saying so.

    Workaround:

    1. Open the W3Dhub launcher
    2. Wait for it to log you in (your name and avatar will appear on it)
    3. Launch a second copy of the W3Dhub launcher

    The second copy will login, work normally and will not crash.  The first copy will crash, but you can safely close it and ignore it.

    I've paced the steps above for a reason: please follow them.  If you launch two copies of the launcher at the same time then there is a chance one copy won't login properly.  You can also open more than two copies, but this is not generally that useful.

    (Retired problem): The W3Dhub launcher pegs a few CPU cores

    EDIT: As of Wine 4.3 (March 2019) this problem no-longer appears to occur.  If you are still suffering this problem then please reply to this topic saying so.

    I have no idea what's going on here.  Excessive redraw loops if not vsync limited?  Mining for tibercoin?  This may negatively affect your gameplay if you do not have spare processor cores.

    Do you have a GPU that supports Vulkan?

    Install DXVK and reap better performance!

    winetricks dxvk

    DXVK converts directX calls into Vulkan calls.  This is (generally) less CPU intensive than converting directX calls to OpenGL calls (which Wine normally does), and many W3D/Renegade games are CPU-bound.

    Warning: whilst this works for W3Dhub games, it is known to break other ones!

    If all else goes wrong: starting from scratch

    • Sometimes installers will refuse to cooperate because of the state of your Wine environment.
    • Installing some older versions of dotnet can 'break' dotnet461, stopping the launcher from running
    • Installing dotnet461 or other dlls can (in some circumstance) break other older games or programs.

    If you need to start with a 'fresh windows environment', then consider deleting the ".wine" folder in your home directory.

        Warning: this will delete all files in your virtual C:\ drive, including other windows programs and games!

        Note: Filenames and foldernames beginning with a dot are hidden.

    Alternatively you can create a single "Wineprefix" just for W3Dhub and W3D games.  Every "Wineprefix" you have is like a separate Windows installation and environment, complete with its own version of the C:\ drive and Windows registry.  Whilst Wineprefixes are a very effective way of segregating different Windows programs/games, they require some more advanced steps to setup and use, so I don't recommend them for beginners.

    https://askubuntu.com/questions/956244/what-is-a-wineprefix

    https://wiki.winehq.org/FAQ#Wineprefixes

    I use wine prefixes extensively.  I have had bad experiences with experimental windows programs breaking my registry and ruining modded game installs that have otherwise survived many years of my abuse.  I have also had certain games require dlls that dramatically slow other games down.

    End notes

    This is a very Windows/MSVC-centric community so I don't ever expect Linux support to be priority, but it's nice to have it.  Dotnet and all of its extensions are always going to be a PITA to get working on other platforms, that's arguably one of the motivations of dotnet.  We now have projects like Mono and some interest from Microsoft in become cross platform, but things are far from perfect.

    Happy to answer questions and hear people's opinions; I don't mind if you have not used Linux before and there's no such thing a silly question.

     

    winecfg_virtdesk.png

    cpupeg.png

    resconfig.png

    fulldesk.png

    game_apex.jpeg

    game_ra.jpeg

    2019-03-17 14:53:23.715007061+11:00 Shyarenris explorer.exe.png.jpeg

  2. I remember watching my brother trying to get them to cooperate.

    Player: Get in the vehicle!
    Player: Get in the vehicle!
    Player: Get out of the vehicle!

    I also remember trying to email a bug report to someone(?), because the bots weren't there in the other maps if you added them to the rotation.

    As poor as those bots were, they were something, which is more than many modern games.

  3. 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?

  4. Thanks Fraydo and Einstein.

    A few more points:

    • There probably isn't a secret 'G-??' outlet, judging by the pattern of labels it's probably the petrol station.  The game has no tunnel path labels for the petrol station, so I made up the 'PS' name.
    • Black market entry requires a red keycard.
    • I cannot confirm or deny any meta-secrets inside this map.
  5. The ECW sewers are the peregrinations of a mad-man.  Identical locations with identical graffitti, incorrect overhead signs and pathways that skip over other routes in ways that you don't suspect; even after you try to draw them.

    The sewers have now been tamed.

    5a95190e47df0_ECWunderground-release01.thumb.png.293ad6fbb0d9fea151c9f7394fb9dfa5.png

    • Locations and directions are correct, however distances are only approximate (map is not to scale). 
    • Original .SVGz file (compressed svg, a vector format) contains high-res location screenshots and other details.
    • Please report any errors or improvements you find when playing the game.  This map should mostly be error-free, but occasionally you find a deer in the water.
    • Map made using only legitimate gameplay, because it's more fun.  If you know more than what's in the map, but only know of it because of methods such as viewing the map models or from flying outside the map, then please start a new thread to discuss your info.  Don't ruin it for me too.

    ECW underground - release 01.svgz

  6. 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?

  7. 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.

     

     

     

  8. 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

     

  9. 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

  10. 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.

     

  11. 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.

     

  12. 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

×
×
  • Create New...