Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac release broken #170

Open
xldenis opened this issue Dec 18, 2024 · 17 comments
Open

Mac release broken #170

xldenis opened this issue Dec 18, 2024 · 17 comments
Labels
bug Something isn't working

Comments

@xldenis
Copy link

xldenis commented Dec 18, 2024

The currently packaged mac release is non functional. To start, it links against libraries that are not part of the standard mac distribution nor are distributed in the archive:

  • sdl2
  • minizip
  • luajit
  • lz3
  • png16
  • tbb

Once I fix this by installing them through homebrew, I get a segfault which prevents the game from opening.

Additionally, the game isn't compiled for ARM which limits is distribution potential. I'll try getting it building locally later to see if this is still a problem on master.

@xldenis xldenis added the bug Something isn't working label Dec 18, 2024
@HeliumAnt
Copy link
Contributor

HeliumAnt commented Dec 18, 2024

Really cool if you want to fix the mac build, as we currently don't have anyone supporting that.

The libraries are actually bundled in the app, or should be anyways (under Contents/Frameworks)

Current build targets macos 11.1 (or 10.15 maybe, mac target is confusing) (last intel mac anyways)
Native ARM build was previously hindered by FMOD not being available for arm mac, you'd need to fetch that from fmod.com and add that to the build files (external/lib/macos/aarch64). Build requires gcc12 and corresponding libstdc++, unless clang has added support for std::execution at some point. Otherwise the build should work fine.
Graphics framework is using OpenGL3.1.

@xldenis
Copy link
Author

xldenis commented Dec 18, 2024

Really cool if you want to fix the mac build, as we currently don't have anyone supporting that.

I'm not a C++ nor a mac app developer but I was hoping to give in to nostalgia over the holidays a bit so I'll take a look.

The libraries are actually bundled in the app, or should be anyways (under Contents/Frameworks)

Must be linked incorrectly then.

I'll look at building later.

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

I was able to get it building with the following diff:

