Caeden117/ChroMapper

Chromapper doesn't work on macOS 13

CodeCrafter07 opened this issue · 11 comments

ChroMapper version
1.11(1)

Describe the Issue
Opening chromapper causes it to crash. When opening it through terminal, it opened the updating screen, but crashed soon after.

Provide Screenshots or Videos
Screenshot 2022-10-25 at 5 13 23 PM

Steps to Reproduce
Simply launching CML through terminal or finder

Expected Behavior
I expected it to launch, but it didn't

Additional Context
I am using a Mac with an M1 Pro. The crash may have something to do with the new OS update. It was working fine up until the point when I updated to macOS 13, and now I cannot get it to open.

Any update on this issue? Currently experiencing it on a MBP 2020 model with M1 chip.

Unity 2021.1 seems to have issues running through Rosetta on Apple Silicon, which includes ChroMapper by extension. We currently only officially distribute Mac x64 builds (Intel based), so Rosetta is required to run ChroMapper.

I am unsure if Unity 2021.1 includes support for building applications on native Apple Silicon, but if not, it could hopefully be resolved with a simple Unity upgrade. We would also need to add Apple Silicon distribution to the ChroMapper Launcher, which could take time.

I wish I could have more details to give, however I do not personally own an Apple Silicon mac/macbook.

I used the source code to build a new version with version 2021.3 and it launched without crashing

@CodeCrafter07 thanks for letting me know! I'm trying that now, also I'll see if I can build with 2021.1.15f1 natively for Silicon

Upon further investigation, it seems like I'm experiencing a different error now. I'll open a separate issue.

Also, @Caeden117: theres a way to make a single "Universal" app bundle to avoid any issues with Rosetta, and it's available in the Unity version currently used by the project.

Screenshot 2023-01-22 at 1 59 47 PM

I can confirm it builds and launches properly. This would fix the Rosetta issue without needing to modify the Launcher at all (assuming it doesn't break something else I'm not aware of). I'm happy to help with updating that!

For continuous integration, it seems like there is some code in an undocumented, macOS-specific assembly. Would you be willing to implement this in our Build Script and see if Unity will let you compile?

Yes, I will do that and let you know. In other news, I can run ChroMapper by downloading the Jenkins CI build/building from source, but CML still crashes with this crash report. Is there a repository for CML? (Looked but couldn't find it)

Guessing the native binary doesn't work on arm, good luck building xdelta3 for your platform it was pain

@Top-Cat built universal versions of xdelta3 and liblzma, but the issue persists (and I can confirm it is running an ARM64 binary). I had to configure xdelta3 not to include "xdelta3-main.h" and "xdelta3-test.h" because the former caused a symbol collision with the Xamarin framework and the latter depended on the former. When you built xdelta3-xdelta3.o did you do the same?

@Caeden117 confirmed Unity compiled the project successfully with those build options