2038 under WINE/Linux

Can somebody tell me what’s required for running the game under WINE/Linux?

The original game works just fine, but the launcher to 2038 requires some .NET component, which seems to be unavailable to me. Neither the use of mono nor “winetricks dotnet461” solved it for me. It keeps complaining about a missing presentation foundation, which I suppose is used by the new launcher.

Does anyone have any suggestions or knows where to get the missing piece from?

It’s probably Windows Presentation Foundation (WPF) which only works on Windows.

As far as I know, there have been some attempts to run it on Wine in Windows but no stories of success except for Wineskin on OS X.

See http://www.hellgateaus.info/forum/support/hgl-on-linux-with-wine/msg56612/#msg56612 and http://www.hellgateaus.info/forum/london-2038/hellgate-london-on-osx/msg57400/#msg57400

This is about the custom launcher for 2038, not the game itself. Those posts only seem to mention installing and running the base game.

Ahh right, should have read more carefully :wink:

The only thing I can think of is that the launcher uses .NET 4.5 features and WPF. Is that available under WINE?

Mono doesn’t support WPF, and from what I understand, WINE doesn’t support it either.

What might work is copying in the patched files manually so that you don’t have to run the launcher, but that could get messy.

That’s also the information I have.

The game itself works fine under WINE/Linux. At least it did in the past, from the single user game to HG: Global and with very good frame rates (>60fps) and also low ping times. Even the launcher of HG: Global worked.

I hardly use Windows these days. If we could get a less modern launcher (without WPF) then this would already solve it.

We don’t have enough players using linux primarily to spend time and effort on supporting WINE. If you want I can give you instructions on how to manually download patch files and you can write a guide for WINE users.

Is it this simple? I was worried about how to actually run the .exe file. I was under the impression it needed some cryptic arguments. But if you can provide me with download and start instructions then it should be easy to make a simple launcher for WINE/Linux. I’d very much appreciate that :slight_smile:

Basically the launcher checks if your files are out of date by hash and updates any required. You will have to manually download new patches as they come out if you want to do it manually, but it’s possible. The client won’t let you log in if your patch is out of date FYI.

I’ll give you some instructions later, but it should work. You basically run the game as normal but using a different exe, no cryptic arguments or anything. Stay tuned.

Awesome. If you find the time to share some light on the hash check, too, then I’ll put it in as well!

I remember HG Global having some cryptic arguments, which didn’t allow one to start the game directly but always requiring their launcher. Anyhow, I gave it a quick test this morning and it’s working fine when one installs the game under Linux and Windows (including the new MP patch), runs it once under Windows to get the updates, and then copies the changed files over.

Uncapped fps with an Nvidia GTX960 and maxed settings is about 100-150 fps. So that’s nice. Ping is at around 110-120ms, too.

It requires no use of winetricks and nothing needs to be modified in WINE and one can just use i.e. the wine-development package straight out of the Debian distribution.

Only the DX10 client crashes. Neither use of the builtin DirectX functions of WINE nor using MS DirectX packages solves it. This might be a bug in WINE or the graphics drivers on my side.

The missing/changed files were:

Data/mp_hellgate_1.10.180.3416_1.0.86.4580.idx
Data/mp_hellgate_2038.dat
Data/mp_hellgate_2038.idx
Data/mp_hellgate_localized_1.10.180.3416_1.0.86.4580.idx
Data/serverlist.xml
MediaCenter/Launcher-MCE.lnk
MediaCenter/Launcher-MCE.mcl
MP_x64/fmodex64.dll
MP_x64/London2038_dx10_x64.exe
MP_x64/London2038_dx9_x64.exe

A picture of it: https://i.imgur.com/kQtlBFh.jpg

I’ve now been trying to play under Linux for a while, but there is one major issue. One gets a network error the second one starts to attack a mob.

Everything else I’ve tested works fine so far. One can change stations, enter maps and take damage, store items in the Stash and take them out again, etc… Only the second one attacks does one get thrown back to the login screen. However, no crash.

If you have any pointers for what could be causing this then please let me know. Is combat somehow transferred differently, i.e. udp vs. tcp? Seems to be a rather unique issue to combat.

I’ve the same problem but i’m using Win7 don’t know what is the problem.

Log in change station and can do every thing but go into any zone with mobs in them i can kill like 3 or 4 then they all stop on their place and after 10 seconds or so i get “Network error” and you have been disconnected.

I too can’t get the launcher to run in wine and don’t see the info in this thread, could you tell me what to download/put where instead? or if you can tell me how the launcher would do the file-comparison/download of file list and the actual files (or just let me take a look at the launcher’s source code) I could write a linux shell script and post it here for others to use as a “linux launcher” :slight_smile:

@SchummelBaron could you tell me how you even got it installed? I always mess my wineprefix up somehow, mostly because winetricks and playonlinux installers for directx and dotnet fail horribly on 64bits and there’s no 32bit client version in that file list you posted above. some kind of step-by-step installation guide for wine would be really great :slight_smile:

I’m running Debian, so the first thing I need to do to get WINE with 32-bit and 64-bit support is (as root):

dpkg --add-architecture i386
apt-get update
apt-get install wine wine32 wine64 libwine libwine:32 fonts-wine

The first line will add 32-bit as another architecture to your Debian or Debian-based distro. So now you’ll also have all the 32-bit packages available. The “apt-get update” just gets an updated list of packages and then you can install the 32-bit and 64-bit versions of WINE. The exact package names depend on the flavour of distro you use. So does Debian offer “wine” as well as a “wine-development” package where the first is the latest, stable version 2.0 and the other is the latest development versions 2.20. That’s basically it. You don’t need to use winetricks, you don’t have to install some version of DirectX, and you can run the game with WINE’s built-in DLLs. If anything else is needed I couldn’t tell you right now… (see below). The rest is just your usual stuff:

