Marisa-Chan / UA_source

Mod for UrbanAssault (Replace original game engine)
GNU General Public License v2.0
120 stars 16 forks source link

Successful compile on macOS arm64 #64

Open rnkn opened 4 months ago

rnkn commented 4 months ago

I managed to get UA_source compiled without errors on macOS with the following changes: https://github.com/Marisa-Chan/UA_source/compare/master...rnkn:UA_source:master

First I added a couple of includes:

--- a/src/system/gfx.cpp
+++ b/src/system/gfx.cpp
@@ -3,6 +3,7 @@

 #if defined(__APPLE__) && defined(__MACH__)
 #include <OpenGL/glext.h>
+#include <stack>
 #else
 #include <GL/glext.h>
 #include <queue>
--- a/src/system/glfuncs.cpp
+++ b/src/system/glfuncs.cpp
@@ -1,5 +1,6 @@
 #include "glfuncs.h"
 #include <stdexcept>
+#include <string>

 namespace GFX
 {   

Then I needed to change the SDL context profile to CORE:

--- a/src/system/system.cpp
+++ b/src/system/system.cpp
@@ -232,10 +232,10 @@ void Init(bool oldGL)
     }
     else
     {
-        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
+        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4);
         SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
     }
-    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);
+    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);

     window = SDL_CreateWindow("OpenUA (Urban Assault)", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, winRes.W, winRes.H, SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL);

For good measure I increased the GLSL version to the highest available on macOS, 4.1. I don't think this is necessary.

This allowed UA_source to compile successfully on macOS Sonoma 14.4.1 (23E224).

I then followed the instructions on the wiki to copy in required files.

Launching ./UA_source then complained of shader errors, so I made the following changes:

--- a/src/system/stdshdr.cpp
+++ b/src/system/stdshdr.cpp
@@ -6,7 +6,7 @@ namespace GFX

 const std::string GFXEngine:: _stdPShaderText =
 "\
-#version 140\n\
+#version 410 core\n\
 layout(std140) uniform Parameters\
 {\
     mat4 MProj;\
@@ -17,26 +17,26 @@ layout(std140) uniform Parameters\
     bool Flat;\
     bool ATest;\
 };\
-uniform sampler2D texture;\
+uniform sampler2D texSample;\
 in vec4 smoothColor;\
 flat in vec4 flatColor;\
 in vec2 texCoords;\
+out vec4 fragColor;\
 void main()\
 {\
     vec4 clr;\
     if (Flat) clr = flatColor; else clr = smoothColor;\
     if (Textured)\
-        gl_FragColor = texture2D(texture, texCoords) * clr;\
-    else\
-        gl_FragColor = clr;\
-    if (ATest && gl_FragColor.w <= 0.0)\
+        clr = texture(texSample, texCoords) * clr;\
+    if (ATest && clr.w <= 0.0)\
         discard;\
+    fragColor = clr;\
 }";

 const std::string GFXEngine:: _stdVShaderText =
 "\
-#version 140\n\
+#version 410 core\n\
 layout(std140) uniform Parameters\
 {\
     mat4 MProj;\
@@ -47,9 +47,9 @@ layout(std140) uniform Parameters\
     bool Flat;\
     bool ATest;\
 };\
-attribute vec3 vPos;\
-attribute vec4 vColor;\
-attribute vec2 vUV;\
+in vec3 vPos;\
+in vec4 vColor;\
+in vec2 vUV;\
 \
 out vec4 smoothColor;\
 flat out vec4 flatColor;\

(Again the GLSL 4.1 version bump is probably unnecessary.)

For good measure I also updated the shaders in /res to 4.1:

--- a/res/clreff.ps
+++ b/res/clreff.ps
@@ -1,9 +1,10 @@
-#version 120
+#version 410
 uniform sampler2D texture;
 uniform vec3 normclr;
 uniform vec3 invclr;
+out vec4 fragColor
 void main()
 {
-    vec4 clr = texture2D(texture, gl_TexCoord[0].xy);
-    gl_FragColor = vec4( clr.xyz * normclr + (1.0 - clr.xyz) * invclr, clr.w);
+    vec4 clr = texture(texture, gl_TexCoord[0].xy);
+    fragColor = vec4( clr.xyz * normclr + (1.0 - clr.xyz) * invclr, clr.w);
 }
--- a/res/clreff_vbo.ps
+++ b/res/clreff_vbo.ps
@@ -1,4 +1,4 @@
-#version 140
+#version 410

 layout(std140) uniform Parameters
 {
@@ -18,8 +18,10 @@ in vec2 texCoords;
 uniform vec3 normclr;
 uniform vec3 invclr;

+out vec4 fragColor;
+
 void main()
 {
     vec4 clr = texture2D(texture, texCoords);
-    gl_FragColor = vec4( clr.xyz * normclr + (1.0 - clr.xyz) * invclr, clr.w);
+    fragColor = vec4( clr.xyz * normclr + (1.0 - clr.xyz) * invclr, clr.w);
 }
--- a/res/clreff_vbo.vs
+++ b/res/clreff_vbo.vs
@@ -1,4 +1,4 @@
-#version 140
+#version 410

 layout(std140) uniform Parameters
 {
@@ -11,9 +11,9 @@ layout(std140) uniform Parameters
     bool ATest;
 };

-attribute vec3 vPos;
-attribute vec4 vColor;
-attribute vec2 vUV;
+in vec3 vPos;
+in vec4 vColor;
+in vec2 vUV;

 out vec4 smoothColor;
 out vec2 texCoords;

After this the ./UA_source binary would launch without error, but it immediately exits with status 0.

I ran with lldb add received the message:

UA_source[96217:8374543] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600001855de0> F8BB1C28-BAE8-11D6-9C31-00039315CD46

But I don't believe this has anything to do with UA_source.

Do you have any ideas about how I should further debug this?

System

Apple MacBook Air M1 (arm64) macOS Sonoma 14.4.1 (23E224) Apple clang version 15.0.0 (clang-1500.3.9.4)

$ otool -L UA_source
UA_source:
    /opt/local/lib/libSDL2-2.0.0.dylib (compatibility version 3001.0.0, current version 3001.3.0)
    /opt/local/lib/libSDL2_ttf-2.0.0.dylib (compatibility version 2201.0.0, current version 2201.0.0)
    /opt/local/lib/libSDL2_image-2.0.0.dylib (compatibility version 801.0.0, current version 801.2.0)
    /opt/local/lib/libSDL2_net-2.0.0.dylib (compatibility version 201.0.0, current version 201.0.0)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/OpenAL.framework/Versions/A/OpenAL (compatibility version 1.0.0, current version 1.0.0)
    /opt/local/lib/libvorbisfile.3.dylib (compatibility version 7.0.0, current version 7.8.0)
    /opt/local/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.76.100)
    /opt/local/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.134.100)
    /opt/local/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.70.100)
    /opt/local/lib/libswscale.5.dylib (compatibility version 5.0.0, current version 5.9.100)
    /opt/local/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.9.100)
    /opt/local/lib/liblua5.3.dylib (compatibility version 5.3.0, current version 5.3.6)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.100.2)

Thank you for your time.

rnkn commented 4 months ago

And here is a Console log for running the UA_source process:

default 19:10:45.652184+1000    UA_source   [0x600002ff0000] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.daemon
default 19:10:45.652256+1000    UA_source   [0x600002ff4000] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.agent
default 19:10:45.654334+1000    UA_source   [0x600002ff00f0] activating connection: mach=true listener=false peer=false name=com.apple.coreservices.launchservicesd
default 19:10:45.654769+1000    UA_source   [0x600002ff02d0] activating connection: mach=true listener=false peer=false name=com.apple.analyticsd
default 19:10:45.654949+1000    UA_source   [0x600002ff40f0] activating connection: mach=true listener=false peer=false name=com.apple.pasteboard.1
default 19:10:45.655268+1000    UA_source   [0x600002ff41e0] activating connection: mach=true listener=false peer=false name=com.apple.distributed_notifications@Uv3
default 19:10:45.656982+1000    UA_source   [0x600002ff01e0] activating connection: mach=true listener=false peer=false name=com.apple.tccd.system
default 19:10:45.664216+1000    UA_source   Received configuration update from daemon (initial)
default 19:10:45.668567+1000    UA_source   [0x600002ff01e0] invalidated after the last release of the connection object
default 19:10:45.668704+1000    UA_source   server port 0x00003107, session port 0x00003107
default 19:10:45.684937+1000    UA_source   New connection 0x71b5b main
default 19:10:45.686106+1000    UA_source   CHECKIN: pid=98554
default 19:10:45.689210+1000    UA_source   CHECKEDIN: pid=98554 asn=0x0-0x20ce0cc foreground=0
default 19:10:45.689557+1000    UA_source   [0x13b606e50] activating connection: mach=true listener=false peer=false name=com.apple.lsd.modifydb
default 19:10:45.689775+1000    UA_source   [0x13b607d70] activating connection: mach=false listener=true peer=false name=(anonymous)
default 19:10:45.689785+1000    UA_source   [0x13b607d70] Channel could not return listener port.
default 19:10:45.689920+1000    UA_source   [0x13d904080] activating connection: mach=false listener=false peer=true name=com.apple.xpc.anonymous.0x13b607d70.peer[338].0x13d904080
default 19:10:45.692842+1000    UA_source   FRONTLOGGING: version 1
default 19:10:45.692919+1000    UA_source   Registered, pid=98554 ASN=0x0,0x20ce0cc
default 19:10:45.695343+1000    UA_source   [0x13b607d70] Channel could not return listener port.
default 19:10:45.696716+1000    UA_source   Current system appearance, (HLTB: 2), (SLS: 1)
default 19:10:45.700613+1000    UA_source   No persisted cache on this platform.
default 19:10:45.701524+1000    UA_source   Current system appearance, (HLTB: 2), (SLS: 1)
default 19:10:45.702246+1000    UA_source   Post-registration system appearance: (HLTB: 2)
default 19:10:45.702939+1000    UA_source   [0x13b607d70] Channel could not return listener port.
default 19:10:45.706152+1000    UA_source   [0x13b607d70] Channel could not return listener port.
default 19:10:45.717730+1000    UA_source   Registering for test daemon availability notify post.
default 19:10:45.717819+1000    UA_source   notify_get_state check indicated test daemon not ready.
default 19:10:45.717891+1000    UA_source   notify_get_state check indicated test daemon not ready.
default 19:10:45.717971+1000    UA_source   notify_get_state check indicated test daemon not ready.
default 19:10:45.726242+1000    UA_source   [0x13d804af0] activating connection: mach=true listener=false peer=false name=com.apple.lsd.mapdb
default 19:10:45.739398+1000    UA_source   Initializing connection
default 19:10:45.739423+1000    UA_source   Removing all cached process handles
default 19:10:45.739438+1000    UA_source   Sending handshake request attempt #1 to server
default 19:10:45.739447+1000    UA_source   Creating connection to com.apple.runningboard
default 19:10:45.739454+1000    UA_source   [0x600002fe01e0] activating connection: mach=true listener=false peer=false name=com.apple.runningboard
default 19:10:45.740861+1000    UA_source   Handshake succeeded
default 19:10:45.740937+1000    UA_source   Identity resolved as anon<UA_source>(501)
default 19:10:45.740762+1000    UA_source   Gained inheritances: {(
    <RBSInheritance| environment:(none) name:com.apple.launchservices.userfacing origID:375-338-539229 0>
)}
default 19:10:45.743607+1000    UA_source   [0x600002fe4000] activating connection: mach=false listener=false peer=false name=com.apple.ViewBridgeAuxiliary
default 19:10:45.745456+1000    UA_source   [0x13b714be0] activating connection: mach=false listener=false peer=false name=(anonymous)
default 19:10:45.745852+1000    UA_source   [0x13b615f70] activating connection: mach=false listener=true peer=false name=(anonymous)
default 19:10:45.745861+1000    UA_source   [0x13b615f70] Channel could not return listener port.
default 19:10:45.746100+1000    UA_source   [0x600002fe4000] invalidated after the last release of the connection object
default 19:10:45.836463+1000    UA_source   [0x600002ce4300] activating connection: mach=true listener=false peer=false name=com.apple.fonts
default 19:10:45.839469+1000    UA_source   NSApp cache appearance:
-NSRequiresAquaSystemAppearance: 0
-appearance: (null)
-effectiveAppearance: <NSCompositeAppearance: 0x600003efc300
 (
    "<NSDarkAquaAppearance: 0x600003efc280>",
    "<NSSystemAppearance: 0x600003efc180>"
)>
default 19:10:45.847421+1000    UA_source   [0x13d80b030] activating connection: mach=true listener=false peer=false name=com.apple.windowmanager.server
default 19:10:45.852322+1000    UA_source   [0x600002ff44b0] activating connection: mach=true listener=false peer=false name=com.apple.dock.fullscreen
default 19:10:45.852793+1000    UA_source   Window SDLWindow 0x13b70a880 ordered front from a non-active application and may order beneath the active application's windows.
default 19:10:45.852811+1000    UA_source   order window front conditionally: c5b2 related: 0
default 19:10:45.858856+1000    UA_source   [0x600002ff4960] activating connection: mach=true listener=false peer=false name=com.apple.cvmsServ
default 19:10:45.882046+1000    UA_source   [0x13b736560] activating connection: mach=true listener=false peer=false name=com.apple.audio.AudioComponentRegistrar
default 19:10:45.886754+1000    UA_source   Registered notify signal com.apple.caulk.alloc.rtdump (0)
default 19:10:45.887619+1000    UA_source               HALSystem.cpp:119    Enabling HAL Voice Isolation support
default 19:10:45.913132+1000    UA_source     HALPlugInManagement.cpp:393    HALPlugInManagement::RegisterPlugIns: skipping in-process plug-ins
error   19:10:45.913237+1000    UA_source   AddInstanceForFactory: No factory registered for id <CFUUID 0x6000010f8960> F8BB1C28-BAE8-11D6-9C31-00039315CD46
default 19:10:45.921374+1000    UA_source        HALC_ProxyObject.cpp:1456   HALC_Object_PropertyListener: not initialized
default 19:10:45.929810+1000    UA_source                   AUHAL.cpp:384   AUHAL: (0x13c82ba40) Listening to HAL system property 1682929012
default 19:10:45.929835+1000    UA_source                   AUHAL.cpp:399   AUHAL: (0x13c82ba40) Selecting device 86 from constructor
default 19:10:45.929847+1000    UA_source                   AUHAL.cpp:584   SelectDevice: -> (0x13c82ba40)
default 19:10:45.929853+1000    UA_source                   AUHAL.cpp:637   SelectDevice: (0x13c82ba40) not already running
default 19:10:45.929861+1000    UA_source                   AUHAL.cpp:711   SelectDevice: (0x13c82ba40) nothing to teardown
default 19:10:45.929898+1000    UA_source                   AUHAL.cpp:716   SelectDevice: (0x13c82ba40) connecting device 86
default 19:10:45.930022+1000    UA_source                   AUHAL.cpp:3217  IsDeviceUsable: (0x13c82ba40) Device ID: 86 (Input:No | Output:Yes): true
default 19:10:45.930104+1000    UA_source                   AUHAL.cpp:728   SelectDevice: (0x13c82ba40) created ioproc 0xa for device 86
default 19:10:45.930114+1000    UA_source                   AUHAL.cpp:1477  UpdateStreamFormats: -> (0x13c82ba40)
default 19:10:45.930217+1000    UA_source                   AUHAL.cpp:1572  UpdateStreamFormats: 
  output stream 0 [0x57]:  2 ch,  44100 Hz, Float32, interleaved
