FreeSO on Mac

Just did this for a friend of mine and myself, works great. She has a MacBook Pro (dunno which one), I have a Hackintosh Desktop with a GTX 770. I'd be willing to make a youtube video of how to do this. it's not very hard. my friend could have done it herself had she known she had to right click -> save the GetTSO.sh file instead of clicking on it to download it, and which file to download off your TeamCity server (we both downloaded the logs by accident the first time)

Bug report: Loaded up freeso.command the first time, played for a few, remembered freeso3d.command. got out of freeso, ran freeso3d, terminal popped up then my desktop froze for a second, I saw the last two lines of text I see before I see the login window (I have my hackintosh set to boot verbose), then was back at the login screen logged out. ran freeso3d again and it's running no problem. Fireplaces are flickering but I don't know if that's a freeso bug or a "my graphics drivers are screwed because I can't read and installed a beta version of High Sierra and there's no Nvidia driver for beta versions of MacOS" bug that I have with most games when using the Default display driver.
 
Last edited:
I wrote an application to easily launch FreeSO from your dock or Applications folder with a double click, waiting on a reply from Rhys to know if I can upload it here because it requires minor changes to the instructions.

edit: testing a fix for needing to relaunch freeso.command if there's an update that needs to be applied.

edit 2: Got discord integration working with FreeSO on MacOS. All that I had to do was download discord-rpc-osx.zip from Discord's GitHub page Unzip it, and copy discord-rpc/osx-dynamic/lib/libdiscord-rpc.dylib to the FreeSO folder.
So now when I'm playing FreeSO my Discord shows:
dLZAVSv.png


The Icon changes based on lot type (Going to a money lot replaced the hammer with a Simolean), and shows

v1nvhcJ.png


when not in a lot.
 
Last edited:
I hope I'm not crossing any lines with my modified tutorial / changed macextras.zip file, if I am, feel free to delete:


is my quick and dirty youtube tutorial. I've never done a video tutorial (or video editing) before, so it's pretty crappy.

I took @RHY3756547's tutorial and made a few changes.

Download everything in the original post, except download my modified version of macextras.zip from here
Take the FreeSO client folder (currently client-588), and rename it to FreeSO, then place the folder in your documents folder. Make sure to copy my macextras.zip contents too.
Inside the FreeSO folder, you will find FreeSO and FreeSO 3D with the FreeSO icon. Place one of them either in your dock or in your Applications folder to easily launch FreeSO every time without having to navigate through the files each time.
Continue RHY's tutorial to download TSO.

What's different from the original macextras?:
  • Added two applications (FreeSO and FreeSO 3D) that can be placed in your dock, or copied to your Applications folder to make it easier to start FreeSO. NOTE: These applications assume you follow my tutorial as I place the FreeSO Files in a specific (known) location.
  • Modified the freeso.command files to remove the need to re-run freeso.command to apply an update. The game will run, prompt and download the update, exit, apply the update, then relaunch FreeSO. NOTE: After applying a patch, mono may (probably) both crash, and launch FreeSO. Click OK on the crash window. I'm trying to fix this.
  • Added the correct Discord-RPC for MacOS so if you use the Desktop Discord app your discord status will show what lot you're in and that you're playing FreeSO
 
Looks good, but your video tutorial is freaking out here. I will update the macextras on the FreeSO wordpress server with yours. Your macextras zip only seems to contain FreeSO 3D.app for some reason, not FreeSO.app

I think the best way forward would be to develop a full launcher app for MacOS that installs SDL and everything - maybe @Sim can look into this or open source what he has since it mostly runs on javascript (Electron?). Again, I don't develop the launcher, so I don't know how much of it can reasonably be run on linux and mac.
 
Looks good, but your video tutorial is freaking out here. I will update the macextras on the FreeSO wordpress server with yours. Your macextras zip only seems to contain FreeSO 3D.app for some reason, not FreeSO.app

