Application Details:
Version: | Latest |
License: | Retail |
URL: | http://www.terraria.org/ |
Votes: | 4 |
Latest Rating: | Gold |
Latest Wine Version Tested: | 6.7 |
Maintainers: About Maintainership
What works
Graphics, sound, keyboard and mouse control. Single player and joining multiplayer. No ssh hacks needed.
What does not
Hosting multiplayer server. Steam overlay doesn't seem to trigger when in fullscreen.
Workarounds
What was not tested
Beating the game (That would take a while;)
Hardware tested
Graphics:
Additional Comments
Follow winetrick instructions literally. The dotnet40 must be installed before xna40 (and terraria installs its own xna40 on first startup).
Operating system | Test date | Wine version | Installs? | Runs? | Used Workaround? | Rating | Submitter | ||
Show | Linux Mint 20 "Ulyana" | May 19 2021 | 6.7 | Yes | Yes | Yes | Gold | Jeremy | |
Show | Arch Linux x86_64 | Jan 25 2021 | 6.0 | Yes | Yes | No | Platinum | Artem Baseniuk | |
Show | Fedora 33 x86_64 | Nov 19 2020 | 5.21-staging | N/A | Yes | No | Silver | Jes�s Ezequiel Ramos Moreno | |
Show | Manjaro Linux | Nov 05 2019 | 4.18 | Yes | Yes | Yes | Gold | Codian | |
Show | Ubuntu 18.04 "Bionic" amd64 (+variants like Kubuntu) | Jun 03 2019 | 4.9 | Yes | No | No | Garbage | Aaron Franke |
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 Allen on Thursday October 24th 2019, 11:15
by Alistair Leslie-Hughes on Tuesday July 2nd 2019, 21:32
install xna40 via winetricks
by Andy Mender on Wednesday July 29th 2015, 15:44
2. wine-mono from official repositories not needed.
3. xna40 from winetricks not needed (Steam will install it correctly)
4. dotnet40 from winetricks needed (required by native xna40).
3. Sound does not work out-of-the-box.
by Brottweiler on Wednesday July 29th 2015, 15:45
by Andy Mender on Wednesday July 29th 2015, 16:07
I just realized I have 32-bit and 64-bit libraries for pulseaudio installed, but without pulseaudio itself.
by Brottweiler on Wednesday July 29th 2015, 16:23
by Andy Mender on Wednesday July 29th 2015, 16:34
I will test Terraria once I have time to set up a clean WINE prefix and will then double-post with results.
Thanks for help!
by Chiitoo on Sunday July 19th 2015, 15:36
I've not looked into it much yet, but the game crashes for me right when it gets done with loading all the resources (another player on the server actually saw my character standing around for several seconds, though I never get to even see the world).
The only error in terminal is:
err:eventlog:ReportEventW L"Application: Terraria.exe\nFramework Version: v4.0.30319\nDescription: The process was terminated due to an internal error in the .NET Runtime at IP 791CB8C4 (79140000) with exit code 80131506.\n"
and the backtrace is of not much use:
0x7bc7f97d DbgBreakPoint+0x1 in ntdll: ret
by Brottweiler on Sunday July 19th 2015, 16:17
by Chiitoo on Sunday July 19th 2015, 16:20
I'll keep on keeping on with it.
by Chiitoo on Monday July 20th 2015, 9:38
Got rather confused with all I tried while sleepy. I'll perhaps try tracking it down better at some point!
by JoSch on Saturday May 23rd 2015, 6:16
When I enter a game (no matter whether local or multiplayer) then I can neither see the map nor do my tab or M key do anything. Leaving the game and going into the global options reveals that the map is deactivated. So I activate the map and enter the game again. Sometimes when I do this, I can see the map in the upper right corner for the fraction of a second but then it vanishes without coming back. Going into the global settings again after that shows that the map disabled itself. Repeating this process leads to the same results.
Does anybody experience a similar issue?
by Kruno on Saturday July 11th 2015, 5:48
by JoSch on Saturday July 11th 2015, 5:59
In my case the problem went away and I can now see the map by upgrading to wine 1.7.38
by Tyler Adam on Sunday July 6th 2014, 19:26
What did fix the problem for me was, after installing the codecs, running winecfg. Go to the Libraries tab and edit both "dsound" and "dswave" to be "builtin, then native." Sound works smoothly for me after this.
by Drake on Monday June 16th 2014, 18:09
I get this when I install. I install exactly the same was as directed, but I do have to install the Windows XML libs so the installer will work. Everything seems to install nicely, but getting in game yields this result every time. Tried changing resolution, changing multicored lighting off or different values, different in-game lighting modes, etc.
Not sure what the problem is or how to solve it. Any help much appreciated.
by Joshua on Monday June 16th 2014, 19:28
by Drake on Monday June 16th 2014, 19:40
OS X 10.9.3
Intel HD 4000
I've only ever seen graphics corruption like this with Terraria. Obviously the Intel integrated solutions aren't great, but the 4000 is worlds ahead of previous models. As with all graphics cards on Apple OS's, the drivers are as up to date as they can be given that I'm on the most recent patch.
Further, I've been able to play Terraria in the past with no problems (over the course of several years and 5 major OS updates).
In general, I'm fairly tech savvy so (hopefully) it's not something stupid that I'm missing. I've given a few Wine options a shot like emulating a virtual desktop and changing Windows version.
The only other noteworthy thing is that I'm using Wineskin so I'm doing it with GUI, rather than command line Wine.
by Drake on Monday June 16th 2014, 19:44
www.reddit.com/r/Terraria/comments/25hpvs/how_to_get_terraria_124_running_in_mac_os_x/
And here:
www.terrariaonline.com/threads/how-to-create-a-fast-mac-wrapper-with-wineskin.84490/page-7#post-3015371
by Joshua on Tuesday June 17th 2014, 20:10
Installing some of the d3d dlls may be of use also, such as: winetricks d3dx9
by Drake on Wednesday June 18th 2014, 12:14
I also tried installing some of the d3d's. Started off with _36 and then the full d3dx9 when that didn't work.
I've been steadily adding to overrides trying to sort the problem as it continued to not work, so what I have now is way overkill. To start I just had the .dll's listed in the instructions. Now:
atl100, atl80, atl90
d3d8, d3d9, d3dim, d3drm, d3dx8, all d3dx9_, d3dxof
dciman32
ddrawex
devenum
dinput
dinput8
dmband
dmcompos
dmime
dmloader
dmscript
dmstyle
dmsynth
dmusic
dmusic32
dnsapi
dplay
dplayx
dpnaddr
dpnet
dpnhpast
dpnlobby
dsound
dswave
dwrite
dxdiag.exe
dxdiagn
gameoverlayrenderer(disabled)
mscoree
msdmo
msvcm80
msvcm90
msvcm100
msvcp100, 80, 90
msvcr100, 80, 90
msxlm3
qcap
quartz
streamci
vcomp, vcomp100, vcomp90
by Joseph Andersen on Friday April 11th 2014, 8:50
wine 1.6.1
Ubuntu 13.10.
I installed a clean 32 bit .wine prefix, with wine set to act as Win 7 (I have tried xp as well). Then installed xna40 (XNA Framework 4.0) and dotnet40 (MS.NET 4.0).
After that I installed steam using winetricks
"env WINEPREFIX="~/,wine winetricks --no-isolate steam"
Then installed terraria as I normally would.
When instillation is finished I'll click play, and for a split second i'll get the Preparing to launch terraria prompt and it goes away and terraria does not launch.
The terminal displays this:
me:dwmapi:DwmSetWindowAttribute (0x8013c, 2, 0x33e554, 4) stub
fixme:dwmapi:DwmSetWindowAttribute (0x8013c, 3, 0x33e560, 4) stub
fixme:dwmapi:DwmSetWindowAttribute (0x8013c, 4, 0x33e550, 4) stub
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\Program Files\\Steam\\SteamApps\\common\\Terraria\\Terraria.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files\\Steam\\SteamApps\\common\\Terraria\\Terraria.exe" failed, status c0000135
I have tried re-installing everything multiple times and I cant seem to find anyone who is having this same problem. Help??
by Joshua on Saturday April 12th 2014, 17:17
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\Program Files\\Steam\\SteamApps\\common\\Terraria\\Terraria.exe") not found
Which should be resolved with a fresh prefix, you might try using another prefix with something like:
export WINEPREFIX=~/terraria
winetricks -q --no-isolate steam dotnet40 xna40
by iive on Friday May 30th 2014, 19:06
I tested if terraria runs with the default mono. Installed it in steam. At first run, the game started its own xna40 installer, then it died with missing mscoree.dll . After installing winetrick dotnet40, the xna40 setup claimed it had already been installed and refused to run. The game kept dying with the same missing library.
Then I redid it, following the instructions literally and it worked.
by Drake on Tuesday June 10th 2014, 1:52
by Drake on Tuesday June 10th 2014, 12:55
Now I've just got some graphics corruption in game to sort out.
by iive on Wednesday June 11th 2014, 4:35
I have no idea what might go wrong for you. I compile my own wine, I built it with prelink support. I did install in clean wineprefix and from the looks of it, it seems that gecko and mono engines were not installed (mono is .net implementation).
by iive on Wednesday June 11th 2014, 4:40
by Drake on Friday June 13th 2014, 0:13
i.imgur.com/V16hcfj.png
I'm franky baffled, no idea where to go from here. I've tried multiple times, clean prefixes all of them.
by Drake on Sunday June 15th 2014, 17:29
by Drake on Sunday June 15th 2014, 17:30
by nskaran on Sunday March 23rd 2014, 14:34
in any case, here is the debugger output: pastebin.com/EjG0HxaQ
does anyone have an idea for what to do? is this an established problem? i haven't been able to find a similar bug report, unless the crash during windowed to fullscreen mode is a related bug. (i tried enabling "emulate a virtual desktop" in case that was it, but it doesn't seem to have helped.)
by Joshua on Sunday March 23rd 2014, 15:22
by nskaran on Sunday March 23rd 2014, 15:44
by Brennan on Sunday April 6th 2014, 1:14
by nskaran on Sunday March 23rd 2014, 13:24
the only way i've been able to get Steam working again is to uninstall and reinstall. does anyone have any idea what's going on and what i should do? thanks!
by nskaran on Sunday March 23rd 2014, 14:24
by Josh Ventura on Saturday February 15th 2014, 18:27
Joining for me works fine; I didn't even need the tile data fix. Or I don't remember applying it when I was going down the laundry list of winetricks commands to make the game work in the first place.
by Andre Couto Gimael on Thursday January 23rd 2014, 10:09
I've tried running it straight from the .exe, here's what I got:
fixme:ntdll:find_reg_tz_info Can't find matching timezone information in the registry for bias 180, std (d/m/y): 16/02/2014, dlt (d/m/y): 19/10/2014
Unhandled Exception:
System.NotSupportedException: Can't get timezone name.
at System.CurrentSystemTimeZone..ctor (Int64 lnow) [0x00000] in :0
at System.TimeZone.get_CurrentTimeZone () [0x00000] in :0
at System.DateTime.get_Now () [0x00000] in :0
at Microsoft.Xna.Framework.Game..ctor () [0x00000] in :0
at Terraria.Main..ctor () [0x00000] in :0
at Terraria.Program.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NotSupportedException: Can't get timezone name.
at System.CurrentSystemTimeZone..ctor (Int64 lnow) [0x00000] in :0
at System.TimeZone.get_CurrentTimeZone () [0x00000] in :0
at System.DateTime.get_Now () [0x00000] in :0
at Microsoft.Xna.Framework.Game..ctor () [0x00000] in :0
at Terraria.Main..ctor () [0x00000] in :0
at Terraria.Program.Main (System.String[] args) [0x00000] in :0
Do you guys have any idea what I could do to get it running?
by Andre Couto Gimael on Thursday January 23rd 2014, 10:12
by Andre Couto Gimael on Monday January 27th 2014, 11:18
Installed wine 1.7
Installed winetricks
Installed dotnet40 and xna40 to the same x86 wineprefix
(like env WINEDEBUG="fixme-all" WINEPREFIX=~/.wsteam WINEARCH=win32 winetricks dotnet40 xna40)
Installed steam to the same wineprefix WITH NO ISOLATE
(like env WINEDEBUG="fixme-all" WINEPREFIX=~/.wsteam winetricks --no-isolate steam)
Installed and ran Terraria just fine.
Just watch out if you want to switch to full screen.
I'm running Linux Mint 16 KDE, and when I switched to full screen without setting the game resolution to be the same as my native resolution, it glitched pretty hard.
And thank you, community, for having answered ! Oh, wait...
no one did.
by Wine Fan on Thursday December 19th 2013, 16:34
by Not telling you on Tuesday November 26th 2013, 10:31
I have everything installed correctly and am running wine 1.7
by Soulcage on Tuesday November 26th 2013, 21:10
by alec on Wednesday November 27th 2013, 18:13
by Joshua on Sunday December 1st 2013, 19:00
by Not telling you on Tuesday December 3rd 2013, 11:38
Thank you for helping by the way.
by Joshua on Saturday December 7th 2013, 10:54
by Not telling you on Monday December 9th 2013, 6:53
by Not telling you on Thursday December 12th 2013, 8:49
By reinstalling everything terraria works but now when I want to create my character the game crashes and displays on error (Wine error).
by Kai Blaschke on Friday December 13th 2013, 4:56
Bug 32194 ( bugs.winehq.org/show_bug.cgi?id=32194 ) mentions the problem, I posted a small patch there which implements a simple stub for the missing function. After applying the patch, Terraria worked flawlessly for me.
by Chiitoo on Monday December 30th 2013, 6:27
Looking at your following posts, this might not be applicable at all, but your initial description (including the no error messages at all later on) is so similar that I'll just leave this here.
Using nvidia-drivers (that is, the proprietary drivers), the game would not run, and since it had been quite a while since I last played it, I had forgotten which prefix I had it running on, and probably deleted my maps and characters at some point due to forgetting where I put them, oops, but I digress!
It took me quite a lot of fiddling around with dotNet, thinking it's that where the problem lied, but when I ran Terraria.exe directly from under steamapps/common/terraria, I noticed it would actually produce a segmentation fault, while launching via Steam would only give the stub, fixme:thread:SetThreadStackGuarantee, and nothing more.
An old Intel-based laptop I tested then would actually get complains about the GPU and some dotNet related things would also appear, as it normally should. All that prompted me to test different drivers from nvidia on the other box, and with 304.116 and/or 304.117 Terraria would run again.
It does not run with either 319.76 nor 331.20.
As this is on x86_64, I guess it could be a combination of something like the x86-libs which Gentoo currently has around the tree, or it's something particular in the drivers, and should be looked more into...
by Chiitoo on Tuesday January 14th 2014, 7:15
by Bruno on Tuesday November 5th 2013, 9:31
I have played using this workaround on other PC before and everything went flawless, but now it just fails.
Are there any solutions other than using ssh?
by Jacob on Thursday July 3rd 2014, 8:53
by Jacob on Thursday July 3rd 2014, 8:53
by Colin Crowley on Saturday November 2nd 2013, 2:41
Also, I checked a bit. Seems the multiplayer issue arises only on large worlds for me. Small ones work fine without the ssh workaround. Not sure about medium. As of now, I haven't found a way to run it as a server successfully though.
by Evan Goers on Saturday November 2nd 2013, 23:55
by Felix Hellmann on Saturday October 19th 2013, 9:17
How did you do that? Who hosted? Lan or Internet? What did you do to make it work?
I always get stuck on "Requesting Tile Data".
by Evan Goers on Saturday October 19th 2013, 15:01
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.
by Felix Hellmann on Sunday October 20th 2013, 3:27
by Xylemon on Sunday October 27th 2013, 1:11
by Xylemon on Sunday October 27th 2013, 1:14
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.
by Hoot215 on Saturday December 3rd 2011, 17:15
by Joshua on Monday December 5th 2011, 19:02
winetricks dsoundhw=Emulation
by Hoot215 on Tuesday December 6th 2011, 18:24
by Hoot215 on Wednesday December 7th 2011, 16:33
NOTE: For anyone having the issue that I had, try restarting your computer. It seemed to work for me.
by Jen on Thursday November 17th 2011, 14:24
by Joshua on Thursday November 17th 2011, 20:58
by Jen on Thursday November 17th 2011, 21:02
by Evilandi666 on Saturday August 6th 2011, 18:29
It should work (on Windows) but in wine it always fails with "no suitable card found". XNA Wiki says, 4500MHD should meet the requirements...
anyone tried it or has an idea?
by Raffaele on Wednesday October 19th 2011, 8:03
by lis82 on Friday June 8th 2012, 3:59
by Hoot215 on Thursday August 4th 2011, 16:58
Running Kubuntu 11.04 x86_64.
by Hoot215 on Sunday August 7th 2011, 15:25
by Filipe Teixeira on Wednesday July 20th 2011, 3:28
Tried with all version since .19 to .24
by Gareth Schakel on Saturday May 11th 2013, 3:00
by John Koelndorfer on Friday June 17th 2011, 20:16
I was pulling my hair out for days trying to figure out why I could not get this working. I am ecstatic!
by Lars-Philip on Monday June 6th 2011, 12:54
"Error parsing:
C:/windows/Microsoft .NET Framework/Framework/v4.0.30319/config/machine.config
Parser returned error 0x80004005"
But then Terraria starts just fine, I can play, but no sound.
by Joshua on Friday June 10th 2011, 14:48
by Joshua on Friday June 10th 2011, 19:35
by Lars-Philip on Saturday June 11th 2011, 9:46
by Joshua on Sunday June 5th 2011, 17:00
by Stanislav Oskolkov on Thursday June 2nd 2011, 13:07
Лучше заранее убедиться, что ваша видео-карта поддерживается и может работать с XNA (Это касается и Windows-пользователей)
Список здесь:
www.xnawiki.com/index.php?title=Graphics_card_compatibility
(Стоит заметить, что, если карты в списке поддерживаемых нет то это ещё не значит, что она не может работать с XNA. Но если ваша карта в списке неподдерживаемых — увы, с ней вам поиграть в «Террарию» не светит)
Пункт 0, только для пользователей MacOS (На Linux не требуется):
0a: macports
0b: набираем в консоли
sudo port install winetricks
sudo port install wine-devel
Пункт 1:
Устанавливаем Wine и Winetricks (если не установился автоматом и если они у вас до сих пор не установлены) — крайне желательно, последних версий.
Пункт 2:
Устанавливаем Steam (можно через web-сайт). Как вариант — можно запустить уже установленный (даже в Windows, если у вас есть доступ к папке с ним). При установке Steam'а, он может начать обновляться, но зависнуть или вылететь в процессе обновления. Просто запустите Steam, он дообновится сам. После обновления — залогиньтесь.
Пункт 3:
Устанавливаем Terraria через Steam и пробуем запустить. Steam так же сам должен начать установку XNA (если он у вас к этому моменту ещё не установлен) во время установки или запуска игры. Если игра не запустится, перейдите к следующему пункту.
Пункт 4:
Выйдите из Steam'а
Пункт 5:
Запустите игру через консоль (терминал):
cd
Например: cd .wine/drive_c/Program Files/Steam/steamapps/common/terraria
(Чтобы перейти в папку с игрой)
wine Terraria.exe
После этого должно появиться сообщение, что вам нужен установленный Mono для Windows
Пункт 6:
Запускаем Winetricks и устанавливаем Mono 2.10 и 2.8 + Так же может понадобиться установка xact и xinput
( Если вы пользуетесь графической оболочкой последних версий Winetricks'а, то нужные пункты будут в меню «Select the default wineprefix» -> «Install a Windows DLL or component» )
Пункт 7а:
Скачиваем .NET 4 отсюда:
www.microsoft.com/downloads/en/details.aspx?familyid=0a391abd-25c1-4fc0-919f-b21f31ab88b7
И устанавливаем. Вручную, запуская файл с помощью Wine'а или
Через консоль:
wine dotNetFx40_Full_x86_x64.exe
(Вместо dotNetFx40_Full_x86_x64.exe может быть полный путь до файла установки. Не забудьте «взять» его в кавычки, если в пути у вас присутствуют пробелы, или ставить знак "\" перед каждым пробелом)
Установка, скорее всего, прервётся и нужно будет её повторять до тех пор, пока установщик не предложит восстановить установленную программу (пункт «Repair» в установщике). Соглашаемся на восстановление, ждём около полминуты и, если процесс «зависнет», «убиваем» его. Нужные нам компоненты уже должны были быть установлены.
Пункт 7б:
Если появляется сообщение что NET уже установлен, то придётся запись о его установке стереть вручную в реестре.
Запускаем regedit
Через консоль:
wine regedit
( Так же можно найти regedit.exe и запустить его вручную. Он, обычно, на виртуальном «Диске C:». Полный путь, обычно, примерно такой: '/home//.wine/dosdevices/c:/windows/regedit.exe' )
и удаляем следующий нод (пункт):
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v4
Затем возвращаемся к Пункту 7а
Пункт 8:
Возможно (А, возможно, и нет), потребуется скопировать нужные файлы библиотеки в папку с игрой.
Нужные файлы называются
Accessibility.dll, System.configuration.dll, System.dll, System.Drawing.dll, System.Windows.Forms.dll, System.Windows.Forms.DataVisualization.dll and System.XML.dll
(если лишних 200 мегабайт не жалко, можете скопировать всё)
И находятся они в папке
/windows/Microsoft.NET/Framework/v4.0.30319/
на «виртуальном» «Диске C»
(Или же можно попробовать «стащить» их из реально установленной Windows)
Через консоль скопировать можно так:
cd
например: cd .wine/drive_c/Program Files/Steam/steamapps/common/terraria
cp ~/.wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/* .
Стоит заметить, что в будущем, при установке обновлённых версий 4-го .NET, название папки, откуда брать файлы, может несколько поменяться.
Пункт 9:
Запускаем Steam, логинимся, запускаем игру.
При этом может появиться окошко с ошибкой, но, после его закрытия, игра через несколько секунд все равно запустится.
Пункт 10: Если ничего не получается, попробуйте сделать всё заново.
С «пираткой» почти всё то же самое, только XNA придётся устанавливать вручную и пути несколько поменяются.
PS Это адаптация английской инструкции и некоторых советов
PPS Игра хорошая, мне не жалко было «отдать» за неё 10 «баксов»
by paulguy on Tuesday May 24th 2011, 12:38
by Evilandi666 on Monday May 23rd 2011, 11:27
See Update 17-5-2011, Steam should also have this Version.
See also here for a HowTo:
www.terrariaonline.com/threads/terraria-macos-and-linux.1397/page-2#post-85844
(Works for some people, but for most it won't work.)
It's disappointing that people can't read before they post...
by Evilandi666 on Friday May 20th 2011, 17:54
Seems to be working for some people, for me it does not.
by Cless on Saturday May 21st 2011, 4:03
by paulguy on Saturday May 21st 2011, 4:09
by Someone on Monday May 23rd 2011, 18:08
1. In regedit delete HKLM\Software\Microsoft\NET Framework Setup\NDP\v4
dotNetFX40_Full_x86_x64.exe wouldn't even attempt to install until I deleted that. It was telling me I already had it installed.
2. Install dotNetFX40_Full_x86_x64.exe
www.microsoft.com/downloads/en/details.aspx?familyid=0a391abd-25c1-4fc0-919f-b21f31ab88b7
The install will fail, but all the files you need will be put in.
3. Install xnafx40_redist.msi
www.microsoft.com/downloads/en/details.aspx?familyid=a88c6dec-aeae-42cd-a108-d35c013c3b97
4. Install Terraria
5. Copy all the files from .wine/drive_c/windows/Microsoft.NET/Framework/v4.0.30319 to your Terraria directory
6. Play the game
by Evilandi666 on Tuesday May 24th 2011, 10:05
But for me it does not work, Terraria always says
[...]
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Game"
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework"
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Graphics"
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Xact"
fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Input.Touch"
fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
Unhandled Exception: fixme:advapi:RegisterTraceGuidsW
[...]
by Joshua on Wednesday May 25th 2011, 10:06
1. wine msiexec /i xnafx40_redist.msi
2. wine reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
3. wine dotNetFx40_Client_setup.exe
4. winetricks corefonts
5. wine msiexec /i SteamInstall.msi
6. Installed Terraria via Steam, steam will try to install dot net and it fails..
7. Copy over Accessibility.dll, System.configuration.dll, System.dll, System.Drawing.dll, System.Windows.Forms.dll, and System.XML.dll from C:\windows\Microsoft.NET\Framework\v4.0.30319 into the c:\Program Files\Steam\steamapps\common\terraria folder
8. Play!
by Ferg on Saturday May 21st 2011, 7:03
www.youtube.com/watch?v=LNjgpfdcNiI
by paulguy on Saturday May 21st 2011, 7:05
by paulguy on Friday May 20th 2011, 4:51