FreeSO on Mac

Success -- got it working on Mac :) If anyone has any questions feel free to hit me up -- I ended up using my Windows PC to copy the game files over since cabextract wasn't behaving.
 
If anyone else is missing cabextract or any of the other binaries, try install them through Homebrew instead.
 
I've added new instructions that use Homebrew and our new TSO download source to the main post. These were written by @dotequals, so give him your thanks if they are helpful.
 
I know this is a rather old thread, but I've been unsuccessful in getting the application to start after an update process. I get a crash in the terminal. Of course I didn't record what the crash was (why would I think ahead?) I fixed it by deleting the contents of my "FreeSO" folder in Documents, re-downloading the updated version of the client and unzipping it and then unzipping the Macextras.zip again and overwriting files. This allows the application to start and download the update. Is there any way around this? Am I doing something wrong? Thanks for getting this working on the Mac, great job.
 
Currently, yes, mono is supposed to crash after the download and before the update is supposed to start. On Mac and Linux the freeso.command and freeso3d.command scripts handle updating the client, so you just have to run them again after the crash.
 
Currently, yes, mono is supposed to crash after the download and before the update is supposed to start. On Mac and Linux the freeso.command and freeso3d.command scripts handle updating the client, so you just have to run them again after the crash.
Hi Dot, thanks for the response. I do run the scripts again and I get into an update loop.
 
Hi Dot, thanks for the response. I do run the scripts again and I get into an update loop.
Hmm, somebody else seems to be running into that here, but I haven't come across it. When you run freeso.command the second time does it have a bunch of text like "Inflating blah blah blah"? Did you close the terminal window with the crashed instance of mono before running it?
 
@JimGarb and @Queenofthedelta a screenshot or copy of the terminal output text after running ./freeso.command for the second time (after the game has downloaded the update and crashed once) would be helpful in figuring out this problem.

If posting the info here, please take caution to edit out any personal info the terminal window might show such as your first and last name. Alternatively you can just send the output to me via DM on here or on Discord.
 
Beta update-72h...
2D mode: Launch, login, world load all work fine. When entering properties I'm presented with my sim standing in a fully white area with only the outlines of some objects showing.
3D mode: Launch, login, world load all work fine. When entering properties, all items load correctly but other sims bodies are fully black. I can see their faces and hands and a fully black body. Some items disappear when in use.

Also I've noticed on this thread a lot of people having trouble launching. Make sure you type the freeso.command in the terminal as
Code:
./freeso.command
the ./ is needed to execute. Terminal doesn't know what you mean if you don't add the ./ in front.
 
@spaz926 For 2D mode try disabling anti-aliasing. As for 3D make sure you're at least a notch above the lowest lighting setting on the slider.

Items disappearing in use is to be expected for objects that have different states that your client hasn't "seen" yet so it needs to generate the mesh if the object isn't part of the remeshed objects in your MeshReplace folder.
 
Thanks dotequals... Both of those tips fixed my issues.

I also downloaded the MeshReplace zip file so I have FAR less disappearing items.

Thanks to @zoey I got Discord integration working. Yay.

EDIT: I also got two app bundles (one for 2D and one for 3D) created and working. Can be placed anywhere on the filesystem as long as FreeSO is in ~/Documents/FreeSO/
I can't codesign them (so gatekeeper will complain that it is untrusted an untrusted source). But I can share them if anybody would like and is permitted on the forum.
 
Last edited:
Hey! I did everything in accordance with the steps in the first post, but it does not work for me. Terminal entry:
Code:
 ./freeso.command