I think the best way forward would be to develop a full launcher app for MacOS that installs SDL and everything - maybe @Sim can look into this or open source what he has since it mostly runs on javascript (Electron?). Again, I don't develop the launcher, so I don't know how much of it can reasonably be run on linux and mac.
I can tackle that with python. Give me a day or two and I should have at least a script, if not a launcher (think how getTSO is setup with options) to show to setup everything.
 
UPDATE: If you have been using FreeSO on Mac prior to Update 70 (June 9th, 2018), you must redownload macextras.zip
 
Is the appropriate macextras.zip still at http://freeso.org/stuff/macextras.zip? Things were working for me prior to this update, but after letting the client download and apply the FreeSO 70f update and extracting macextras.zip into the FreeSO folder I'm now getting errors from Mono at launch. I'm running Mono 5.12.0.226. Attached are the error messages.

Update: I rolled back my FreeSO folder using Time Machine (that brought me back to version 69b) and tried things again. If I just apply the 70f update and not do anything with macextras.zip everything appears to work properly. The only issue I'm noticing is the two error messages in the code block below in Terminal at launch but they don't appear to be affecting anything. If I try to extract macextras.zip into my FreeSO folder it breaks everything and I get the error messages in the attachment when I try to launch the game using freeso.command.
Code:
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"
 

Attachments

  • FreeSO Mac launch error.txt
    14.6 KB · Views: 11
Last edited:
Hello, I'm having trouble with a crash at launch. It appears the game tries to display an error message with Windows Forms but cannot since it isn't implemented on macOS. I'm posting the managed stacktrace. Would love some hints as to the cause of the error:

Code:
  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) System.Windows.Forms.XplatUICarbon.CGDisplayBounds (intptr) [0x00002] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at System.Windows.Forms.XplatUICarbon.get_WorkingArea () [0x00005] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at System.Windows.Forms.XplatUICarbon.get_VirtualScreen () [0x00000] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at System.Windows.Forms.XplatUI.get_VirtualScreen () [0x00000] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at System.Windows.Forms.Screen..cctor () [0x00034] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0001e] in <0f9df4881040473f9da7cf6c2e2cb8c3>:0
  at <unknown> <0xffffffff>
  at System.Windows.Forms.MessageBox/MessageBoxForm.InitFormsSize () [0x00002] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at System.Windows.Forms.MessageBox/MessageBoxForm.RunDialog () [0x0000f] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.MessageBox/MessageBoxForm.RunDialog () [0x00031] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at System.Windows.Forms.MessageBox.Show (string,string) [0x0000a] in <beba0b11547e4333a33d4d8cdf7b7c51>:0
  at FSO.Windows.Program.CurrentDomain_UnhandledException (object,System.UnhandledExceptionEventArgs) [0x0002f] in <83a141855b6844c993535b211d30122f>:0
  at (wrapper delegate-invoke) <Module>.invoke_void_object_UnhandledExceptionEventArgs (object,System.UnhandledExceptionEventArgs) [0x00070] in <0f9df4881040473f9da7cf6c2e2cb8c3>:0
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void__this___object_object (object,intptr,intptr,intptr) [0x0001e] in <0f9df4881040473f9da7cf6c2e2cb8c3>:0

EDIT: I ran mono in verbose mode and got this. There seems to be an exception after calling FSO.Client.GameStartProxy:Start and inside FSO.Client.FSOProgram.OnAssemblyResolve. System.Reflection.Assembly.LoadFrom seems to be causing the specific issue.

Code:
converting method (wrapper remoting-invoke-with-check) bool System.IO.StreamReader:get_EndOfStream ()
Method (wrapper remoting-invoke-with-check) bool System.IO.StreamReader:get_EndOfStream () emitted at 0x1070a6940 to 0x1070a69cd (code length 141) [FreeSO.exe]
converting method (wrapper managed-to-native) int System.IO.MonoIO:Read (intptr,byte[],int,int,System.IO.MonoIOError&)
Method (wrapper managed-to-native) int System.IO.MonoIO:Read (intptr,byte[],int,int,System.IO.MonoIOError&) emitted at 0x1070a6a60 to 0x1070a6c45 (code length 485) [FreeSO.exe]
converting method (wrapper managed-to-managed) string string:.ctor (char[],int,int)
Method (wrapper managed-to-managed) string string:.ctor (char[],int,int) emitted at 0x1070a6c80 to 0x1070a6cb0 (code length 48) [FreeSO.exe]
converting method (wrapper managed-to-native) bool System.IO.MonoIO:Close (intptr,System.IO.MonoIOError&)
Method (wrapper managed-to-native) bool System.IO.MonoIO:Close (intptr,System.IO.MonoIOError&) emitted at 0x1070a6d10 to 0x1070a6ded (code length 221) [FreeSO.exe]
converting method byte FSO.Client.GlobalSettings:get_LanguageCode ()
Method byte FSO.Client.GlobalSettings:get_LanguageCode () emitted at 0x1070a6e00 to 0x1070a6e17 (code length 23) [FreeSO.exe]
converting method string FSO.Client.FSOProgram:GetClientVersion ()
Method string FSO.Client.FSOProgram:GetClientVersion () emitted at 0x1070a6e20 to 0x1070a6f6b (code length 331) [FreeSO.exe]
converting method (wrapper remoting-invoke-with-check) void System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
Method (wrapper remoting-invoke-with-check) void System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare) emitted at 0x1070a6fa0 to 0x1070a7040 (code length 160) [FreeSO.exe]
converting method (wrapper remoting-invoke-with-check) void System.IO.StreamReader:.ctor (System.IO.Stream)
Method (wrapper remoting-invoke-with-check) void System.IO.StreamReader:.ctor (System.IO.Stream) emitted at 0x1070a7060 to 0x1070a70c1 (code length 97) [FreeSO.exe]
converting method void FSO.Client.GameStartProxy:Start (bool)
converting method (wrapper runtime-invoke) object <Module>:runtime_invoke_object__this___object_object_byte (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object <Module>:runtime_invoke_object__this___object_object_byte (object,intptr,intptr,intptr) emitted at 0x1070a7100 to 0x1070a7258 (code length 344) [FreeSO.exe]
converting method System.Reflection.Assembly FSO.Client.FSOProgram:OnAssemblyResolve (object,System.ResolveEventArgs)
Method System.Reflection.Assembly FSO.Client.FSOProgram:OnAssemblyResolve (object,System.ResolveEventArgs) emitted at 0x1070a7290 to 0x1070a73a9 (code length 281) [FreeSO.exe]
converting method (wrapper managed-to-native) System.Reflection.Assembly System.Reflection.Assembly:LoadFrom (string,bool)
Method (wrapper managed-to-native) System.Reflection.Assembly System.Reflection.Assembly:LoadFrom (string,bool) emitted at 0x1070a73d0 to 0x1070a754b (code length 379) [FreeSO.exe]
converting method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object_object (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object_object (object,intptr,intptr,intptr) emitted at 0x1070a7550 to 0x1070a7698 (code length 328) [FreeSO.exe]
converting method (wrapper managed-to-native) object object:__icall_wrapper_mono_thread_interruption_checkpoint ()
Method (wrapper managed-to-native) object object:__icall_wrapper_mono_thread_interruption_checkpoint () emitted at 0x1070a76b0 to 0x1070a7726 (code length 118) [FreeSO.exe]
converting method (wrapper managed-to-native) object object:__icall_wrapper_mono_thread_get_undeniable_exception ()
Method (wrapper managed-to-native) object object:__icall_wrapper_mono_thread_get_undeniable_exception () emitted at 0x1070a7730 to 0x1070a77fd (code length 205) [FreeSO.exe]
converting method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object_byte (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object <Module>:runtime_invoke_void__this___object_byte (object,intptr,intptr,intptr) emitted at 0x1070a7880 to 0x1070a79d0 (code length 336) [FreeSO.exe]
converting method (wrapper delegate-invoke) void <Module>:invoke_void_object_UnhandledExceptionEventArgs (object,System.UnhandledExceptionEventArgs)
 
Last edited:
Will there be a way to install FreeSO on a mac without all the complicated steps? Like a few steps as if you were installing it on a windows PC? Or will it always have to be accessible through these steps?
 
Will there be a way to install FreeSO on a mac without all the complicated steps? Like a few steps as if you were installing it on a windows PC? Or will it always have to be accessible through these steps?
Eventually the FreeSO Launcher will be available to install on Mac. It should be less complicated to manage everything. But as it stands right now, you just have to live with the complicated steps.
 
I downloaded the macextras.zip, but upon unipping it, there is no "FreeSO.exe" in it, leaving me with the error:

/Users/user/Documents/FreeSO/freeso3d.command ; exit;

MitchelsMacBook:~ user$ /Users/user/Documents/FreeSO/freeso3d.command ; exit;

Cannot open assembly 'FreeSO.exe': No such file or directory.

logout

Saving session...

...copying shared history...

...saving history...truncating history files...

...completed.


[Process completed]

Some assistance perhaps?
 
I'm trying to get this to work on my Macbook, but I'm hitting a roadblock right near the end, with Mono showing the attached error message and subsequently quitting when I try to run FreeSO. I've updated my OS all the way, so I should be good on graphics drivers. This may be because my computer only has the integrated Intel HD 4000 graphics chipset, but Apple's documentation and the OpenGL Extensions Viewer both show that my chipset supports the ARB_framebuffer_object extension mentioned in the error message, so it shouldn't be a hardware issue, as far as I can tell. Any ideas why this is going on? The common issues thread suggests that my graphics chipset cannot be found, but I'm not sure what to do at this point. Would running in software mode work for the time being? If so, what's the command line launch parameter? Thanks.
 

Attachments

  • FreeSO error.png
    FreeSO error.png
    77.4 KB · Views: 11
To answer some general questions, software mode is largely unplayable and mostly used for testing/development since it is entirely CPU bound. Also, an Intel HD 4000 should be more than capable of playing the game. However, I've never come across this error happening with macOS, but as you've seen in the common errors post, there are a lot of quirks to preventing it on Windows.

The most useful thing to help diagnose this problem would be for you to go to  > About This Mac and screenshot that window and post it here. (Note: You can use Preview.app to annotate the image and block out your serial number or just crop it)

One other useful bit of information would be to know if you have wine installed on your computer and if you accidentally used that to launch the game instead of opening Terminal.app and executing ./freeso.command
 
Here's my system info, and also my graphics card info from System Profiler. I do have Wine installed on my computer, but I am using the FreeSO batch file provided, without any luck. However, I did have to add in a 32-bit mode argument to the Mono startup line of the batch file, like so:
Code:
mono --arch=32 FreeSO.exe
Since there are unimplemented Carbon/Windows.Forms drivers in Mono's default 64-bit mode, a SIGSEGV fault and crash results in 64-bit mode (as JimDog's error readout demonstrates above), necessitating the 32-bit argument. Once I did this, Mono started properly, but then I got the graphics error message I previously posted. Hope this helps.
 

Attachments

  • SystemInfo.png
    SystemInfo.png
    95.7 KB · Views: 5
  • GraphicsInfo.png
    GraphicsInfo.png
    41.8 KB · Views: 5
Oh that window is because you got Windows.Forms to work. It looked like a wine screenshot so I just wanted to double check.

Somebody else actually ran into this problem and posted to #support in Discord. They weren't sure what managed to fix the issue, but we've since updated macextras.zip as of July 8th. I'd recommend reinstalling FreeSO not The Sims Online and then patch in the new macextras.
 
I'm desperately waiting for MacOS launcher to be released because the process of installing and updating FreeSO is too complicated for me :(
 
Back
Top