export WINEPREFIX=$HOME/.hgl    # give the game it's own WINE directory
export WINEDEBUG=-all           # makes everything run faster

Run winecfg once and let it create the directory and make changes such as setting a virtual desktop and a nice size i.e. 1920x1080.

You do need to have the original game, in the English language, to run it. So you first insert the game’s DVD and run the setup under WINE, enter the installation key and let the installer do it’s job. Once that’s done do you apply the 1.3 GB patch for MP 2.0.

The new launcher itself doesn’t work, because it requires the .NET Presentation Foundation Whatever Stuff, which is currently missing from Mono and it also doesn’t help to install .NET itself under WINE. You do need to install the game once under Windows, i.e. when you have a dual-boot setup can you do this more easily. Or you can try running a VM with Windows in it - which ever works for you. Start the launcher under Windows and let it patch the game (you’ll need to install the game, the patch and the new installer under Windows, too, for this to work). Now you go back to Linux and copy the patched files over onto your directory “$WINEPREFIX/.hgl/drive_c/Prgram Filex (x86)/Flagship Studios/Hellgate London/”. You’ll have to repeat the step each time the game receives a new patch for now.

If you’ve done all correctly then you’ll be able to start the game by running the MP_x64/London2038_dx9_x64.exe file with WINE:

wine MP_x64/London2038_dx9_x64.exe

Note, you’ll need to have a proper graphics driver installed under Linux. One which can handle OpenGL as all the DirectX calls are being translated/emulated with OpenGL. The DX10 version of the game didn’t run for me - it crashes. That’s probably due to some missing features or perhaps bugs in WINE’s DX10/11 implementation, which still is work in progress.

I did get the game to run a couple times now and could play it properly, but it seems that once it has created its directories it starts showing the network error and have I yet to pin-point the source of the problem. But you should be able to change stations, manage your stashes and characters, check your mails and sales, and chat with guild mates.

@SchummelBaron so essentially I just messed up the wineprefix by trying to install dx9 and .net to make the launcher happy, and just a plain 64bits prefix is all it needs? sounds doable, i feel a bit silly RN… :stuck_out_tongue:
about the network problems: if I get it to run and have the same problems I’ll gladly help debugging :slight_smile:

but the thing with windows dual-boot/vm is a bit annoying, @Omerta could you maybe tell me how the launcher gets its file list so I could just write a “launcher script” to wget the files instead? don’t want to decompile it, that always feels so dirty because MS CIL creeps the hell outta me :stuck_out_tongue:

EDIT: @SchummelBaron I don’t get the MP patch to run on 64bit wineprefix. what I did:

  • set up wineprefix with 64bit wine-2.12-staging
  • installed the game
  • fixed {region,language}.dat because the installer messed them up
  • ran the patch, output:

    wine /home/kyra/Downloads/Patch_NA_Europe_Germany_MP_2.0_(1.0.86.4580).exe
    fixme:winediag:start_process Wine Staging 2.12 is a testing version containing experimental patches.
    fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
    fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
    wine: Unhandled page fault on read access to 0x00000004 at address 0x7e9257a9 (thread 0009), starting debugger…

which I read as “can’t find dotnet components, the exe is ignoring that I didn’t find it, then try to access it, segfault” (which I didn’t install because you told me not to).
or it’s the usual “wine barfs all over everything with segfaults because I try to run badly written 32bit exes on 64bit” which shouldn’t happen, but does often enough sadly…

in the first case: we’re again at the problem of “client can’t run on 32bit but dotnet doesn’t want to install on 64bit wine”.

in the second case: it did install to Program Files, should I move it to Program Files (x86) instead? I don’t think the wine developers might be THAT stupid (that’s what file headers are for, not folder names), but maybe it helps detecting it as a WoW64 exe?

also yes, before you ask, it also fails the same way in the current stable version.

Hmm, may be that my version of WINE automatically installs Mono. Perhaps yours doesn’t and you’ll have to install it additionally / manually?

https://wiki.winehq.org/Mono

tried to install mono-2.10 using PlayOnLinux’s installer script, fails with:

start /unix mono-2.10.9-gtksharp-2.12.11-win32-0.exe /silent
fixme:winediag:start_process Wine Staging 2.12 is a testing version containing experimental patches.
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
fixme:file:SetSearchPathMode (8001): stub
fixme:process:SetProcessDEPPolicy (1): stub
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
fixme:file:SetSearchPathMode (8001): stub
fixme:process:SetProcessDEPPolicy (1): stub
fixme:win:DisableProcessWindowsGhosting : stub
fixme:graphics:ShutdownBlockReasonDestroy (0x10082): stub
fixme:graphics:ShutdownBlockReasonCreate (0x10082, L"Installing"): stub
fixme:graphics:ShutdownBlockReasonDestroy (0x10082): stub
fixme:graphics:ShutdownBlockReasonCreate (0x10082, L"Please wait while Setup installs Mono 2.10.9 with GTK# 2.12.11 on your computer."): stub
fixme:msg:ChangeWindowMessageFilterEx 0x10092 c047 1 (nil)
err:seh:setup_exception_record stack overflow 1696 bytes in thread 0031 eip 7ec6b389 esp 00240c90 stack 0x240000-0x241000-0x340000

which to me sounds like “can’t find the mono component, still can’t find it after messing with paths, then failing”

also, after trying that, even winecfg crashes with:

winecfg
fixme:winediag:start_process Wine Staging 2.12 is a testing version containing experimental patches.
fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
wine: Unhandled page fault on read access to 0x00000008 at address 0x7f116e24e25a (thread 002f), starting debugger…