AL lib: (WW) GetProcPath: Failed to readlink /proc/self/file: No such file or directory
AL lib: (WW) alc_initconfig: Failed to initialize backend "jack"
WARNING: The Carbon driver has not been ported to 64bits, and very few parts of Windows.Forms will work properly, or at all
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) System.Windows.Forms.XplatUICarbon.CGDisplayBounds (intptr) [0x00002] in <5104060dae9b46fe810195014e83cde5>:0
  at System.Windows.Forms.XplatUICarbon.get_WorkingArea () [0x00005] in <5104060dae9b46fe810195014e83cde5>:0
  at System.Windows.Forms.XplatUICarbon.get_VirtualScreen () [0x00000] in <5104060dae9b46fe810195014e83cde5>:0
  at System.Windows.Forms.XplatUI.get_VirtualScreen () [0x00000] in <5104060dae9b46fe810195014e83cde5>:0
  at System.Windows.Forms.Screen..cctor () [0x00034] in <5104060dae9b46fe810195014e83cde5>:0
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0001e] in <58ef3af9ea4944daa82b0c341685a066>:0
  at <unknown> <0xffffffff>
  at System.Windows.Forms.MessageBox/MessageBoxForm.InitFormsSize () [0x00002] in <5104060dae9b46fe810195014e83cde5>:0
  at System.Windows.Forms.MessageBox/MessageBoxForm.RunDialog () [0x0000f] in <5104060dae9b46fe810195014e83cde5>:0
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.MessageBox/MessageBoxForm.RunDialog () [0x00031] in <5104060dae9b46fe810195014e83cde5>:0
  at System.Windows.Forms.MessageBox.Show (string,string) [0x0000a] in <5104060dae9b46fe810195014e83cde5>:0
  at FSO.Windows.Program.CurrentDomain_UnhandledException (object,System.UnhandledExceptionEventArgs) [0x0002f] in <c74e75d7e33146bbbe8a3949fadc75dc>:0
  at (wrapper delegate-invoke) <Module>.invoke_void_object_UnhandledExceptionEventArgs (object,System.UnhandledExceptionEventArgs) [0x00068] in <58ef3af9ea4944daa82b0c341685a066>:0
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void__this___object_object (object,intptr,intptr,intptr) [0x0001e] in <58ef3af9ea4944daa82b0c341685a066>:0
Memory around native instruction pointer (0x7fff60a0dc9b):
0x7fff60a0dc8b  53 50 48 89 fb 48 8b 05 a1 93 81 38 48 8b 48 18  SPH..H.....8H.H.
0x7fff60a0dc9b  48 89 4b 18 48 8b 48 10 48 89 4b 10 48 8b 08 48  H.K.H.H.H.K.H..H
0x7fff60a0dcab  8b 40 08 48 89 43 08 48 89 0b 89 f7 48 89 de e8  .@.H.C.H....H...
0x7fff60a0dcbb  68 80 fc ff 48 89 d8 48 83 c4 08 5b 5d c3 55 48  h...H..H...[].UH

Native stacktrace:

Crash Reporter has timed out, sending SIGSEGV
AL lib: (EE) alc_cleanup: 1 device not closed
 
