Skip to content

Add option to use MacOS launch settings in templates#4

Draft
jacopouggeri wants to merge 1 commit intoanegostudios:mainfrom
jayugg:main
Draft

Add option to use MacOS launch settings in templates#4
jacopouggeri wants to merge 1 commit intoanegostudios:mainfrom
jayugg:main

Conversation

@jacopouggeri
Copy link
Copy Markdown

We are few, but there are some, modders on Mac OS. Since I found out the ideal launch settings for Mac OS, something I struggled with a lot when I had just started, it would be nice to make these available for everyone by default.

Copy link
Copy Markdown
Author

@jacopouggeri jacopouggeri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo fix

@jacopouggeri jacopouggeri marked this pull request as ready for review October 30, 2024 02:36
@Th3Dilli
Copy link
Copy Markdown
Member

Th3Dilli commented Nov 7, 2024

oh nice, whats the issue with using the dotnet command and the path to the .dll? It won't launch at all?

@jacopouggeri
Copy link
Copy Markdown
Author

Yeah the error says it doesn't find the assembly. I've tried running it multiple times from different locations but even though the dll file is clearly there, it never gets detected by dotnet. I can post the error later if needed.

@Th3Dilli
Copy link
Copy Markdown
Member

Th3Dilli commented Nov 7, 2024

hmm looking at this again can you try if that works for you

      "commandName": "Executable",
      "executablePath": "dotnet",
      "commandLineArgs": "VintagestoryServer.dll --tracelog --addModPath \"$(ProjectDir)/bin/$(Configuration)/Mods\"",
      "workingDirectory": "$(VINTAGE_STORY)"

since it uses workingDirectory it should work , at least it seems on my end from a quick test

