ThE_TemPLaR
2009-May-24 16:35 UTC
[Wine] Re: C&C Red Alert 3 - Lan (and also hamachi) play
Well, I found a solution and posted it on the appdb's page of Red Alert 3. http://appdb.winehq.org/objectManager.php?sClass=version&iId=14371 Here's a copy of the informations I posted on the Red Alert's Appdb webpage :> Thanks to raphael, here's a mini "how to play on LAN to RA3 with Wine + windows users, when the LAN is a VPN" > > My hostname, in this tutorial, is TACHIBANA. > > 1. First establish a VPN. I use a bridged VPN set up with OpenVPN. It works fine. > The VPN client created a tap0 interface with the IP 11.0.0.3. > 2. Re-route packets for 255.255.255.255 to your VPN interface (Here tap0) > # route add host 255.255.255.255 dev tap0 > 3. In /etc/hosts, remove any reference to your hostname (TACHIBANA here) and, on the first line, add : > 11.0.0.3 TACHIBANA > 4. Compile this little hack made by Raphael : http://hughes.homelinux.org:8080/~raphael/bind_hack.tar.bz2 . On a 64 bits machine, here's how I compiled this little hack : > $ cc bind_hack.c -o bind_hack.so -O2 -fPIC -Wall -shared -lc -nostdlib -m32 > 5. Launch RA3 with wine, while preloading this little hack. > /path/to/RA3$ LD_PRELOAD=/tmp/bind_hack/bind_hack.so wine RA3 > 6. Connect on the Lobby and check if you see your friends. > 7. Create a game, let the users connect, choose their team, ... > 8. Launch the game > 9. Play > 10. ????? > 11. Profit ! > > For info, here are my network informations : > TACHIBANA:~# ifconfig > eth0 Link encap:Ethernet HWaddr 00:1d:09:c3:25:9e > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > RX packets:0 errors:0 dropped:0 overruns:0 frame:0 > TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 > collisions:0 lg file transmission:1000 > RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) > Interruption:17 > > lo Link encap:Boucle locale > inet adr:127.0.0.1 Masque:255.0.0.0 > adr inet6: ::1/128 Scope:H?te > UP LOOPBACK RUNNING MTU:16436 Metric:1 > RX packets:21802 errors:0 dropped:0 overruns:0 frame:0 > TX packets:21802 errors:0 dropped:0 overruns:0 carrier:0 > collisions:0 lg file transmission:0 > RX bytes:1104381 (1.0 MiB) TX bytes:1104381 (1.0 MiB) > > tap0 Link encap:Ethernet HWaddr 66:b6:cc:e4:c2:23 > inet adr:11.0.0.3 Bcast:11.0.0.255 Masque:255.255.255.0 > adr inet6: fe80::64b6:ccff:fee4:c223/64 Scope:Lien > UP BROADCAST RUNNING PROMISC ALLMULTI MULTICAST MTU:1500 Metric:1 > RX packets:76098 errors:0 dropped:0 overruns:0 frame:0 > TX packets:63247 errors:0 dropped:1122 overruns:0 carrier:0 > collisions:0 lg file transmission:100 > RX bytes:29197572 (27.8 MiB) TX bytes:22467044 (21.4 MiB) > > wlan0 Link encap:Ethernet HWaddr 00:1f:3c:12:cd:75 > inet adr:192.168.1.50 Bcast:192.168.1.255 Masque:255.255.255.0 > adr inet6: fe80::21f:3cff:fe12:cd75/64 Scope:Lien > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > RX packets:131405 errors:0 dropped:0 overruns:0 frame:0 > TX packets:125745 errors:0 dropped:0 overruns:0 carrier:0 > collisions:0 lg file transmission:1000 > RX bytes:72057503 (68.7 MiB) TX bytes:41252460 (39.3 MiB) > > wmaster0 Link encap:UNSPEC HWaddr 00-1F-3C-12-CD-75-00-00-00-00-00-00-00-00-00-00 > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > RX packets:0 errors:0 dropped:0 overruns:0 frame:0 > TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 > collisions:0 lg file transmission:1000 > RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) > > > TACHIBANA:~# route > Table de routage IP du noyau > Destination Passerelle Genmask Indic Metric Ref Use Iface > 255.255.255.255 * 255.255.255.255 UH 0 0 0 tap0 > 11.0.0.0 * 255.255.255.0 U 0 0 0 tap0 > 192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0 > link-local * 255.255.0.0 U 1000 0 0 wlan0 > default neufbox 0.0.0.0 UG 0 0 0 wlan0 > > TACHIBANA:~# cat /etc/hosts > 11.0.0.3 TACHIBANA > 127.0.0.1 localhost.localdomain localhost > > # The following lines are desirable for IPv6 capable hosts > ::1 localhost ip6-localhost ip6-loopback > fe00::0 ip6-localnet > ff00::0 ip6-mcastprefix > ff02::1 ip6-allnodes > ff02::2 ip6-allrouters > ff02::3 ip6-allhosts > > # dpkg -l wine > [...] > ii wine 1.1.21~winehq1-1 Microsoft Windows Compatibility Layer > > System : Debian Sid
ThE_TemPLaR wrote:> Well, I found a solution and posted it on the appdb's page of Red Alert 3. > > http://appdb.winehq.org/objectManager.php?sClass=version&iId=14371 > > Here's a copy of the informations I posted on the Red Alert's Appdb webpage : > > > > Thanks to raphael, here's a mini "how to play on LAN to RA3 with Wine + windows users, when the LAN is a VPN" > > > > My hostname, in this tutorial, is TACHIBANA. > > > > 1. First establish a VPN. I use a bridged VPN set up with OpenVPN. It works fine. > > The VPN client created a tap0 interface with the IP 11.0.0.3. > > 2. Re-route packets for 255.255.255.255 to your VPN interface (Here tap0) > > # route add host 255.255.255.255 dev tap0 > > 3. In /etc/hosts, remove any reference to your hostname (TACHIBANA here) and, on the first line, add : > > 11.0.0.3 TACHIBANA > > 4. Compile this little hack made by Raphael : http://hughes.homelinux.org:8080/~raphael/bind_hack.tar.bz2 . On a 64 bits machine, here's how I compiled this little hack : > > $ cc bind_hack.c -o bind_hack.so -O2 -fPIC -Wall -shared -lc -nostdlib -m32 > > 5. Launch RA3 with wine, while preloading this little hack. > > /path/to/RA3$ LD_PRELOAD=/tmp/bind_hack/bind_hack.so wine RA3 > > 6. Connect on the Lobby and check if you see your friends. > > 7. Create a game, let the users connect, choose their team, ... > > 8. Launch the game > > 9. Play > > 10. ????? > > 11. Profit ! > > > > For info, here are my network informations : > > TACHIBANA:~# ifconfig > > eth0 Link encap:Ethernet HWaddr 00:1d:09:c3:25:9e > > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > > RX packets:0 errors:0 dropped:0 overruns:0 frame:0 > > TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 > > collisions:0 lg file transmission:1000 > > RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) > > Interruption:17 > > > > lo Link encap:Boucle locale > > inet adr:127.0.0.1 Masque:255.0.0.0 > > adr inet6: ::1/128 Scope:H?te > > UP LOOPBACK RUNNING MTU:16436 Metric:1 > > RX packets:21802 errors:0 dropped:0 overruns:0 frame:0 > > TX packets:21802 errors:0 dropped:0 overruns:0 carrier:0 > > collisions:0 lg file transmission:0 > > RX bytes:1104381 (1.0 MiB) TX bytes:1104381 (1.0 MiB) > > > > tap0 Link encap:Ethernet HWaddr 66:b6:cc:e4:c2:23 > > inet adr:11.0.0.3 Bcast:11.0.0.255 Masque:255.255.255.0 > > adr inet6: fe80::64b6:ccff:fee4:c223/64 Scope:Lien > > UP BROADCAST RUNNING PROMISC ALLMULTI MULTICAST MTU:1500 Metric:1 > > RX packets:76098 errors:0 dropped:0 overruns:0 frame:0 > > TX packets:63247 errors:0 dropped:1122 overruns:0 carrier:0 > > collisions:0 lg file transmission:100 > > RX bytes:29197572 (27.8 MiB) TX bytes:22467044 (21.4 MiB) > > > > wlan0 Link encap:Ethernet HWaddr 00:1f:3c:12:cd:75 > > inet adr:192.168.1.50 Bcast:192.168.1.255 Masque:255.255.255.0 > > adr inet6: fe80::21f:3cff:fe12:cd75/64 Scope:Lien > > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > > RX packets:131405 errors:0 dropped:0 overruns:0 frame:0 > > TX packets:125745 errors:0 dropped:0 overruns:0 carrier:0 > > collisions:0 lg file transmission:1000 > > RX bytes:72057503 (68.7 MiB) TX bytes:41252460 (39.3 MiB) > > > > wmaster0 Link encap:UNSPEC HWaddr 00-1F-3C-12-CD-75-00-00-00-00-00-00-00-00-00-00 > > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > > RX packets:0 errors:0 dropped:0 overruns:0 frame:0 > > TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 > > collisions:0 lg file transmission:1000 > > RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) > > > > > > TACHIBANA:~# route > > Table de routage IP du noyau > > Destination Passerelle Genmask Indic Metric Ref Use Iface > > 255.255.255.255 * 255.255.255.255 UH 0 0 0 tap0 > > 11.0.0.0 * 255.255.255.0 U 0 0 0 tap0 > > 192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0 > > link-local * 255.255.0.0 U 1000 0 0 wlan0 > > default neufbox 0.0.0.0 UG 0 0 0 wlan0 > > > > TACHIBANA:~# cat /etc/hosts > > 11.0.0.3 TACHIBANA > > 127.0.0.1 localhost.localdomain localhost > > > > # The following lines are desirable for IPv6 capable hosts > > ::1 localhost ip6-localhost ip6-loopback > > fe00::0 ip6-localnet > > ff00::0 ip6-mcastprefix > > ff02::1 ip6-allnodes > > ff02::2 ip6-allrouters > > ff02::3 ip6-allhosts > > > > # dpkg -l wine > > [...] > > ii wine 1.1.21~winehq1-1 Microsoft Windows Compatibility Layer > > > > System : Debian Sid >I could kiss you! Wait, I WILL kiss you!! Thank you so much for that. I was really close, in fact, I had done the exact same thing before (except that the shared library was programmed by me, but the purpose was the same). The only difference between what I did and what you is that I never tried to use that exact combination (hamachi ip in hosts and hack). I managed to get my friend in my game when I made it bind to 0.0.0.0 with my /etc/hosts, but it would fail, since the packages weren't being sent to my IP after that. Thank you very much, once more!! This solves LAN and Hamachi!