Linux support of TribesNext

edited May 2010 in General Discussion
The reason I am making this post, is that I am wondering if there is still some way to connect to game servers using the Linux client?
I am aware that the TribesNext patch doesn't support Linux as I have shown in the quote below.

But, does the TribesNext patch make such extensive modifications that would make me unable to play without patching?

Say I could do a console /connect command or something and enter the IP manually which I could simply obtain from the "view servers" list in the upper left corner of this website.
Would this be possible?
The trouble however, is that I cannot get past the login screen. Could I maybe launch the game in single player mode, and then use a console command to connect to a server?

I appreciate any help.


=============================================
=============================================

After tracking down the Linux binaries and using the files off of the windows CD along with those binaries, I am able to play Tribes2 flawlessly single player.

The TribesNext patch does appear to make some modifications to the Linux binaries too, as when I run the patch with the binaries in the GameData directory, I can make it all the way to this screen running it in Linux:

5c9b6ee279.jpg

Which is clearly the TribesNext login, and does NOT show up if I run the TribesNext patch without the Linux binaries in the directory... So modifications are being made to the Linux binary.
I only state this, because I am now wondering if TribesNext does now support Linux?? In which case I would ask if anyone knows why I can't get past the screen above?
I cannot get the button activate to allow me to go to step 2.


I did do some searching on here before making this post, I saw what Tyth had to say:
The reason TN isn't supported on Loki is because I don't have the time to port the native code changes to it. To create that port, someone would need to dig through the executable and [at minimum] find the address for the console entry point (for evaluation), and the console function addition entry point (to add new native functions); after that, they would need to connect the Ruby interpreter to the game, add the rbEval native function to the T2 console, and add the tsEval native function to the Ruby environment.

At the moment (RC2/RC2a), Wine support is broken. I'll do a more complete test for RC3, and try to get the Wine experience comparable to the Windows one.

I personally don't have the time to poke at Loki's port though.

So I didn't really expect it to work anyway...
But, as I said, the TN patch IS making modification to the linux binary (as far as I can tell), and that quote was from a year ago.... so does the above quote still stand??
Or has progress been made for Linux?


At any rate, please answer the questions I posted at the very top of this thread, about alternative methods to manually connect to servers? Or how to connect to a server from the single player.

Thanks.

Comments

  • To answer your first question, yes, I made extensive changes. You can't connect to an online server that is running the TribesNext patch unless your client is patched accordingly. If you attempt it, the server will return a message indicating that patching is required, and the connection request will be rejected. This is not different from the behavior of online mode in the past.

    Now, if I understand you correctly, you attempted to apply the patch to the Tribes 2 executables provided by Loki Games. This will not do anything good for you. The patch modifies the executable so that it loads a new DLL (t2dll.dll), which contains the vast majority of the native code changes. At best, it will do nothing; more likely the patch has damaged part of the executable that would eventually produce a crash.

    Even if you install the script files (which the patch does), you will be missing the stripped-down Ruby interpreter that was added for the critical cryptographic computations. You're seeing a consequence of that in the screenshot, since the cryptographic verification of the account server address couldn't be executed (and as the UI doesn't anticipate this sort of failure, you are unable to proceed -- no meaningful error is generated either).

    The only way to run the game on a Linux platform at this very instant is by using the Windows version in Wine, with the RC1e version of the patch. The source of problems in RC2/RC2a is actually a thread deadlock in the Ruby interpreter (only under proper POSIX thread semantics, which W32 threads don't quite match), which will be corrected in RC3.

    You cannot create accounts in RC1e, since an additional verification step was added to prevent the creation of damaged accounts. You can either generate an account in Windows (then retrieve with a Linux RC1e version), or use a temporary workaround with a Ruby 1.9.1 DLL on an RC2a install to generate the account, then revert to RC1e for retrieval and gameplay.

    If you need additional help, search the forum, or connect to IRC.
  • edited June 2010
    Thanks for the reply.

    Just for the record though I tried using the RC1e patch, and that still didn't work with the latest version of WINE.
    I did make a working account using windows, then booted into linux to see if I could log in after doing a clean install of latest Tribes2 and RC1e, it would just come to the message "retrieving account info" or whatever it says when you login for the first time, but it would just stay at that screen indefinitely.


    Also, I have some experience programming, do you think helping to add linux support in the TribesNext patch would be a project I could do?
    Or is it fairly advanced stuff?

    I know it wouldn't be childs play, but if the main reason it hasn't been done is because it is tedious and time consuming, I would be willing to put in the time.
  • If you mean to the Loki version, there will be quite a bit of machine code/assembly analysis necessary to find relevant functions (such as the console entry point, the native function addition, and a few functions required to use these). Once you have those, you'll need to patch the machine code to load additional code via a shared library (.so in Linux).

    In the case of the Windows version, there are 10 essential in-game native functions that I used to implement TN as it is currently.

    The shared library will be where the bulk of the added code will be, but fortunately that can be written in relatively high level C, with an API to the essential native functions within the game executable. At this level, I added a embedded mode Ruby interpreter to the game, along with some essential data (like public root keys).

    The rest of the patch is implemented as a set of scripts that invoke the Ruby interpreter to perform the operations that are buggy or otherwise intractable in the standard in-game script interpreter. Assuming all of the low level implementation is equivalently functional, the high level scripts that I've built should continue to work.

    I realize that Wine is a bit of a moving target, since they are constantly adding implementations for new APIs and tweaking the old ones. If the unpatched version of the game runs in Wine, it's ultimately less time spent if I can adjust the changes in the patch to function in Wine.
Sign In or Register to comment.