HOWTO: Play using the Windows lobby with native executable
Moderator: Moderators
-
- Posts: 272
- Joined: 30 May 2006, 17:06
-
- Posts: 272
- Joined: 30 May 2006, 17:06
Well, in order to properly replace each "AiDLL=\a\b\c\myAI.dll" reference with one like "AiDLL=/d/e/f/myAI.so", you would first need to know Spring's data directory. However, opening ~/.springrc or $HOME/.springrc to read the SpringData line is problematic because fopen() does not expand the tilde or variable (that's the shell's job), and since stuff like chdir("~") or getenv("HOME") doesn't work as normal under Wine (getenv("PATH") returns "c:\windows\system32;c:\windows" for example), there's a minor roadblock. :)
Edit: scratch all that, getenv("user") does the trick. :)
Edit2: here is a modified version of the Spring dummy binary plus source, please let me know if it crashes or otherwise misbehaves. :)
Edit: scratch all that, getenv("user") does the trick. :)
Edit2: here is a modified version of the Spring dummy binary plus source, please let me know if it crashes or otherwise misbehaves. :)
For those of you running TASClient in wine...
If you find that TASClient is misbehaving, and ignoring that which
your window manager would have it do; stick it in a box. I found that
TASClient (in wine), ignores its virtual screen assignment, and is
generally annoying, so I started up an Xserver within my Xserver:
And then put TASClient in that server.
P.S. I also have a custom server/client set written that allows you
to escape from a 32-bit chroot to a 64-bit native executable space.
The mingw32 compiled Spring.exe sends the entire starting script
to the server (daemon). With very little work, you could have the
TASClient run on a real (separate) windows box, and clients on a
linux box (although I can't really see any reason for that
If you find that TASClient is misbehaving, and ignoring that which
your window manager would have it do; stick it in a box. I found that
TASClient (in wine), ignores its virtual screen assignment, and is
generally annoying, so I started up an Xserver within my Xserver:
Code: Select all
Xnest :1
Code: Select all
DISPLAY=:1 wine TASClient
to escape from a 32-bit chroot to a 64-bit native executable space.
The mingw32 compiled Spring.exe sends the entire starting script
to the server (daemon). With very little work, you could have the
TASClient run on a real (separate) windows box, and clients on a
linux box (although I can't really see any reason for that

Last edited by trepan on 03 Dec 2006, 18:26, edited 1 time in total.
EDIT: With the newest version of the windows lobby, this doesen't work anymore.
edit again: http://spring.clan-sy.com/phpbb/viewtop ... 940#160940
Unless I'm missing something there's no need for a faked spring.exe.
First, install spring with wine. Substitute ~/.wine/drive_c/games/TASpring/ for wherever you install it to.
Substitute ~/games/spring for wherever you put the ./game/ dir after you compiled spring-linux.
Then, let's copy over TASClient.
Then, the (non-free) datafiles.
and lastly we make a symbolic link.
and you're good to go. Or should be anyway, I tried a small match against myself between spring-linux and spring-wine and it worked fine as far as I could see.
edit: Assuming 32-bit here.
edit again: http://spring.clan-sy.com/phpbb/viewtop ... 940#160940
Unless I'm missing something there's no need for a faked spring.exe.
First, install spring with wine. Substitute ~/.wine/drive_c/games/TASpring/ for wherever you install it to.
Substitute ~/games/spring for wherever you put the ./game/ dir after you compiled spring-linux.
Then, let's copy over TASClient.
Code: Select all
cd ~/games/spring
cp ~/.wine/drive_c/games/TASpring/TASClient.exe ./
cp ~/.wine/drive_c/games/TASpring/DevIL.dll ./
cp ~/.wine/drive_c/games/TASpring/MSVCP71.DLL ./
cp ~/.wine/drive_c/games/TASpring/MSVCR71.dll ./
cp ~/.wine/drive_c/games/TASpring/unitsync.dll ./
cp ~/.wine/drive_c/games/TASpring/zlibwapi.dll ./
Code: Select all
cp ~/.wine/drive_c/games/TASpring/base -r ./
cp ~/.wine/drive_c/games/TASpring/maps -r ./
cp ~/.wine/drive_c/games/TASpring/mods -r ./
Code: Select all
ln -s ./spring ./spring.exe
wine TASClient.exe
edit: Assuming 32-bit here.
Last edited by kujeger on 23 Jan 2007, 23:02, edited 2 times in total.
All this is working, yes, but I have a problem... Is it me, or is the linux version slower than the windows one ?
I don't know if this has anything to do with the windows lobby emulation via wine, but my game is quite slower under linux as soon as there's a lot of units and/or animation on the map. I've already reniced the "TASClient.exe" process to 19.
This annoys me a lot. Is that a known problem ?
I don't know if this has anything to do with the windows lobby emulation via wine, but my game is quite slower under linux as soon as there's a lot of units and/or animation on the map. I've already reniced the "TASClient.exe" process to 19.
This annoys me a lot. Is that a known problem ?
Code: Select all
profiling NOT enabled, debugging NOT enabled, level 2 optimizing enabled
For all of you, linux version is working as fast as windows version ?