FreeSO on Mac

Discussion in 'Support' started by RHY3756547, Nov 30, 2017.

  1. zoey

    zoey New Member

    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 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: Mar 16, 2018
  2. zoey

    zoey New Member

    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 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:

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


    when not in a lot.
    Last edited: Mar 16, 2018
    mrpenguinb likes this.
  3. zoey

    zoey New Member

    I hope I'm not crossing any lines with my modified tutorial / changed 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 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 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
    RHY3756547 and mrpenguinb like this.
  4. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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 for some reason, not

    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.
  5. zoey

    zoey New Member

    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.
  6. Jonathan Myers

    Jonathan Myers New Member

    Any update on the video tutorial or launcher? Still can't get it to work.
  7. dotequals

    dotequals Member

    UPDATE: If you have been using FreeSO on Mac prior to Update 70 (June 9th, 2018), you must redownload
  8. JimDog

    JimDog New Member

    Is the appropriate still at Things were working for me prior to this update, but after letting the client download and apply the FreeSO 70f update and extracting into the FreeSO folder I'm now getting errors from Mono at launch. I'm running Mono 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 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 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.
    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"

    Attached Files:

    Last edited: Jun 11, 2018
  9. Nicholas Roth

    Nicholas Roth New Member

    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:

      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.

    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: Jun 24, 2018
  10. Josh181

    Josh181 New Member

    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?
  11. mrpenguinb

    mrpenguinb Active Member

    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.
  12. Epiceh123

    Epiceh123 New Member

    I downloaded the, 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.


    Saving session...

    ...copying shared history...

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


    [Process completed]

    Some assistance perhaps?
  13. dotequals

    dotequals Member

  14. bootymix96

    bootymix96 New Member

    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.

    Attached Files:

  15. dotequals

    dotequals Member

    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 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 and executing ./freeso.command
  16. bootymix96

    bootymix96 New Member

    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:
    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.

    Attached Files:

  17. dotequals

    dotequals Member

    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 as of July 8th. I'd recommend reinstalling FreeSO not The Sims Online and then patch in the new macextras.
  18. bootymix96

    bootymix96 New Member

    The new fixed it beautifully, thanks so much! :D
    dotequals likes this.
  19. Endcredits

    Endcredits New Member

    I'm desperately waiting for MacOS launcher to be released because the process of installing and updating FreeSO is too complicated for me :(

Share This Page