Any ideas? I haven't seen many people commenting on this... I've been
using WINE 20011108.
David Bronaugh
ps: If you have any suggestions to help debug this, please throw em this
way.. I'm looking for some insight into this if possible, not necessarily
just a fix.
The way I got Starcraft to work with IPX was by running Starcraft as root.
Also, make sure all workstations are configured with the same IPX network
address (i.e. 0x12345678).
HTH
John
Thanks for the suggestion, but running it as root makes no difference - it
still doesn't work. Also, since I don't even get to a pointe where I could
look for another game or have others join my game, there's not much point
in setting the IPX network address on the workstations.
I'm running kernel 2.4.14 stock. The point at which this happens is when I
select "IPX network game" or such in the Starcraft multiplayer menu and
hit "OK" or equivalent. I configured my workstation with the bogus IPX
address. The others do not at this point matter.
This is on a K6-III/550 with 128M RAM and a 20G HD (which isn't full). I
hope that'll satisfy any other questions. I've tried this with and without
the RIP/SAP daemon running (I don't know if it'd make a difference).
David Bronaugh
> David Bronaugh
You will have to setup som registry entries to make wine believe that
IPX is available. I did it once and it worked (as root), but I cannot
remember the changes.
Bernhard
Thank you. Now, what registry entries would those be? Once I have 'em,
I'll be on the road here...
(by the way, the winesetuptk people should probably hear about this...
it'd make things a lot easier if the registry were primed with such
entries).
David Bronaugh
>Thank you. Now, what registry entries would those be? Once I have 'em,
>I'll be on the road here...
I don't know your app, but it's often possible to find which registry
entries are needed by an application by running it with -debugmsg
+relay, then searching in the trace file for the
advapi32.RegCreateKey
advapi32.RegOpenKey
advapi32.RegQueryValue
and, having found one, look if the return value is 2
(retval=00000002)
that means that the entry is missing.
Then one thing helps, most programmers are giving names
that have at least some sense, so the Regxxx Api call may
have something like 'IPX' in the parameters.
OTOH it's difficult to imagine the correct *value* to set in the
registry file, but that's when it's interesting to ask to someone
having a Windows box to take a look at the registry to find what
the values are supposed to be so that the app works.
It's complex, but when you have found the solution, you can
go to the Wine application database and update it so that other
people after you will not have the same problem (or maybe find
that the answer was already here since years ;-))
Gerard
OK, I logged all the debug messages, and grepped for "advapi". Results of
that are up at http://bronaugh.linuxboxen.org/morecrap.txt - I didn't find
it very helpful. It seemed to look for some pretty strange keys, nothing
to do with Netware or IPX (the two most likely candidates in my opinion).
David
Incidently it shows that crypto functions are called.
Needless to say, Wine does not support anything of Ms
crypto :-) So it could be that IPX fails because really
IPX is used to communicate on the network, and network
communication relies on crypto. I don't know the app at
all, but it seems likely.
So, could it be that people using Starcraft on a network
use a different version without crypto ?
Gerard
That's a very interesting question...
So I guess this is a pretty open discussion then. What versions of
Starcraft do people who have got it running use? I'm using Starcraft 1.07.
Single player works great, etc etc etc blablaba. Does anyone who has it
working care to do the following:
wine -debugmsg +relay starcraft.exe &> crap.txt
grep "advapi" crap.txt &> morecrap.txt
Thanks in advance.
David Bronaugh
I've been successfully running Starcraft in multiplayer LAN mode and it
uses IPX
with NO crypto. A while back I attempted to connect to BattleNET and
debug the
problems but it complains about needing the crypto dll (as you've said)
and maybe
some other stuff. I didn't get very far.
---
Glenn Schrader
Hmm.. well, all I'm trying for is IPX over LAN. Perhaps you can give me
some tips or pointers... as I have stated before, I'm using WINE 20011108
(on Debian 2.2, but I built it from source), Starcraft 1.07, and I have
IPX crap loaded into the kernel, etc etc etc. It *should* work, but it
doesn't (dialog pops up, "Unable to initialize network provider" when I
click IPX network game, and select "OK").
David Bronaugh
Ok. A few things for you to ponder...
I haven't been able to get Starcraft to run on any builds newer than
20010510. Anything newer
seems to have colormap problems and locks up. I can't see how this
relates to your problem but
it is a difference in what we're doing.
Even though you have IPX installed, are you sure that its being started?
Look for /etc/rc.d/init.d/ipx
and /etc/rc.d/rc5.d/*ipx (should find 1 file). If you don't find these
files then ipx hasn't been
configured to start when Linux boots. If its not being started then use
a command like the
following to initialize the driver:
ipx_interface add -p eth0 802.2 0x12345678
Are you attempting to play between two Linux machines to between a Linux
and a Windows
machine? The last value in the command line above (i.e. 0x12345678) can
be any
>>>non zero<<< number but must be the same everywhere. Check the ipx
scripts in /etc/rc.d/*
and/or in the Windows IPX protocol settings.
If that doesn't make it work then i'm stumped. Its been pretty reliable
for me.
---
Glenn Schrader
Let's think about this for a second:
Starcraft makes some kind of API call to do its IPX stuff, right ? Well,
normally, under Windows, the DLL that implements those API calls
probably relies on some registry entries. However, in this case we're
not dealing with Windows DLLs (unless you've specified
"native,builtin"). So, what actually happens is that Wine resolves
these IPX-related functions in its own, non-registry way. How do I
know? I have Starcraft running with IPX and without any kind of Windows
installation.
I recommend running wine-20010510 instead of the latest. That's the
version I have running on one computer, IPX and all.
Well, that's interesting. I'm glad you're interested in one of the same
things I am here.
Here's the status:
I use WINE to run a few programs, mainly games (I don't even play them
that often). These are Half-Life and (occasionally) Starcraft. Wine
20011108 fixed an annoying bug in Half-Life with Wine where you had to
click "Done" in the menus in order to get to the game (it was pretty odd,
but I figured it out). Starcraft works under WINE, but I don't have IPX
(which is kind of annoying). I was running WINE 20010510 before, but
unfortunately I never tried Starcraft under it. Maybe I'll give it another
crack (is there some clean way to have 2 different WINE installs?)
David Bronaugh
>is there some clean way to have 2 different WINE installs?
If you mean something like rpm installation, it depends
on the packagers. If each packager has used 'standard'
names for the installation parameters (WINEPREFIX for
example, or directory and library names) it will not work.
If the packager has carefully given specific values for
everything, 2 packages could coexist. I think that
companies packaging Wine with their software do that
to avoid clashes with standard Wine installations.
If you use only source, it's possible and has been
explained already. Don't install and use some LD_LIBRARY_PATH
magic to get access to the right libraries. Use scripts
to set the relevant environment variables. After that, there
are different ways to do it.
Here is the script I use :
export WINE=/home/gerard/win/wine
export LD_LIBRARY_PATH=$WINE:$WINE/dlls:$LD_LIBRARY_PATH
export WINEPREFIX=/home/gerard/.wine
export PS1='wine:'
cd /home/gerard/win/wine
bash
I copy by hand the wine and .wine directories into something like,
say, wine2 and .wine2 and create another like that :
export WINE=/home/gerard/win/wine2
export LD_LIBRARY_PATH=$WINE:$WINE/dlls:$LD_LIBRARY_PATH
export WINEPREFIX=/home/gerard/.wine2
export PS1='wine2:'
cd /home/gerard/win/wine2
bash
As I don't set the path, I have to enter ./wine in
the Wine directory to start Wine. I have scripts for the
applications I use, like that :
cd /mnt/reiser/agent
$OLDPWD/wine $1 -managed -winver win95 AGENT.EXE
You can easily do better I think (IIRC there are less
important environment variables to set) but I'm used to
these tricks.
Gerard
Waaaay better:
If you install wine from source, just do this:
./configure --prefix=/usr/wine
add /usr/wine/lib to /etc/ld.so.conf
Them,
make depend && make
make install
cd /usr
mv wine wine-20011108
Now, download the other version of wine, say 20010510 and untar it.
./configure --prefix=/usr/wine
make depend && make
make install
cd /usr
mv wine wine-20010510
ln -s wine-20010510 wine
ldconfig
Even though at first sight, this does not appear to be easier, the main
advantage is that it doesn't require any scripting, nor environment
variables. You can have any number of wine distributions in, say, /usr
and switch between them simply by pointing the wine link to the one you
want and running ldconfig. For example, I have:
/usr/wine-20010510
/usr/wine-20011108
/usr/wine-cvs
/usr/winex-cvs
They were all configured as --prefix=/usr/wine and installed
appropriately, after which the /usr/wine directory created by the make
install was renamed appropriately.
Now, I can switch between them extremely easily at will.
Caveat: When installing a new version of wine, don't forget to
rm /usr/wine, otherwise you'll be installing one version of wine on top
of another. This can prove disasterous, to say the least.
>Waaaay better:
>If you install wine from source, just do this:
>./configure --prefix=/usr/wine
>add /usr/wine/lib to /etc/ld.so.conf
>Them,
>make depend && make
>make install
>cd /usr
>mv wine wine-20011108
>
>Now, download the other version of wine, say 20010510 and untar it.
>./configure --prefix=/usr/wine
>make depend && make
>make install
>cd /usr
>mv wine wine-20010510
>ln -s wine-20010510 wine
>ldconfig
>
>Even though at first sight, this does not appear to be easier, the main
>advantage is that it doesn't require any scripting, nor environment
>variables. You can have any number of wine distributions in, say, /usr
>and switch between them simply by pointing the wine link to the one you
>want and running ldconfig.
Why not ?
But my needs are different.
I do it to run the same app with 2 different
versions of Wine *at the same time*.
Gerard
trace:winsock:WSOCK32_Libmain 0x42600000 0x2 (nil)
trace:winsock:WSAStartup verReq=101
trace:winsock:WSAStartup succeeded
trace:winsock:WSOCK32_socket af=6 type=2 protocol=1000
trace:winsock:WSOCK32_socket created 00b0
trace:winsock:WSOCK32_socket af=6 type=2 protocol=1000
trace:winsock:WSOCK32_socket created 00bc
trace:winsock:WSOCK32_bind socket 00bc, ptr 0x1800ff70, length 14
trace:winsock:WSOCK32_sendto socket 00b0, ptr 0x405b63f0, length 8, flags
0
trace:winsock:WSOCK32_sendto socket 00bc, ptr 0x405b63f0, length 8, flags
0
trace:winsock:WSOCK32_sendto socket 00bc, ptr 0x405b63f0, length 8, flags
0
trace:winsock:WSOCK32_closesocket socket 000000bc
trace:winsock:WSOCK32_closesocket socket 000000b0
I run linux 2.2.19 (slackware 8.0) with modular ipx. Any hints would be
appreciated.
lash
In article <2001121214...@Woodbox.lan>, "David Bronaugh"
Don't know if you've tried this but in order for me to use IPX
networking with starcraft, I have to run it as root.
HTH
John
access seemed to be the problem (how embarrasing) ... thanks a lot :)
lash