diff --git a/README.md b/README.md
index 156e74ed5..bf1f9ff04 100644
--- a/README.md
+++ b/README.md
@@ -123,7 +123,7 @@ If you want to change the buildtype afterwards, you can use `meson configure --b
 - `Xcode` or `Command Line Tools for Xcode` (if you need to, you can also generate an xcode project from meson using the `--backend=xcode` option on setup)
 
 **Homebrew (macOS):**  
-`brew install pkg-config sdl2 minizip lz4 flac luajit lua libpng tbb gcc@13 ninja meson dylibbundler`
+`brew install pkg-config sdl2 sdl2_image minizip lz4 flac luajit lua libpng tbb gcc@13 ninja meson dylibbundler`
 
 **Arch Linux:**  
 `sudo pacman -S sdl2 sdl2_image tbb flac luajit lua minizip lz4 libpng meson ninja base-devel`  
diff --git a/external/lib/macos/libfmod.dylib b/external/lib/macos/libfmod.dylib
index 14212a2c4..064faf155 100644
Binary files a/external/lib/macos/libfmod.dylib and b/external/lib/macos/libfmod.dylib differ
diff --git a/meson.build b/meson.build
index d640ab27f..43ae93b3d 100644
--- a/meson.build
+++ b/meson.build
@@ -199,10 +199,13 @@ if host_machine.system() in ['linux','darwin']
     dependency('liblz4'),
     dependency('libpng'),
     dependency('tbb'),
-    dependency('gl')
   ]
-  if host_machine.system()=='darwin'
-    deps += dependency('appleframeworks', modules: ['Foundation'])  
+  if host_machine.system() ==  'darwin'
+    sdk_path = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'
+    link_args += ['-F' + sdk_path + '/System/Library/Frameworks']
+    deps += dependency('appleframeworks', modules: ['Foundation', 'OpenGL'])
+  else
+    deps += dependency('gl')
   endif
 elif host_machine.system() == 'windows'
   sdl2 = subproject('SDL2-2.26.3')

This gets me to launch a window which immediately crashes with:

INFO: GLAD: OpenGL extensions loaded successfully
INFO: GL: Supported extensions count: 43
INFO: GL: OpenGL extensions:
INFO:     GL_ARB_blend_func_extended
INFO:     GL_ARB_draw_buffers_blend
INFO:     GL_ARB_draw_indirect
INFO:     GL_ARB_ES2_compatibility
INFO:     GL_ARB_explicit_attrib_location
INFO:     GL_ARB_gpu_shader_fp64
INFO:     GL_ARB_gpu_shader5
INFO:     GL_ARB_instanced_arrays
INFO:     GL_ARB_internalformat_query
INFO:     GL_ARB_occlusion_query2
INFO:     GL_ARB_sample_shading
INFO:     GL_ARB_sampler_objects
INFO:     GL_ARB_separate_shader_objects
INFO:     GL_ARB_shader_bit_encoding
INFO:     GL_ARB_shader_subroutine
INFO:     GL_ARB_shading_language_include
INFO:     GL_ARB_tessellation_shader
INFO:     GL_ARB_texture_buffer_object_rgb32
INFO:     GL_ARB_texture_cube_map_array
INFO:     GL_ARB_texture_gather
INFO:     GL_ARB_texture_query_lod
INFO:     GL_ARB_texture_rgb10_a2ui
INFO:     GL_ARB_texture_storage
INFO:     GL_ARB_texture_swizzle
INFO:     GL_ARB_timer_query
INFO:     GL_ARB_transform_feedback2
INFO:     GL_ARB_transform_feedback3
INFO:     GL_ARB_vertex_attrib_64bit
INFO:     GL_ARB_vertex_type_2_10_10_10_rev
INFO:     GL_ARB_viewport_array
INFO:     GL_EXT_debug_label
INFO:     GL_EXT_debug_marker
INFO:     GL_EXT_framebuffer_multisample_blit_scaled
INFO:     GL_EXT_texture_compression_s3tc
INFO:     GL_EXT_texture_filter_anisotropic
INFO:     GL_EXT_texture_sRGB_decode
INFO:     GL_APPLE_client_storage
INFO:     GL_APPLE_container_object_shareable
INFO:     GL_APPLE_flush_render
INFO:     GL_APPLE_rgb_422
INFO:     GL_APPLE_row_bytes
INFO:     GL_APPLE_texture_range
INFO:     GL_NV_texture_barrier
INFO: GL: OpenGL device information:
INFO:     > Vendor:   Apple
INFO:     > Renderer: Apple M1 Pro
INFO:     > Version:  4.1 Metal - 89.3
INFO:     > GLSL:     4.10
INFO: GL: OpenGL capabilities:
INFO:     GL_MAX_TEXTURE_SIZE: 16384
INFO:     GL_MAX_CUBE_MAP_TEXTURE_SIZE: 16384
INFO:     GL_MAX_TEXTURE_IMAGE_UNITS: 16
INFO:     GL_MAX_VERTEX_ATTRIBS: 16
INFO:     GL_MAX_UNIFORM_BLOCK_SIZE: 65536
INFO:     GL_MAX_DRAW_BUFFERS: 8
INFO:     GL_MAX_TEXTURE_MAX_ANISOTROPY: 16
INFO:     GL_NUM_COMPRESSED_TEXTURE_FORMATS: 3
INFO:         GL_COMPRESSED_RGB_S3TC_DXT1_EXT
INFO:         GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
INFO:         GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
INFO: TEXTURE: [ID 1] Texture loaded successfully (1x1 | R8G8B8A8 | 1 mipmaps)
INFO: TEXTURE: [ID 1] Default texture loaded successfully
INFO: SHADER: [ID 1] Vertex shader compiled successfully
INFO: SHADER: [ID 2] Fragment shader compiled successfully
INFO: SHADER: [ID 3] Program shader loaded successfully
INFO: SHADER: [ID 3] Default shader loaded successfully
INFO: RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)
INFO: RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)
INFO: RLGL: Default OpenGL state initialized successfully
INFO: TEXTURE: [ID 3] Texture loaded successfully (960x540 | R8G8B8A8 | 1 mipmaps)
INFO: TEXTURE: Depth texture loaded successfully
Runtime Error in file '', line 671121408,
in function '�x3'
because:

ERROR: Failed to compile shaders:
File Data/Base.rte/Shaders/ScreenBlit.vert doesn't exist.

The last frame has been dumped to 'AbortScreen.png'.
The console has been dumped to 'AbortLog.txt'.
2024-12-18 21:50:51.118 CortexCommand[82460:1988138] -[NSConcreteAttributedString initWithString:] called with nil string argument. This has undefined behavior and will raise an exception in post-Leopard linked apps. This warning is displayed only once.
2024-12-18 21:50:52.037 CortexCommand[82460:1988138] +[IMKClient subclass]: chose IMKClient_Modern
2024-12-18 21:50:52.037 CortexCommand[82460:1988138] +[IMKInputSession subclass]: chose IMKInputSession_Modern
zsh: abort      ./CortexCommand

Copying Data gives


Failed to compile Data/Base.rte/Shaders/ScreenBlit.vert:
ERROR: 0:1: '' :  version '130' is not supported
ERROR: 0:2: '' :  #version required and missing.

Instead.

Fixing the versions gets me to display the loading image before the crash, seems like further shader issues.

Fixing Background.frag gets me to the main menu!! 🎉

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

I was able to play a game but when my brain was busted it crashed:

/opt/homebrew/Cellar/gcc@13/13.3.0/include/c++/13/bits/stl_vector.h:1128: constexpr std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = unsigned int; _Alloc = std::allocator<unsigned int>; reference = unsigned int&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

diff --git a/Data/Base.rte/Shaders/Background.frag b/Data/Base.rte/Shaders/Background.frag
index e148f9440..4a8ebca73 100644
--- a/Data/Base.rte/Shaders/Background.frag
+++ b/Data/Base.rte/Shaders/Background.frag
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec2 textureUV;
 in vec4 vertexColor;
@@ -12,18 +12,18 @@ uniform bool drawMasked;
 
 
 vec4 texture2DAA(sampler2D tex, vec2 uv) {
-	vec2 texsize = vec2(textureSize(tex, 0));
-	vec2 uv_texspace = uv * texsize;
-	vec2 seam = floor(uv_texspace + .5);
-	uv_texspace = (uv_texspace - seam) / fwidth(uv_texspace) + seam;
-	uv_texspace = clamp(uv_texspace, seam - .5, seam + .5);
-	return texture(tex, uv_texspace / texsize);
+    vec2 texsize = vec2(textureSize(tex, 0));
+    vec2 uv_texspace = uv * texsize;
+    vec2 seam = floor(uv_texspace + .5);
+    uv_texspace = (uv_texspace - seam) / fwidth(uv_texspace) + seam;
+    uv_texspace = clamp(uv_texspace, seam - .5, seam + .5);
+    return texture(tex, uv_texspace / texsize);
 }
 
 void main() {
-	float red = texture2D(rteTexture, textureUV).r;
-	if (red==0 && drawMasked) {
-		discard;
-	}
-	FragColor = texture2DAA(rtePalette, vec2(red * rteColor.r * vertexColor.r, 0.0)) * vec4(vec3(1.0), rteColor.a * vertexColor.a);
-}
+    float redComponent = texture(rteTexture, textureUV).r;
+    if (redComponent == 0 && drawMasked) {
+        discard;
+    }
+    FragColor = texture2DAA(rtePalette, vec2(redComponent * rteColor.r * vertexColor.r, 0.0)) * vec4(vec3(1.0), rteColor.a * vertexColor.a);
+}
\ No newline at end of file
diff --git a/Data/Base.rte/Shaders/Blit8.frag b/Data/Base.rte/Shaders/Blit8.frag
index f61dfd783..3299b9a93 100644
--- a/Data/Base.rte/Shaders/Blit8.frag
+++ b/Data/Base.rte/Shaders/Blit8.frag
@@ -1,5 +1,5 @@
 // Blit8.frag
-#version 130
+#version 410
 
 in vec2 textureUV;
 
diff --git a/Data/Base.rte/Shaders/Blit8.vert b/Data/Base.rte/Shaders/Blit8.vert
index 489d0eb9f..de4549f2d 100644
--- a/Data/Base.rte/Shaders/Blit8.vert
+++ b/Data/Base.rte/Shaders/Blit8.vert
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec3 rteVertexPosition;
 in vec2 rteVertexTexUV;
diff --git a/Data/Base.rte/Shaders/Flat.frag b/Data/Base.rte/Shaders/Flat.frag
index cb0e6e1df..8e233e986 100644
--- a/Data/Base.rte/Shaders/Flat.frag
+++ b/Data/Base.rte/Shaders/Flat.frag
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec2 textureUV;
 
diff --git a/Data/Base.rte/Shaders/PostProcess.frag b/Data/Base.rte/Shaders/PostProcess.frag
index ed2835c5f..6d5708d92 100644
--- a/Data/Base.rte/Shaders/PostProcess.frag
+++ b/Data/Base.rte/Shaders/PostProcess.frag
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec2 textureUV;
 in vec4 vertexColor;
diff --git a/Data/Base.rte/Shaders/PostProcess.vert b/Data/Base.rte/Shaders/PostProcess.vert
index 1b790d261..4a5bc4398 100644
--- a/Data/Base.rte/Shaders/PostProcess.vert
+++ b/Data/Base.rte/Shaders/PostProcess.vert
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec3 rteVertexPosition;
 in vec2 rteVertexTexUV;
diff --git a/Data/Base.rte/Shaders/ScreenBlit.frag b/Data/Base.rte/Shaders/ScreenBlit.frag
index 6ce470791..7eb90fc7f 100644
--- a/Data/Base.rte/Shaders/ScreenBlit.frag
+++ b/Data/Base.rte/Shaders/ScreenBlit.frag
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec2 textureUV;
 
diff --git a/Data/Base.rte/Shaders/ScreenBlit.vert b/Data/Base.rte/Shaders/ScreenBlit.vert
index 85316fb3f..4ea3953ab 100644
--- a/Data/Base.rte/Shaders/ScreenBlit.vert
+++ b/Data/Base.rte/Shaders/ScreenBlit.vert
@@ -1,4 +1,4 @@
-#version 130
+#version 410
 
 in vec3 rteVertexPosition;
 in vec2 rteVertexTexUV;
diff --git a/README.md b/README.md
index 156e74ed5..bf1f9ff04 100644
--- a/README.md
+++ b/README.md
@@ -123,7 +123,7 @@ If you want to change the buildtype afterwards, you can use `meson configure --b
 - `Xcode` or `Command Line Tools for Xcode` (if you need to, you can also generate an xcode project from meson using the `--backend=xcode` option on setup)
 
 **Homebrew (macOS):**  