edit:
maybe the extra quoting (\") is an issue on mac?

"commandLineArgs": "\"$(VINTAGE_STORY)/VintagestoryServer.dll\" --tracelog --addModPath \"$(ProjectDir)/bin/$(Configuration)/Mods\"",

@jacopouggeri
Copy link
Copy Markdown
Author

I can try later, but even when I ran dotnet directly in the terminal when being in the same folder as the assembly, it couldn't find it

@Th3Dilli
Copy link
Copy Markdown
Member

Th3Dilli commented Nov 7, 2024

ohh I see, that maybe an issue with the dotnet installation, On linux if you install it manually you will need to set the DOTNET_ROOT variable so it can properly locate the dotnet SDK maybe that is missing on your end?

@jacopouggeri
Copy link
Copy Markdown
Author

jacopouggeri commented Nov 7, 2024

I did not have DOTNET_ROOT set but it didn't seem to change things after doing so. This is the error I get when running the launch settings you posted (both variations)

/usr/local/share/dotnet/dotnet /Users/jacopouggeri/workspace/VintageModding/vintagestory.app/VintagestoryServer.dll --tracelog --addModPath /Users/jacopouggeri/workspace/VintageModding/SmithingPlus/SmithingPlus//bin/Debug/Mods
Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'VintagestoryServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Process finished with exit code 134.

Again this happens even when I try to run the dotnet command from the same folder as Vintagestory.dll from terminal

@Th3Dilli
Copy link
Copy Markdown
Member

Th3Dilli commented Nov 8, 2024

does the dotnet command otherwise work normally?

what type of mac are you using x64 (intel) or arm (M1/M2/..)?

I am just trying to maybe find the source of the issue but if there is nothing we can do we can merge this. I just can not believe that that dotnet my.dll does not work as it seems to be the suggested way to run a framework dependend app and else seems to work on windows and linux
https://learn.microsoft.com/en-us/dotnet/core/tools/

could I ask you to try to make a sample console app and see if it works there?

@Th3Dilli
Copy link
Copy Markdown
Member

I have had another look at it and tested in my Mac OS Monterey VM and it works there without any issues

@jacopouggeri
Copy link
Copy Markdown
Author

does the dotnet command otherwise work normally?

what type of mac are you using x64 (intel) or arm (M1/M2/..)?

I am just trying to maybe find the source of the issue but if there is nothing we can do we can merge this. I just can not believe that that dotnet my.dll does not work as it seems to be the suggested way to run a framework dependend app and else seems to work on windows and linux https://learn.microsoft.com/en-us/dotnet/core/tools/

could I ask you to try to make a sample console app and see if it works there?

Running a console application works fine, and now that I did a fresh install of only the x64 dotnet version things sort of seem to work, so I think this issue can be closed. However I run into an issue when I try to actually run the game with the default launch settings.

I think it has to do with me using a x64 version of dotnet... should I install an arm64 one instead? I could not find any guidance or information on this, why is an x64 version required in the first place if the machine is arm64? Note: this is the same issue I had when trying to run the decompiled game ;(

Game Version: v1.19.8 (Stable)
22/12/2024 17:52:41: Critical error occurred
Loaded Mods: 
System.DllNotFoundException: Unable to load shared library 'libcairo.2.dylib' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: 
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib' (no such file)
dlopen(/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib' (no such file)
dlopen(libcairo.2.dylib.dylib, 0x0001): tried: 'libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibcairo.2.dylib.dylib' (no such file), '/usr/lib/libcairo.2.dylib.dylib' (no such file, not in dyld cache), 'libcairo.2.dylib.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib.dylib' (no such file), '/usr/lib/libcairo.2.dylib.dylib' (no such file, not in dyld cache)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib' (no such file)
dlopen(/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib' (no such file)
dlopen(liblibcairo.2.dylib.dylib, 0x0001): tried: 'liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSliblibcairo.2.dylib.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib.dylib' (no such file, not in dyld cache), 'liblibcairo.2.dylib.dylib' (no such file), '/usr/local/lib/liblibcairo.2.dylib.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib.dylib' (no such file, not in dyld cache)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib' (no such file)
dlopen(/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib' (no such file), '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib, 0x0001): Library not loaded: @executable_path/Lib/libpng16.16.dylib
  Referenced from: <81708189-6490-3129-BA49-17FF9868C61E> /Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib
  Reason: tried: '/Users/jacopouggeri/.dotnet/Lib/libpng16.16.dylib' (no such file)
dlopen(libcairo.2.dylib, 0x0001): tried: 'libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache), 'libcairo.2.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib' (no such file)
dlopen(/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib' (no such file), '/Users/jacopouggeri/.dotnet/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib' (no such file)
dlopen(liblibcairo.2.dylib, 0x0001): tried: 'liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSliblibcairo.2.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib' (no such file, not in dyld cache), 'liblibcairo.2.dylib' (no such file), '/usr/local/lib/liblibcairo.2.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib' (no such file, not in dyld cache)

   at System.Runtime.InteropServices.NativeLibrary.LoadByName(String libraryName, QCallAssembly callingAssembly, Boolean hasDllImportSearchPathFlag, UInt32 dllImportSearchPathFlag, Boolean throwOnError)
   at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)
   at Cairo.CairoAPI.DllImportResolver(String libraryName, Assembly assembly, Nullable`1 searchPath) in Cairo\wrapper\Cairo.cs:line 75
   at System.Runtime.InteropServices.NativeLibrary.LoadLibraryCallbackStub(String libraryName, Assembly assembly, Boolean hasDllImportSearchPathFlags, UInt32 dllImportSearchPathFlags)
   at Cairo.NativeMethods.cairo_version_string()
   at Cairo.CairoAPI.get_VersionString() in Cairo\wrapper\Cairo.cs:line 56
   at Vintagestory.Client.NoObf.ClientPlatformWindows.LogFrameworkVersions() in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 170
   at Vintagestory.Client.NoObf.ClientPlatformWindows.LogAndTestHardwareInfosStage1() in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 164
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 172
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
Game Version: v1.19.8 (Stable)
22/12/2024 17:55:05: Critical error occurred
Loaded Mods: 
System.DllNotFoundException: Unable to load shared library 'libcairo.2.dylib' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: 
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib.dylib' (no such file)
dlopen(/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib, 0x0001): tried: '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib' (no such file), '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib.dylib' (no such file)
dlopen(libcairo.2.dylib.dylib, 0x0001): tried: 'libcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibcairo.2.dylib.dylib' (no such file), '/usr/lib/libcairo.2.dylib.dylib' (no such file, not in dyld cache), 'libcairo.2.dylib.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib.dylib' (no such file), '/usr/lib/libcairo.2.dylib.dylib' (no such file, not in dyld cache)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib.dylib' (no such file)
dlopen(/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib, 0x0001): tried: '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib' (no such file), '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib.dylib' (no such file)
dlopen(liblibcairo.2.dylib.dylib, 0x0001): tried: 'liblibcairo.2.dylib.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSliblibcairo.2.dylib.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib.dylib' (no such file, not in dyld cache), 'liblibcairo.2.dylib.dylib' (no such file), '/usr/local/lib/liblibcairo.2.dylib.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib.dylib' (no such file, not in dyld cache)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/libcairo.2.dylib' (no such file)
dlopen(/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib, 0x0001): tried: '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib' (no such file), '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/libcairo.2.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib, 0x0001): Library not loaded: @executable_path/Lib/libpng16.16.dylib
  Referenced from: <81708189-6490-3129-BA49-17FF9868C61E> /Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/libcairo.2.dylib
  Reason: tried: '/usr/local/share/dotnet/x64/Lib/libpng16.16.dylib' (no such file)
dlopen(libcairo.2.dylib, 0x0001): tried: 'libcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache), 'libcairo.2.dylib' (no such file), '/usr/local/lib/libcairo.2.dylib' (no such file), '/usr/lib/libcairo.2.dylib' (no such file, not in dyld cache)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/liblibcairo.2.dylib' (no such file)
dlopen(/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib, 0x0001): tried: '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib' (no such file), '/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App/7.0.20/liblibcairo.2.dylib' (no such file)
dlopen(/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib, 0x0001): tried: '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib' (no such file), '/Users/jacopouggeri/workspace/VintageModding/vintagestory.app/Lib/liblibcairo.2.dylib' (no such file)
dlopen(liblibcairo.2.dylib, 0x0001): tried: 'liblibcairo.2.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSliblibcairo.2.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib' (no such file, not in dyld cache), 'liblibcairo.2.dylib' (no such file), '/usr/local/lib/liblibcairo.2.dylib' (no such file), '/usr/lib/liblibcairo.2.dylib' (no such file, not in dyld cache)

   at System.Runtime.InteropServices.NativeLibrary.LoadByName(String libraryName, QCallAssembly callingAssembly, Boolean hasDllImportSearchPathFlag, UInt32 dllImportSearchPathFlag, Boolean throwOnError)
   at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)
   at Cairo.CairoAPI.DllImportResolver(String libraryName, Assembly assembly, Nullable`1 searchPath) in Cairo\wrapper\Cairo.cs:line 75
   at System.Runtime.InteropServices.NativeLibrary.LoadLibraryCallbackStub(String libraryName, Assembly assembly, Boolean hasDllImportSearchPathFlags, UInt32 dllImportSearchPathFlags)
   at Cairo.NativeMethods.cairo_version_string()
   at Cairo.CairoAPI.get_VersionString() in Cairo\wrapper\Cairo.cs:line 56
   at Vintagestory.Client.NoObf.ClientPlatformWindows.LogFrameworkVersions() in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 170
   at Vintagestory.Client.NoObf.ClientPlatformWindows.LogAndTestHardwareInfosStage1() in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 164
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 172
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

@jacopouggeri
Copy link
Copy Markdown
Author

Adding to this, since the issue might have to do with the arm64 architecture, I tried running with Rosetta:

{
  "profiles": {
    "Client": {
      "commandName": "Executable",
      "executablePath": "arch",
      "commandLineArgs": "-x86_64 dotnet \"$(VINTAGE_STORY)/Vintagestory.dll\" --tracelog --addModPath \"$(ProjectDir)/bin/$(Configuration)/Mods\"",
      "workingDirectory": "$(VINTAGE_STORY)"
    },
    "Server": {
      "commandName": "Executable",
      "executablePath": "arch",
      "commandLineArgs": "-x86_64 dotnet \"$(VINTAGE_STORY)/VintagestoryServer.dll\" --tracelog --addModPath \"$(ProjectDir)/bin/$(Configuration)/Mods\"",
      "workingDirectory": "$(VINTAGE_STORY)"
    }
  }
}

This works too but the screen renders at 1/4th of the size while the mouse input is correct (as if it was full-size)

Uploading Screenshot 2025-03-22 at 18.31.02.png…

@jacopouggeri
Copy link
Copy Markdown
Author

Might be worth reopening since I do think the issue persists for arm64 macs

chore: keep only changes relevant to PR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants