Recommended Posts

I often play KSP from a Mac, which is a better equipped computer than the Windoze PC I also play on. (This is not an OS matter, but a comparison of the particular machines I use.)

Now that KSP has a 64 bit version for winderz, I am wondering about Mac support.

I am not able to find much information in my searches. But, I did notice the Linux version only has a single download available, but it can run 64-bit. Mac has a single download - is that capable of 64-bit operation? Maybe it is on by default?

If it's not, count me as a voice for Mac users who want KSP to run in 64-bit on Mac.

I do understand it's not entirely in Squad's control as to whether KSP can run 64-bit on Mac. But, the squeaky wheel gets the grease, as they say. If Squad needs to squeak at Unity to get some grease in the 64-bit Mac Unity platform, then my squeaking can perhaps be another prompt for such further squeakiness.

Squeaky.

Share this post


Link to post
Share on other sites

Part of the issue is that Unity is in the process of switching to Unity 5 (so Unity 4 is probably only really going to get bugfixes, no new features that weren't already being worked on), and switching KSP from Unity 4 to Unity 5 will be non-trivial.

Edited by cpast

Share this post


Link to post
Share on other sites

I'm a Mac user and I would love 64-bit. Though it's a Unity thing and not something that Squad could do (that I know of.) I don't believe that Mac 64-bit will be in unity 5 though.

Share this post


Link to post
Share on other sites
I often play KSP from a Mac, which is a better equipped computer than the Windoze PC I also play on. (This is not an OS matter, but a comparison of the particular machines I use.)

cpast covered your question fairly well, so I'm just going to add a little observation: In the worst case scenario, you always have Boot Camp.

32-bit editions of Windows would probably go 'derp' at things like GPT partitions, but you want 64-bit anyways so...

Share this post


Link to post
Share on other sites

To expand on this mostly being a Unity issue, the Mac 64-bit Unity engine is only a year old, and it took two and a half years to get the worst of the bugs out of the Win 64-bit Unity engine. Oddly enough, the Linux 64-bit Unity engine has only been out a bit over a year and a half, and is more stable than either of the other two.

Share this post


Link to post
Share on other sites
To expand on this mostly being a Unity issue, the Mac 64-bit Unity engine is only a year old, and it took two and a half years to get the worst of the bugs out of the Win 64-bit Unity engine. Oddly enough, the Linux 64-bit Unity engine has only been out a bit over a year and a half, and is more stable than either of the other two.

There is one?

Share this post


Link to post
Share on other sites
There is one?

There is a Unity 64-bit engine for OSX, from what info I could find (here, though there are other threads on that topic as well). There's not a 64-bit OSX version of KSP, however (Not sure which question you were asking).

64-bit OSX has been a valid Unity target since 4.2, so for just about a year. I don't know if you can get a 64-bit OSX standalone Unity player similar to what was used for the 64-bit Windows hack.

Share this post


Link to post
Share on other sites
cpast covered your question fairly well, so I'm just going to add a little observation: In the worst case scenario, you always have Boot Camp.

32-bit editions of Windows would probably go 'derp' at things like GPT partitions, but you want 64-bit anyways so...

Understood, though I do not have that option on the Mac I use, as it a company workstation.

Share this post


Link to post
Share on other sites
There is a Unity 64-bit engine for OSX, from what info I could find (here, though there are other threads on that topic as well). There's not a 64-bit OSX version of KSP, however (Not sure which question you were asking).

64-bit OSX has been a valid Unity target since 4.2, so for just about a year. I don't know if you can get a 64-bit OSX standalone Unity player similar to what was used for the 64-bit Windows hack.

Is there anyone savvy enough with Unity and Mono to start work on this or at least throw out some hints to point us in the right direction?

Share this post


Link to post
Share on other sites

I've never had to migrate large projects over to 64b before, but it does take some effort in most frameworks. As with so many things in software development, its likely just a matter of priorities. Unity 4.2 was released quite a while ago, and it was rather solid not long after. In situations like this the best motivator (after technical obsolescence) is user demand. I'm still quite new to KSP, but i'm already hitting memory walls thanks to the wonderful add-ons the community has contributed. Migrating to 64bit would be a lot easier than implementing better resource handling, which would also be greatly appreciated.

+1 OSX 64b Unity standalone please

Share this post


Link to post
Share on other sites

The horror of having to cherry pick parts and remove internals to use mod packs is too much! I would support a 64bit hack as well...

Share this post


Link to post
Share on other sites

Gah, Mac users don't deserve 64 bit on account of their being a mac user.

LOL no It's a good idea

Share this post


Link to post
Share on other sites

Wasn't exactly a "modification", pizzaoverhead. It was basically taking the standard Unity player executable (which is for most intents and purposes the same for every Unity-based game) and swapping it out for the 64-bit one. It's not perfect, since the other Unity libraries would still be 32-bit, but it works... mostly.

Not sure how you'd go about doing a similar thing for Mac.

Share this post


Link to post
Share on other sites

Robotengineer told me this in a PM:

Step 1. Download and Install Unity 4.5.2 or the latest version

Step 2. Right click on the Unity.app and click 'show package contents'. Then navigate to the 'Playback engines' folder.

Step 3. Create a new KSP install, or if you use steam, back up your current one.

Step 4. In the new install, right click on the KSP.app, and once again click 'show package contents'.

Step 5. Back in the Unity Playback engines folder, find macstandaloneplayer, then under variations, go to macosx64_nondevelopment, then open that unityplayer.app.

Step 6. In your KSP.app content folder, go under Data then Managed, copy the UnityEngine.dll from the unityPlayer in to the Managed folder of your KSP.app data folder.

If you've got that, then just continue to find the relevant files/folders, (mono, frameworks, etc.) and replace those files with the 64-bit ones from the unity player. I hope that makes sense, and isn't to complicated or simple.

Share this post


Link to post
Share on other sites

Do let us know if that works for you folks, for sure. :)