-`brew install pkg-config sdl2 minizip lz4 flac luajit lua libpng tbb gcc@13 ninja meson dylibbundler`
+`brew install pkg-config sdl2 sdl2_image minizip lz4 flac luajit lua libpng tbb gcc@13 ninja meson dylibbundler`
 
 **Arch Linux:**  
 `sudo pacman -S sdl2 sdl2_image tbb flac luajit lua minizip lz4 libpng meson ninja base-devel`  
diff --git a/external/lib/macos/libfmod.dylib b/external/lib/macos/libfmod.dylib
index 14212a2c4..064faf155 100644
Binary files a/external/lib/macos/libfmod.dylib and b/external/lib/macos/libfmod.dylib differ
diff --git a/meson.build b/meson.build
index d640ab27f..43ae93b3d 100644
--- a/meson.build
+++ b/meson.build
@@ -199,10 +199,13 @@ if host_machine.system() in ['linux','darwin']
     dependency('liblz4'),
     dependency('libpng'),
     dependency('tbb'),
-    dependency('gl')
   ]
-  if host_machine.system()=='darwin'
-    deps += dependency('appleframeworks', modules: ['Foundation'])  
+  if host_machine.system() ==  'darwin'
+    sdk_path = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'
+    link_args += ['-F' + sdk_path + '/System/Library/Frameworks']
+    deps += dependency('appleframeworks', modules: ['Foundation', 'OpenGL'])
+  else
+    deps += dependency('gl')
   endif
 elif host_machine.system() == 'windows'
   sdl2 = subproject('SDL2-2.26.3')

