Application Details:
Version: | 1.1.* |
License: | Retail |
URL: | http://www.terraria.org/ |
Votes: | Marked as obsolete |
Latest Rating: | Silver |
Latest Wine Version Tested: | 1.7.0 |
Maintainers: About Maintainership
What works
Gameplay, Sound, Customisation of character and cursor, joining your own server hosted from TerrariaServer.exe (other players cannot join this)
What does not
Playing with other players
Workarounds
What was not tested
Nothing
Hardware tested
Graphics:
Additional Comments
Multiplayer was only tested with one Win7 PC and my own. No combination of working servers led to a successful multiplayer session.
Operating system | Test date | Wine version | Installs? | Runs? | Used Workaround? | Rating | Submitter | ||
Current | Fedora 18 x86_64 | Aug 14 2013 | 1.7.0 | Yes | Yes | Silver | an anonymous user | ||
Show | Ubuntu 13.04 "Raring" amd64 (+ variants like Kubuntu) | Aug 03 2013 | 1.6 | Yes | Yes | Gold | an anonymous user | ||
Show | Ubuntu 13.04 "Raring" amd64 (+ variants like Kubuntu) | Jul 27 2013 | 1.6 | Yes | Yes | Gold | Luis Alvarado | ||
Show | Linux Mint 15 "Olivia" | Jul 25 2013 | 1.6 | Yes | Yes | Silver | an anonymous user | ||
Show | Linux Mint Debian | Apr 26 2013 | 1.5.28 | Yes | Yes | Gold | Joshua |
Bug # | Description | Status | Resolution | Other apps affected |
Step 1: Install Steam from the Website.
msiexec /i SteamInstall.msi
For issues related to Steam visit it's wine page: http://appdb.winehq.org/objectManager.php?sClass=application&iId=1163
Step 2: Download and install Terraria. This will install XNA Redist as well.
Step 3: Exit Steam.
Step 4: Install .NET 4 from the Full Installer from: http://www.microsoft.com/download/en/details.aspx?id=17718
wine reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4" /f
wine dotNetFx40_Full_x86_x64.exe
wine reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Install /t REG_DWORD /d 0001 /f
Step 5: Start steam and run Terraria
Connecting to multiplayer servers:
Open a terminal and run the following command(replace $SERVER with the address of the multiplayer server):
ssh -L 7777:$SERVER:7777 localhost -N
It'll open a local port forward. Let it keep running. Then, on Terraria, connect to 127.0.0.1:7777. It will fool Terraria into connecting locally and work around the "Requesting tile data..." problem.
Stuttering sound issue:
If you ran into the stuttering sound issue, all you need to do is
install some missing audio codecs using winetricks. Run the following
command:
winetricks dirac directmusic dmsynth dsound ffdshow icodecs l3codecx
Unhandled exception; Could not find a Direct3D device that supports the XNA Framework Reach profile:
If you run into this issue attempt running in a virtual desktop. Run winecfg and in the graphics tab check Emulate a virtual desktop and then enter the size you desire.
The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.
by Andrew on Sunday October 6th 2013, 17:14
If anyone can successfully use multiplayer with 1.2, I'd love additional assistance.
by Ben on Sunday October 6th 2013, 22:44
Check out this guide to get it working on the Mac (tshock.co/xf/index.php?threads/installing-tshock-on-mac-os-x-its-possible.2110/).
One thing I noticed is that If it hangs on the "Saving world. Momentary lag might result from this." message then it has crashed and the log file should say the exact issue. What worked for me was this command in Terminal:
ulimit -Hn 2048; ulimit -Sn 1024
And then everything worked great after that. Currently hosting a local server this way with a port mapping program called "Port Map" (www.codingmonkeys.de/portmap/) with a buddy. He plays on PC and I'm playing using my wine wrapper. Enjoy.
by Andrew on Monday October 7th 2013, 19:54
by Andrew on Thursday October 10th 2013, 14:55
Would still be nice to join someone else's game, but I'll make do. Again, thank you.
by Ben on Thursday October 10th 2013, 17:13
by lahtis on Monday February 18th 2013, 12:47
by Terseus on Saturday January 5th 2013, 5:55
Unfortunately the "Fixing non-working audio" instructions are not aplicable anymore since the used options does not exist in the current version of wine (1.5.21).
I also tried modifying the DirectSound registry keys DefaultSampleRate and DefaultBitsPerSample to 44100 and 16 respectively to no avail.
Any help would be appreciated.
by Terseus on Saturday January 5th 2013, 7:36
I solved it with adding the necessary class registry keys mentioned in the bug report.
If anyone have the same problem can reproduce the fix with the following commands:
1. wine reg add "HKLM\\Software\\Classes\\CLSID\\{3eda9b49-2085-498b-9bb2-39a6778493de}" /d "XNA Audio2 (manual)"
2. wine reg add "HKLM\\Software\\Classes\\CLSID\\{3eda9b49-2085-498b-9bb2-39a6778493de}\\InProcServer32" /d "C:\\windows\\system32\\XAudio2_6.dll"
3. wine reg add "HKLM\\Software\\Classes\\CLSID\\{3eda9b49-2085-498b-9bb2-39a6778493de}\\InProcServer32" /v "ThreadingModel" /t REG_SZ /d "Both"
Hope this help someone.
by Joshua on Saturday April 20th 2013, 16:08
by Bruno Finger on Wednesday April 17th 2013, 18:55
winetricks dirac directmusic dmsynth dsound ffdshow icodecs l3codecx
by Liam Dawe on Tuesday January 1st 2013, 9:33
by Bruno Finger on Wednesday April 17th 2013, 18:56
Also, are you using a 64-bits wine prefix?
by Peter on Tuesday October 2nd 2012, 11:41
by Samuel on Saturday June 30th 2012, 19:31
by Joshua on Tuesday December 27th 2011, 11:37
by PLL on Tuesday December 27th 2011, 15:31
Creating a server gets stuck, even if you run terrariaserver.exe, it seems to be some issue with .NETv4
by Xpander on Wednesday December 28th 2011, 12:06
1.3.35 still has the same "requesting tile data" bug.
by Joshua on Wednesday December 28th 2011, 13:21
by Xpander on Wednesday December 28th 2011, 13:43
by Joshua on Wednesday December 28th 2011, 16:07
by Xpander on Wednesday December 28th 2011, 16:19
by Joshua on Wednesday December 28th 2011, 17:36
by Xpander on Wednesday December 28th 2011, 17:39
i guess its something odd with my router or routing.
by Feilen on Wednesday December 28th 2011, 18:43
Since it works when it thinks it's connecting locally, just use
ssh -L localhost:7777:(server to connect to):7777 localhost
Then just connect to localhost in Terraria.
by Xpander on Thursday December 29th 2011, 2:37
by Andrew on Wednesday October 2nd 2013, 2:13
When I enter what you have listed I get "ssh: connect to host localhost port 22: Connection refused"
by Cory on Friday December 23rd 2011, 22:25
by Pontus Carlsson on Saturday December 24th 2011, 4:30
Also, a heads up to everyone; Make sure you use WINEARCH=win32, Terraria doesn't play nice with x86_64.
by PLL on Monday December 26th 2011, 2:40
recreate your prefix with
WINEARCH=win32 and follow the instructions.
by Pontus Carlsson on Monday December 19th 2011, 12:53
In my attempt to resolve this I first of all attempted to fix the NtQueryInformationThread call 16, however this isn't the issue behind it since it's merely just a `useless' information piece in XNA (Man can I express myself or what?).
Anyway! Now to the real discovery; I decided to attempt to debug the application, however. In winedbg the issue can't be reproduced!
So, somehow `magically' multiplayer works in winedbg;
winedbg "C:\Program Files\Terraria\Terraria.exe"
Then continue by pressing 'c' and enjoy!
PS. If anyone could clear out what exactly differs in execution between wine and winedbg I'd be glad to debug it and find the real issue.
by Xpander on Tuesday December 20th 2011, 10:09
and what u mean by pressing c? in terminal?
in terminal it just types c then..or u mean ctrl+c?
either way..it doesnt work for me...strange.
by Chiitoo on Tuesday December 20th 2011, 12:46
Note the 'winedbg' command instead of 'wine'.
I don't know why I haven't tried winedbg myself, or did I... I think I did a good while ago, but can't really remember what happened.
Will try (again) when I have the time to!
by Evan Goers on Tuesday December 20th 2011, 10:20
by Xpander on Tuesday December 20th 2011, 13:57
but after 5 minutes i lost connection.. will test some more when i have time.
by Evan Goers on Tuesday December 20th 2011, 20:31
...
by Xpander on Wednesday December 21st 2011, 4:08
by Pontus Carlsson on Thursday December 22nd 2011, 11:47
Ocasionally this works flawless, ocasionally it doesn't at all.
Last night for example it worked for 25 minutes, then I couldn't reconnect to that server at all anymore without retrieving the same horrible message over and over again. Which makes me think this might either be an internal condition in the TCP/IP stack of the Wine implementation or it could be a cache somewhere.
However I did find a reflector decompiled version of Terraria which might help sheed some light over the situation, or at least help find which call is causing this random happenstance.
by Chiitoo on Wednesday December 21st 2011, 11:42
How do you exactly run it?
You mention winedbg "C:\Program Files\Terraria\Terraria.exe" but at least for me, Terraria is at "steam\steamapps\common\terraria", and it cannot be started in any way other than via steam (even if I have steam running).
This is one of the reasons why I dislike steam. I mean strongly dislike. Borderline hate it...
But I digress.
That rant doesn't belong here. ^^;
by Pontus Carlsson on Thursday December 22nd 2011, 11:51
For those interested, here's my /usr/local/bin/terraria I use to start the game with;
WINEARCH=win32 winedbg "C:\Program Files\Terraria\Terraria.exe" /dev/null
Where c^M is Ctrl+v followed by a gentle touch on the enter button.
(Read gentle as "Strike the bloody thing with all power you possess.")
by Chiitoo on Friday December 23rd 2011, 11:59
I don't think for me it's even actually debugging Terraria.exe since it's a different process from Steam.exe which would obviously explain why my results differ.
Thanks for posting your findings!
by Pontus Carlsson on Saturday December 24th 2011, 3:46
I'd love to debug it properly myself, however winedbg is far to different from gdb for me to be able to utilize it.
Reflector doesn't seem to work on Wine either so can't decompile it without a Windows machine at hands.
Merry christmas!
by Evan Goers on Saturday December 24th 2011, 3:52
by Pontus Carlsson on Saturday December 24th 2011, 4:30
by Pontus Carlsson on Saturday December 24th 2011, 4:37
This repos will probably be removed and reported soon so if someone intends to use this information either clone it or work fast.
by Pontus Carlsson on Sunday December 25th 2011, 5:43
0031:Call ntdll.wine_server_release_fd(000006a4,00000034) ret=7dada950
0031:Ret ntdll.wine_server_release_fd() retval=00000000 ret=7dada950
0031:Ret ws2_32.WSAConnect() retval=ffffffff ret=04600eac
0031:Call KERNEL32.GetLastError() ret=79162510
0031:Ret KERNEL32.GetLastError() retval=0000274d ret=79162510
0031:Call KERNEL32.FormatMessageW(00003200,00000000,0000274d,00000000,0a6fddd8,00000101,00000000) ret=046010ef
0031:Ret KERNEL32.FormatMessageW() retval=00000014 ret=046010ef
0031:Call KERNEL32.GetLastError() ret=79162510
0031:Ret KERNEL32.GetLastError() retval=0000274d ret=79162510
0031:Call KERNEL32.VirtualAlloc(0d856000,00010000,00001000,00000004) ret=79143409
0031:Ret KERNEL32.VirtualAlloc() retval=0d856000 ret=79143409
0031:Call KERNEL32.RaiseException(e0434352,00000001,00000005,0a6fdf8c) ret=791cac08
0009:Ret KERNEL32.WaitForDebugEvent() retval=00000001 ret=7ecf4ce5
0009:Call KERNEL32.GetThreadContext(000000d4,7ed258a0) ret=7ecf4aff
0009:Ret KERNEL32.GetThreadContext() retval=00000001 ret=7ecf4aff
0009:Call KERNEL32.SetThreadContext(000000d4,7ed258a0) ret=7ecf59e5
0009:Ret KERNEL32.SetThreadContext() retval=00000001 ret=7ecf59e5
0009:Call KERNEL32.ContinueDebugEvent(00000029,00000031,80010001) ret=7ecf4d84
0009:Ret KERNEL32.ContinueDebugEvent() retval=00000001 ret=7ecf4d84
0009:Call KERNEL32.WaitForDebugEvent(0032dde8,ffffffff) ret=7ecf4ce5
0031:Call KERNEL32.GetLastError() ret=791f5aa7
0031:Ret KERNEL32.GetLastError() retval=0000274d ret=791f5aa7
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=0000274d ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=0000274d ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=0000274d ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=7919bfe1
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=7919bfe1
0031:Call ntdll.RtlAllocateHeap(00110000,00000000,00000168) ret=7919bf7e
0031:Ret ntdll.RtlAllocateHeap() retval=001c1c78 ret=7919bf7e
0031:Call ntdll.RtlTryEnterCriticalSection(0018dc14) ret=79141d85
0031:Ret ntdll.RtlTryEnterCriticalSection() retval=00000001 ret=79141d85
0031:Call ntdll.RtlUnwind(0a6fe200,7919ca58,0a6fde30,00000000) ret=79141f30
0031: eax=00000000 ebx=00000000 ecx=01009220 edx=0a6fd938 esi=00000001 edi=0a6fde30 ebp=0a6fd7d8 esp=0a6fd7cc ds=002b es=002b fs=0063 gs=006b flags=00000246
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Call KERNEL32.GetLastError() ret=790703b8
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=790703b8
0031:Ret ntdll.RtlUnwind() retval=00000000 ret=79141f30
0031: eax=00000000 ebx=00000000 ecx=01009220 edx=0a6fd938 esi=00000001 edi=0a6fde30 ebp=0a6fd7d8 esp=0a6fd7cc ds=002b es=002b fs=0063 gs=006b flags=00000246
0031:Call KERNEL32.GetLastError() ret=7919c04f
0031:Ret KERNEL32.GetLastError() retval=00000000 ret=7919c04f
0031:Call ntdll.RtlFreeHeap(00110000,00000000,001c1c78) ret=7919c036
0031:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7919c036
0031:Call KERNEL32.GetCurrentThreadId() ret=791cd92a
0031:Ret KERNEL32.GetCurrentThreadId() retval=00000031 ret=791cd92a
0031:Call ws2_32.WSAConnect(000006a4,0d740208,00000010,00000000,00000000,00000000,00000000) ret=04600eac
0031:Call ntdll.wine_server_handle_to_fd(000006a4,00000001,0a6fdee8,00000000) ret=7dada637
0031:Ret ntdll.wine_server_handle_to_fd() retval=00000000 ret=7dada637
If my eyes don't lie this is basically an infinte loop based on a condition that never changes more or less. WSAConnect returns error with errno 0x0000274d (WSAECONNREFUSED), however this seems slightly off since gaming works on LAN and not WAN. So I'd say this has something to do with routing, but that's just a guess.
The real code for this looks;
if ((!clientSock.locked && !disconnect) && clientSock.networkStream.DataAvailable)
{
clientSock.locked = true;
clientSock.networkStream.BeginRead(clientSock.readBuffer, 0,
clientSock.readBuffer.Length,
new AsyncCallback(clientSock.ClientReadCallBack),
clientSock.networkStream);
}
Where clientSock is an instance of the internal class ClientSock() (found here: raw.github.com/Deathly/TerrariaAPI/master/Terraria/ClientSock.cs)
This isn't a solution but hopefully it'll help someone else along the way.
by Renato Alves on Saturday December 10th 2011, 7:47
In external connections it displays the message "Requesting tile data" and just sits there indefinitely.
Does anyone experiences this? Suggestions to workaround this issue?
by Chiitoo on Monday December 12th 2011, 12:28
I haven't yet looked into it too much, but I did manage to connect to a server with the "relay" debug channel enabled. As one might guess, FPS would be too low to even think of actually doing anything (Around 1 or less frames per second).
Without "relay" it sits at "Requesting tile data" for me too, and what comes to hosting, the server application seems to run even worse than before (just a quick try: seems to stall when selecting a world, when in the past, I could actually set up the server and connect to it myself). Using "Host & Play" from the game menu, there is behaviour that I think was there not before, i.e., it seems to try to open the server application, but they fail.
Will try to look into it, but I doubt I can find out anything useful.
by Xpander on Monday December 12th 2011, 14:01
i have same problem cant connect to mp servers.
winedebug=+relay ? or something?
by Chiitoo on Monday December 12th 2011, 14:23
Just a while ago, I was testing it by redirecting the output into a file (makes the application run faster), but then I would not be able to get on the server again... weirdness! :S
by Chiitoo on Tuesday December 20th 2011, 19:14
Seems quite bizarre how slowing down the application allows something like that to work...
by Renato Alves on Monday December 12th 2011, 18:15
You can also download the standalone server from the official terraria website.
Following some of my tests I can now share a story of success, although I do not understand the reasons. If someone could reproduce it would be a good start to get some setup specific issues out of the way.
So I started by setting up a Terraria server in a machine running windows 7. If I connect to the machine directly I get the "Requesting tile data" message and nothing else. Still, the fact that I could connect to the virtualmachine in my previous test got me thinking... What if I can make the remote server look as if it was local to wine and the game? An hour later or so I had setup an SSH server on windows and I was forwarding the port (other tunneling software should work too). To my surprise the "Requesting tile data" message vanished in a second and I was in-game. The connection worked flawlessly as if I was playing locally, no lag or anything.
For SSH server I used an old version of CopSSH that you can still find for free in the web, newer versions are paid. Also tried freesshd but couldn't get it to run as it always complained that I didn't have admin rights even when running as admin (windows 7).
This was all with wine 1.3.34 and the normal install procedure.
Obviously this won't work for most servers as you are not allowed to create tunnels, but it should provide a good starting point to understand why does the game work if the connection is made to localhost but doesn't if done directly to a remote host.
Let me know how it goes for you.
by Renato Alves on Monday December 12th 2011, 18:16
by Xpander on Thursday December 15th 2011, 18:19
if i joined with hamachi ip r public ip the server just crashed. or if someone else tryed to connect my server, the server crashed after message "someone connected..."
no further ideas
by David Kowis on Friday October 11th 2013, 16:36
ssh localhost -L 7777:destinationserver:7777
Worked great for me :) It's an odd thing to work around, but this worked stupidly easy.