Share this post


Link to post
Share on other sites

I wonder if KSP is transitioning to Unity 5.x anytime soon?

I know Unity 5.x isn't even out, but it would be nice to know.

So long as Unity doesn't support a Mac 64bit build, I doubt it will be supported by KSP. (Too buggy, like the Win64 build.) However, I would like the see the results of the hack mentioned above.

As of breaking the 4GB barrier on 32bit processes (multi-pages), due to the way Unity is coded, placing data and code together, it makes this impossible to do on Windows. Hence, this would reduce the benefit for doing this on Linux and Mac.

The only items it could be considered worth doing this on is specifically textures, shaders and models. Squad may want to consider this, as it could also speed things up by moving system-side textures, shaders and models into their own memory segment, due to not having a smaller segment used exclusively for things the video card has to interact with, thus speeding up the ability of the video card to move this information into it's local peripheral-side memory. This goes beyond the ability to place it on a different memory segment, hence allowing it to have it's own 4GB (still a cap but 4GB for just textures is a lot better, and could allow keeping all of the planet texture data in memory, or at least virtual memory depending on if the user has enough physical memory.)

Share this post


Link to post
Share on other sites
I know Unity 5.x isn't even out, but it would be nice to know.

As I understand it, the devs are watching Unity 5 and will probably evaluate it for use. It's not drop in compatible with Unity 4, however, so it's not a sure thing. Also, while 64 bit is a selling point of Unity 5, I wouldn't count on them having found and fixed all the 64-bit bugs in all the clients (that we care about).

Share this post


Link to post
Share on other sites
Robotengineer told me this in a PM:

Step 1. Download and Install Unity 4.5.2 or the latest version

Step 2. Right click on the Unity.app and click 'show package contents'. Then navigate to the 'Playback engines' folder.

Step 3. Create a new KSP install, or if you use steam, back up your current one.

Step 4. In the new install, right click on the KSP.app, and once again click 'show package contents'.

Step 5. Back in the Unity Playback engines folder, find macstandaloneplayer, then under variations, go to macosx64_nondevelopment, then open that unityplayer.app.

Step 6. In your KSP.app content folder, go under Data then Managed, copy the UnityEngine.dll from the unityPlayer in to the Managed folder of your KSP.app data folder.

If you've got that, then just continue to find the relevant files/folders, (mono, frameworks, etc.) and replace those files with the 64-bit ones from the unity player. I hope that makes sense, and isn't to complicated or simple.

I tried this and haven't had any luck yet. The app quits right after starting, with nothing in the unity player.log. However, one thing I noticed while moving the files was that every Unity file had a match in the KSP folder except for the MacOS directory, which had a file called "KSP" in the KSP directory while the Unity equivalent was UnityPlayer. Would renaming UnityPlayer or removing one of them help?

Share this post


Link to post
Share on other sites
I tried this and haven't had any luck yet. The app quits right after starting, with nothing in the unity player.log. However, one thing I noticed while moving the files was that every Unity file had a match in the KSP folder except for the MacOS directory, which had a file called "KSP" in the KSP directory while the Unity equivalent was UnityPlayer. Would renaming UnityPlayer or removing one of them help?

Yes, renaming the UnityPlayer to KSP might work, I apologize for not paying attention to this thread. I have gotten as far as the VAB/SPH before it freezes up, though it might work for you.

Share this post


Link to post
Share on other sites

Renaming didn't help, but I managed to get an error from the system.log

Aug 14 22:50:01 Thomas-MacBook-Pro.local Finder[364]: spawn_via_launchd() failed, errno=22 label=UNITY_BUNDLE_IDENTIFIER.128336 path=/Users/Thomas/Applications/Games/KSP 64 bit/KSP.app/Contents/MacOS/UnityPlayer flags=1 : LaunchApplicationClient.cp #1168 LaunchApplicationViaLaunchDJobLabel() q=com.apple.main-thread
Aug 14 22:50:01 Thomas-MacBook-Pro.local Finder[364]: spawn_via_launchd() failed, errno=22 label=UNITY_BUNDLE_IDENTIFIER.128336 path=/Users/Thomas/Applications/Games/KSP 64 bit/KSP.app/Contents/MacOS/UnityPlayer flags=1
Aug 14 22:50:01 Thomas-MacBook-Pro com.apple.launchd.peruser.503[270] (UNITY_BUNDLE_IDENTIFIER.128336): Failed to dispatch job, requestor: com.apple.Finder
Aug 14 22:50:12 Thomas-MacBook-Pro com.apple.launchd.peruser.503[270] (UNITY_BUNDLE_IDENTIFIER.128336): Job should be able to exec(3) now.
Aug 14 22:50:39 Thomas-MacBook-Pro com.apple.launchd.peruser.503[270] (UNITY_BUNDLE_IDENTIFIER.128336[62893]): Exited with code: 1

Some googling indicates it may be related to Gatekeeper, but clearing that cache just causes it to bounce for another second before crashing with the same error. I might try starting over with a fresh copy of KSP to make sure I didn't screw up with any of the other files.

Share this post


Link to post
Share on other sites

Thought I'd check today, still no 64 bit Mac client.

My home PC has only 4GB of RAM (and such an old motherboard that it can't even handle more, just two slots for DDR2). My work Mac doesn't have a 64-bit KSP client available. Home computer still might be slightly better as it could theoretically still operate above 4GB with part of the memory paged to disk. But it's slooooow. Work Mac will just crash if I add all the mods I want to use.

I are sad.

I'm a mod-heavy player of any mod-friendly game I play. This is the only game I've ever run into this kind of issue with add-ons. And it's my favorite.

I are sad.

Share this post


Link to post
Share on other sites
Robotengineer told me this in a PM:

Step 1. Download and Install Unity 4.5.2 or the latest version

Step 2. Right click on the Unity.app and click 'show package contents'. Then navigate to the 'Playback engines' folder.

Step 3. Create a new KSP install, or if you use steam, back up your current one.

Step 4. In the new install, right click on the KSP.app, and once again click 'show package contents'.

Step 5. Back in the Unity Playback engines folder, find macstandaloneplayer, then under variations, go to macosx64_nondevelopment, then open that unityplayer.app.

Step 6. In your KSP.app content folder, go under Data then Managed, copy the UnityEngine.dll from the unityPlayer in to the Managed folder of your KSP.app data folder.

If you've got that, then just continue to find the relevant files/folders, (mono, frameworks, etc.) and replace those files with the 64-bit ones from the unity player. I hope that makes sense, and isn't to complicated or simple.

I tried this with Unity 5.0, and no lucky.

It returns this in console:

[Date/Hour] com.apple.xpc.launchd: (unity.Squad.Kerbal Space Program.109088[9040]) Service exited with abnormal code: 1

I did all the step, replacing all the files from the unity player, and renaming the player to KSP.

On the Player .log nothing. That message is on All Messages.

Edit 1: Did the same process with the subfolder universal_nondevelopment_mono too.

Same error message.

Edited by Climberfx

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.