above is my current patch.

@Causeless
Copy link
Contributor

I was able to play a game but when my brain was busted it crashed:


/opt/homebrew/Cellar/gcc@13/13.3.0/include/c++/13/bits/stl_vector.h:1128: constexpr std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = unsigned int; _Alloc = std::allocator<unsigned int>; reference = unsigned int&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.

Hey, do you have the full callstack here? Also was this in Conquest or a scenario? Conquest is pretty untested and broken just now.

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

Scenarios, I tried out a few (Tutorial, Exploration, ...) which all seem to fail at various points, the exploration one fails when you kill all the small crabs (which triggers the boss crab spawn?).

Unfortunately no stack trace is provided (I guess I should build it in debug mode for that?).

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

nvm got it from the core dump:



Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	       0x193d5a600 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x193d92f70 pthread_kill + 288
2   libsystem_c.dylib             	       0x193c9f908 abort + 128
3   libstdc++.6.dylib             	       0x107d83b68 std::__glibcxx_assert_fail(char const*, int, char const*, char const*) + 72
4   CortexCommand                 	       0x1030dfc6c std::vector<unsigned int, std::allocator<unsigned int>>::operator[](unsigned long) + 148 (stl_vector.h:1128)
5   CortexCommand                 	       0x1030dd504 RTE::DynamicSongSection::SelectSoundContainer() + 344 (DynamicSong.cpp:188)
6   CortexCommand                 	       0x1030dd150 RTE::DynamicSongSection::SelectTransitionSoundContainer() + 48 (DynamicSong.cpp:129)
7   CortexCommand                 	       0x1033293e4 RTE::MusicMan::SelectNextSoundContainer(bool) + 48 (MusicMan.cpp:287)
8   CortexCommand                 	       0x1033287d8 RTE::MusicMan::PlayDynamicSong(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool, bool) + 364 (MusicMan.cpp:106)
9   CortexCommand                 	       0x103651cd4 RTE::LuaAdaptersMusicMan::PlayDynamicSong3(RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) + 60 (LuaAdapters.cpp:538)
10  CortexCommand                 	       0x10398c46c int luabind::detail::returns<bool>::call<RTE::MusicMan, luabind::detail::null_type, RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool>(bool (*)(RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool), RTE::MusicMan*, lua_State*, luabind::detail::null_type const*) + 208 (call.hpp:236)
11  CortexCommand                 	       0x10396c9ac int luabind::detail::call<RTE::MusicMan, luabind::detail::null_type, bool, RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool>(bool (*)(RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool), RTE::MusicMan*, lua_State*, luabind::detail::null_type const*) + 44 (call.hpp:386)
12  CortexCommand                 	       0x103950180 luabind::detail::mem_fn_callback<bool (*)(RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool), RTE::MusicMan, luabind::detail::null_type>::operator()(lua_State*) const + 40 (class.hpp:223)
13  CortexCommand                 	       0x10393630c boost::detail::function::function_obj_invoker1<luabind::detail::mem_fn_callback<bool (*)(RTE::MusicMan&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool), RTE::MusicMan, luabind::detail::null_type>, int, lua_State*>::invoke(boost::detail::function::function_buffer&, lua_State*) + 40 (function_template.hpp:137)
14  CortexCommand                 	       0x103c2f920 boost::function1<int, lua_State*>::operator()(lua_State*) const + 84 (function_template.hpp:763)
15  CortexCommand                 	       0x103c327a8 luabind::detail::overload_rep::call(lua_State*, bool) const + 76 (overload_rep.cpp:32)
16  CortexCommand                 	       0x103c29cbc luabind::detail::class_rep::function_dispatcher(lua_State*) + 1524 (class_rep.cpp:667)
17  CortexCommand                 	       0x103aa68d4 lj_BC_FUNCC + 44
18  CortexCommand                 	       0x103adcaa0 lua_pcall + 152 (lj_api.c:1145)
19  CortexCommand                 	       0x103c56368 RTE::LuaStateWrapper::RunScriptFunctionObject(RTE::LuabindObjectWrapper const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<RTE::Entity const*, std::allocator<RTE::Entity const*>> const&, std::vector<std::basic_string_view<char, std::char_traits<char>>, std::allocator<std::basic_string_view<char, std::char_traits<char>>>> const&, std::vector<RTE::LuabindObjectWrapper*, std::allocator<RTE::LuabindObjectWrapper*>> const&) + 3960 (LuaMan.cpp:606)
20  CortexCommand                 	       0x102fd3a30 RTE::GAScripted::RunLuaFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<RTE::Entity const*, std::allocator<RTE::Entity const*>> const&, std::vector<std::basic_string_view<char, std::char_traits<char>>, std::allocator<std::basic_string_view<char, std::char_traits<char>>>> const&, std::vector<RTE::LuabindObjectWrapper*, std::allocator<RTE::LuabindObjectWrapper*>> const&) + 232 (GAScripted.cpp:365)
21  CortexCommand                 	       0x102fd2958 RTE::GAScripted::Update() + 328 (GAScripted.cpp:333)
22  CortexCommand                 	       0x1032875dc RTE::ActivityMan::Update() + 76 (ActivityMan.cpp:434)
23  CortexCommand                 	       0x102f886ec RunGameLoop() + 1576 (Main.cpp:351)
24  CortexCommand                 	       0x102f89618 main + 632 (Main.cpp:496)
25  dyld                          	       0x193a10274 start + 2840