default 19:10:45.930229+1000    UA_source                   AUHAL.cpp:1584  UpdateStreamFormats: 1 output streams; not all mono
default 19:10:45.930295+1000    UA_source                   AUHAL.cpp:1596  UpdateStreamFormats: 
  Output render format:  2 ch,  44100 Hz, Float32, interleaved
default 19:10:45.930350+1000    UA_source                   AUHAL.cpp:1584  UpdateStreamFormats: 0 input streams; not all mono
default 19:10:45.930461+1000    UA_source                   AUHAL.cpp:1666  UpdateStreamFormats: AUHAL(0x13c82ba40) Calling PropertyChanged() for kAudioUnitProperty_StreamFormat, Scope:Output, Bus:Output
default 19:10:45.930471+1000    UA_source                   AUHAL.cpp:1682  UpdateStreamFormats: <-
default 19:10:45.930809+1000    UA_source          AudioConverter.cpp:712   Failed to created a new in process converter -> from  0 ch,      0 Hz to  0 ch,      0 Hz, with status -50
default 19:10:45.930818+1000    UA_source                   AUHAL.cpp:832   SelectDevice: (0x13c82ba40) removing 0 device listeners from device 0
default 19:10:45.930882+1000    UA_source                   AUHAL.cpp:845   SelectDevice: (0x13c82ba40) adding 6 device listeners to device 86
default 19:10:45.931015+1000    UA_source                   AUHAL.cpp:832   SelectDevice: (0x13c82ba40) removing 0 device delegate listeners from device 0
default 19:10:45.931022+1000    UA_source                   AUHAL.cpp:845   SelectDevice: (0x13c82ba40) adding 0 device delegate listeners to device 86
default 19:10:45.931057+1000    UA_source                   AUHAL.cpp:859   SelectDevice: <- (0x13c82ba40)
default 19:10:45.931333+1000    UA_source   Registered notify signal com.apple.caulk.alloc.audiodump (0)
default 19:10:45.931437+1000    UA_source          AudioConverter.cpp:702   Created a new in process converter -> 0x6000010bd1c0, from  2 ch,  44100 Hz, Float32, deinterleaved to  2 ch,  44100 Hz, Float32, interleaved
default 19:10:45.931495+1000    UA_source                   AUHAL.cpp:1777  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
default 19:10:45.937175+1000    UA_source          AudioConverter.cpp:702   Created a new in process converter -> 0x6000010bb600, from  2 ch,  44100 Hz, Float32, deinterleaved to  2 ch,  44100 Hz, Float32, interleaved
default 19:10:45.937182+1000    UA_source                   AUHAL.cpp:1777  SetStreamUsage: Output stream enables: Stream 0 is ENABLED
default 19:10:45.957396+1000    UA_source     AVAudioSession_MacOS.mm:986   initForMacOS
default 19:10:45.957681+1000    UA_source   [0x13b731100] activating connection: mach=true listener=false peer=false name=com.apple.audio.AudioSession
default 19:10:45.958798+1000    UA_source     AVAudioSession_MacOS.mm:830   Created session with ID: 0x4fad064
default 19:10:45.958841+1000    UA_source        CAReportingClient.mm:349   Creating CAReportingClient { useXPC="Y", endpoint="(null)" }
default 19:10:45.958879+1000    UA_source   [0x13b737050] activating connection: mach=true listener=false peer=false name=com.apple.audioanalyticsd
default 19:10:45.958971+1000    UA_source        CAReportingClient.mm:431   Created reporter { careporter_id=423286206889985 }
default 19:10:45.959177+1000    UA_source        CAReportingClient.mm:500   Adding reporter to client { careporter_id=423286206889985 }
default 19:10:45.959665+1000    UA_source        CAReportingClient.mm:758   Set servicetype { careporter_id=423286206889985, serviceType="generic" }
default 19:10:45.959966+1000    UA_source        CAReportingClient.mm:789   Setting new serviceType { careporter_id=423286206889985, servicename="generic", servicetype=0 }
default 19:10:45.960592+1000    UA_source        CAReportingClient.mm:702   Sending message { message="{
    category = AVAudioSessionCategorySoloAmbient;
    mode = AVAudioSessionModeDefault;
}", reporters="(
    423286206889985
)" }
default 19:10:45.960824+1000    UA_source     AVAudioSession_MacOS.mm:2356  --> setPlayState Started Output {E8-AB-FA-3E-9D-D7:output, 0xa}
default 19:10:45.963315+1000    UA_source     AVAudioSession_MacOS.mm:981   Sent updated IOState to server: [0, 1]. BT device UIDS: {(
    "E8-AB-FA-3E-9D-D7:output"
)}
default 19:10:45.963330+1000    UA_source     AVAudioSession_MacOS.mm:2397  <-- setPlayState Server update was required.
default 19:10:46.018764+1000    UA_source     AVAudioSession_MacOS.mm:2356  --> setPlayState Stopped Output {E8-AB-FA-3E-9D-D7:output, 0xa}
default 19:10:46.019470+1000    UA_source     AVAudioSession_MacOS.mm:981   Sent updated IOState to server: [0, 0]. BT device UIDS: {(
)}
default 19:10:46.019499+1000    UA_source     AVAudioSession_MacOS.mm:2397  <-- setPlayState Server update was required.
default 19:10:46.033118+1000    UA_source                   AUHAL.cpp:448   ~AUHAL: (0x13c82ba40) Selecting device 0 from destructor
default 19:10:46.033134+1000    UA_source                   AUHAL.cpp:584   SelectDevice: -> (0x13c82ba40)
default 19:10:46.033142+1000    UA_source                   AUHAL.cpp:637   SelectDevice: (0x13c82ba40) not already running
default 19:10:46.033148+1000    UA_source                   AUHAL.cpp:643   SelectDevice: (0x13c82ba40) disconnecting device 86
default 19:10:46.033154+1000    UA_source                   AUHAL.cpp:707   SelectDevice: (0x13c82ba40) destroying ioproc 0xa for device 86
default 19:10:46.033169+1000    UA_source     AVAudioSession_MacOS.mm:2356  --> setPlayState Stopped Output {E8-AB-FA-3E-9D-D7:output, 0xa}
default 19:10:46.033195+1000    UA_source     AVAudioSession_MacOS.mm:2391  <-- setPlayState IOState: [0, 0]. BT device UIDS: {(
)} Server update was not required.
default 19:10:46.033276+1000    UA_source                   AUHAL.cpp:814   SelectDevice: (0x13c82ba40) nothing to setup
default 19:10:46.033288+1000    UA_source                   AUHAL.cpp:832   SelectDevice: (0x13c82ba40) removing 6 device listeners from device 86
default 19:10:46.033410+1000    UA_source                   AUHAL.cpp:845   SelectDevice: (0x13c82ba40) adding 0 device listeners to device 0
default 19:10:46.033421+1000    UA_source                   AUHAL.cpp:832   SelectDevice: (0x13c82ba40) removing 0 device delegate listeners from device 86
default 19:10:46.033428+1000    UA_source                   AUHAL.cpp:845   SelectDevice: (0x13c82ba40) adding 0 device delegate listeners to device 0
default 19:10:46.033437+1000    UA_source                   AUHAL.cpp:859   SelectDevice: <- (0x13c82ba40)
default 19:10:46.033513+1000    UA_source   Entering exit handler.
default 19:10:46.033574+1000    UA_source   Queueing exit procedure onto XPC queue. Any further messages sent will be discarded. activeSendTransactions=0
default 19:10:46.033766+1000    UA_source   Cancelling XPC connection. Any further reply handler invocations will not retry messages
default 19:10:46.033818+1000    UA_source   [0x600002ff02d0] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
default 19:10:46.033896+1000    UA_source   Exiting exit handler.
default 19:10:46.033896+1000    UA_source   XPC connection invalidated (daemon unloaded/disabled)
rnkn commented 4 months ago

I did not correctly follow the installation instructions. I now have the game up and running!

Should I leave this issue open for the macOS compile changes or open a PR?