But if I use mono --arch=32 freeso.exe I have this:
Code:
mono --arch=32 FreeSO.exe
AL lib: (WW) GetProcPath: Failed to readlink /proc/self/file: No such file or directory
AL lib: (WW) alc_initconfig: Failed to initialize backend "jack"
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
2019-02-25 14:32:38.241 mono32[6304:600498] pid(6304)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
  at System.IO.BinaryReader.FillBuffer (System.Int32 numBytes) [0x0007a] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.IO.BinaryReader.ReadUInt16 () [0x00000] in <58ef3af9ea4944daa82b0c341685a066>:0
  at FSO.Files.Utils.IoBuffer.ReadUInt16 () [0x00000] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Files.Formats.IFF.Chunks.BHAV.Read (FSO.Files.Formats.IFF.IffFile iff, System.IO.Stream stream) [0x000f0] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Files.Formats.IFF.IffFile.prepare[T] (System.Object input) [0x0002f] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Files.Formats.IFF.IffFile.List[T] () [0x0003b] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Content.GameIffResource.Recache () [0x00011] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.GameGlobalResource.Recache () [0x00000] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.GameGlobalResource..ctor (FSO.Files.Formats.IFF.IffFile iff, FSO.Files.Formats.OTF.OTFFile tuning) [0x00014] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.WorldGlobalProvider.Get (System.String filename) [0x0013b] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.GameObjectResource..ctor (FSO.Files.Formats.IFF.IffFile iff, FSO.Files.Formats.IFF.IffFile sprites, FSO.Files.Formats.OTF.OTFFile tuning, System.String iname, FSO.Content.Content content) [0x00057] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.WorldObjectProvider+<>c__DisplayClass6_0.<GenerateResource>b__0 (System.String fname) [0x0013e] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Common.Utils.TimedReferenceCache`2+<>c__DisplayClass3_0[KEY,VALUE].<GetOrAddInternal>b__0 (KEY k) [0x00037] in <d4d966def1e24d4e8546b56b922bc374>:0
  at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00034] in <58ef3af9ea4944daa82b0c341685a066>:0
  at FSO.Common.Utils.TimedReferenceCache`2[KEY,VALUE].GetOrAddInternal (KEY key, System.Func`2[T,TResult] valueFactory) [0x0002e] in <d4d966def1e24d4e8546b56b922bc374>:0
  at FSO.Common.Utils.TimedReferenceCache`2[KEY,VALUE].GetOrAdd (KEY key, System.Func`2[T,TResult] valueFactory) [0x00000] in <d4d966def1e24d4e8546b56b922bc374>:0
  at FSO.Content.WorldObjectProvider.Init (System.Boolean withSprites) [0x002d5] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.Content.InitWorld () [0x00052] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.Content.Init () [0x0024d] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.Content.Init (System.String basepath, Microsoft.Xna.Framework.Graphics.GraphicsDevice device) [0x00013] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Client.Controllers.LoadingScreenController+<>c.<.ctor>b__1_0 (System.Action donePart) [0x00010] in <cf76d7a41b354544befde3d6a5830519>:0
  at FSO.Content.ContentPreloader.LoadContent () [0x0000b] in <a696485a5a1243f7944c11e470047006>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <58ef3af9ea4944daa82b0c341685a066>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
  at System.IO.BinaryReader.FillBuffer (System.Int32 numBytes) [0x0007a] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.IO.BinaryReader.ReadUInt16 () [0x00000] in <58ef3af9ea4944daa82b0c341685a066>:0
  at FSO.Files.Utils.IoBuffer.ReadUInt16 () [0x00000] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Files.Formats.IFF.Chunks.BHAV.Read (FSO.Files.Formats.IFF.IffFile iff, System.IO.Stream stream) [0x000f0] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Files.Formats.IFF.IffFile.prepare[T] (System.Object input) [0x0002f] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Files.Formats.IFF.IffFile.List[T] () [0x0003b] in <b4d5a9d65052420fb4e1cac9da738837>:0
  at FSO.Content.GameIffResource.Recache () [0x00011] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.GameGlobalResource.Recache () [0x00000] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.GameGlobalResource..ctor (FSO.Files.Formats.IFF.IffFile iff, FSO.Files.Formats.OTF.OTFFile tuning) [0x00014] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.WorldGlobalProvider.Get (System.String filename) [0x0013b] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.GameObjectResource..ctor (FSO.Files.Formats.IFF.IffFile iff, FSO.Files.Formats.IFF.IffFile sprites, FSO.Files.Formats.OTF.OTFFile tuning, System.String iname, FSO.Content.Content content) [0x00057] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.WorldObjectProvider+<>c__DisplayClass6_0.<GenerateResource>b__0 (System.String fname) [0x0013e] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Common.Utils.TimedReferenceCache`2+<>c__DisplayClass3_0[KEY,VALUE].<GetOrAddInternal>b__0 (KEY k) [0x00037] in <d4d966def1e24d4e8546b56b922bc374>:0
  at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00034] in <58ef3af9ea4944daa82b0c341685a066>:0
  at FSO.Common.Utils.TimedReferenceCache`2[KEY,VALUE].GetOrAddInternal (KEY key, System.Func`2[T,TResult] valueFactory) [0x0002e] in <d4d966def1e24d4e8546b56b922bc374>:0
  at FSO.Common.Utils.TimedReferenceCache`2[KEY,VALUE].GetOrAdd (KEY key, System.Func`2[T,TResult] valueFactory) [0x00000] in <d4d966def1e24d4e8546b56b922bc374>:0
  at FSO.Content.WorldObjectProvider.Init (System.Boolean withSprites) [0x002d5] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.Content.InitWorld () [0x00052] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.Content.Init () [0x0024d] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Content.Content.Init (System.String basepath, Microsoft.Xna.Framework.Graphics.GraphicsDevice device) [0x00013] in <a696485a5a1243f7944c11e470047006>:0
  at FSO.Client.Controllers.LoadingScreenController+<>c.<.ctor>b__1_0 (System.Action donePart) [0x00010] in <cf76d7a41b354544befde3d6a5830519>:0
  at FSO.Content.ContentPreloader.LoadContent () [0x0000b] in <a696485a5a1243f7944c11e470047006>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <58ef3af9ea4944daa82b0c341685a066>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <58ef3af9ea4944daa82b0c341685a066>:0
AL lib: (EE) alc_cleanup: 1 device not closed
 
Hey guys! Is there any update to being closer to MAC release without all the crazy steps? Apparently I am mac illiterate because I can not figure this out at all... LOL! I need a max installation guide for dummies! Tried finding videos to explain but can't find any! :-(
Please help!
 
Hey guys! Is there any update to being closer to MAC release without all the crazy steps? Apparently I am mac illiterate because I can not figure this out at all... LOL! I need a max installation guide for dummies! Tried finding videos to explain but can't find any! :-(
Please help!
I get to the point where I am installing TSO and need to change directory and put this into the terminal...

cd ~/Downloads/TSO_Installer_v1.1239.1.0.zip

But then it says No Such File or Directory...
 
Back
Top