@Causeless
Copy link
Contributor

@pawnishoovy

@HeliumAnt
Copy link
Contributor

Crash is same as #161

@Causeless
Copy link
Contributor

@HeliumAnt other than the sound crash, should we merge these diffs in to get past the other crashes?

@HeliumAnt
Copy link
Contributor

HeliumAnt commented Dec 19, 2024

The meson changes are fine, the shader changes will break other systems. Shaders are a matter of the incorrectly set context, which should be 3.1 compat instead of 3.3core. I'm actually surprised that worked for me at all, since mesa is usually not that lenient on core profile.
Would actually prefer to use 330core shaders but we got some people with oldass laptop hardware.

HeliumAnt added a commit that referenced this issue Dec 19, 2024
@HeliumAnt
Copy link
Contributor

@xldenis initial arm test build here, could you check if this works?
https://github.com/cortex-command-community/Cortex-Command-Community-Project/actions/runs/12417897548

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

Exception Type:        EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
Exception Codes:       UNKNOWN_0x32 at 0x00000001058ec000
Exception Codes:       0x0000000000000032, 0x00000001058ec000

Termination Reason:    Namespace CODESIGNING, Code 2 Invalid Page

VM Region Info: 0x1058ec000 is in 0x1058ec000-0x105a68000;  bytes after start: 0  bytes before end: 1556479
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      __LINKEDIT                  105084000-1058ec000    [ 8608K] r--/r-- SM=COW  /Users/USER/Downloads/*/Cortex Command.app/Contents/MacOS/CortexCommand
--->  mapped file                 1058ec000-105a68000    [ 1520K] r--/rwx SM=COW  Object_id=ec440b42
      GAP OF 0x62188000 BYTES
      Stack Guard                 167bf0000-16b3f4000    [ 56.0M] ---/rwx SM=NUL  

I already removed the quarantine bit with xattr -d com.apple.quarantine Cortex\ Command.app not sure how to deal with this though.

@xldenis
Copy link
Author

xldenis commented Dec 19, 2024

A new error on a different scenario: /opt/homebrew/Cellar/gcc@13/13.3.0/include/c++/13/bits/stl_deque.h:1366: std::deque<_Tp, _Alloc>::reference std::deque<_Tp, _Alloc>::operator[](size_type) [with _Tp = RTE::Actor*; _Alloc = std::allocator<RTE::Actor*>; reference = RTE::Actor*&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.

@Causeless
Copy link
Contributor

Can we get another call stack, and repro steps? Looks like a very similar issue

@xldenis
Copy link
Author

xldenis commented Dec 20, 2024

Can we get another call stack, and repro steps? Looks like a very similar issue

Unfortunately this one is not as consistently reproducible, but I'll get one the next time it crashes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants