diff -Nurd cannonball-0.3.orig/cmake/CMakeLists.txt cannonball-0.3/cmake/CMakeLists.txt
--- cannonball-0.3.orig/cmake/CMakeLists.txt	2014-11-11 16:46:58.000000000 -0500
+++ cannonball-0.3/cmake/CMakeLists.txt	2023-12-02 18:29:55.000000000 -0500
@@ -25,8 +25,7 @@
     include(${DCMAKE})
 endif(TARGET)
 
-set(BOOST_INCLUDEDIR ${lib_base}/boost_1_54_0)
-find_package(Boost REQUIRED)
+set(BOOST_INCLUDEDIR FINK_PATH/opt/boost-1_78/include)
 
 # Include
 include_directories(
diff -Nurd cannonball-0.3.orig/cmake/debian.cmake cannonball-0.3/cmake/debian.cmake
--- cannonball-0.3.orig/cmake/debian.cmake	2014-11-11 16:46:58.000000000 -0500
+++ cannonball-0.3/cmake/debian.cmake	2021-06-30 23:13:40.000000000 -0400
@@ -1,18 +1,20 @@
 # Default CMake Setup. Used for Debian Builds.
 
-set(lib_base /usr/include)
+set(lib_base FINK_PATH/include)
 set(sdl_root ${lib_base}/SDL)
+set(OPENGL 1)
 
-include_directories("${sdl_root}")
+include_directories("${sdl_root}" "${lib_base}" "/System/Library/Frameworks/")
 
 link_libraries(cannonball 
     SDL
     SDLmain
+    "-framework Cocoa -framework GLUT -framework OpenGL"
 )
 
 # Linking
 link_directories(
-    "${sdl_root}/lib"
+    "FINK_PATH/lib"
 )
  
 # Location for Cannonball to create save files
diff -Nurd cannonball-0.3.orig/src/main/frontend/config.cpp cannonball-0.3/src/main/frontend/config.cpp
--- cannonball-0.3.orig/src/main/frontend/config.cpp	2014-11-11 16:46:58.000000000 -0500
+++ cannonball-0.3/src/main/frontend/config.cpp	2021-06-30 23:09:32.000000000 -0400
@@ -22,6 +22,7 @@
 #include "engine/ohiscore.hpp"
 #include "engine/audio/osoundint.hpp"
 
+typedef boost::property_tree::xml_writer_settings<std::string> xml_writer_settings;
 Config config;
 
 Config::Config(void)
@@ -238,12 +239,9 @@
     cont_traffic   = pt_config.get("continuous.traffic", 3);
 
 
-    // Tab space 1
-    boost::property_tree::xml_writer_settings<char> settings('\t', 1);
-
     try
     {
-        write_xml(filename, pt_config, std::locale(), settings);
+      write_xml(filename, pt_config, std::locale(), xml_writer_settings('\t', 1));
     }
     catch (std::exception &e)
     {
@@ -309,12 +307,9 @@
         pt.put(xmltag + ".time",     Utils::to_hex_string(e->time));
     }
     
-    // Tab space 1
-    boost::property_tree::xml_writer_settings<char> settings('\t', 1);
-    
     try
     {
-        write_xml(engine.jap ? filename + "_jap.xml" : filename + ".xml", pt, std::locale(), settings);
+      write_xml(engine.jap ? filename + "_jap.xml" : filename + ".xml", pt, std::locale(), xml_writer_settings('\t', 1));
     }
     catch (std::exception &e)
     {
@@ -365,12 +360,9 @@
         pt.put("time_trial.score" + Utils::to_string(i), ttrial.best_times[i]);
     }
 
-    // Tab space 1
-    boost::property_tree::xml_writer_settings<char> settings('\t', 1);
-    
     try
     {
-        write_xml(engine.jap ? filename + "_jap.xml" : filename + ".xml", pt, std::locale(), settings);
+      write_xml(engine.jap ? filename + "_jap.xml" : filename + ".xml", pt, std::locale(), xml_writer_settings('\t', 1));
     }
     catch (std::exception &e)
     {
@@ -415,4 +407,4 @@
     if (config.sound.enabled)
         cannonball::audio.start_audio();
     #endif
-}
\ No newline at end of file
+}
diff -Nurd cannonball-0.3.orig/src/main/romloader.cpp cannonball-0.3/src/main/romloader.cpp
--- cannonball-0.3.orig/src/main/romloader.cpp	2014-11-11 16:46:58.000000000 -0500
+++ cannonball-0.3/src/main/romloader.cpp	2021-06-30 23:14:17.000000000 -0400
@@ -16,9 +16,6 @@
 #include "stdint.hpp"
 #include "romloader.hpp"
 
-#ifdef __APPLE__
-#include "CoreFoundation/CoreFoundation.h"
-#endif
 
 RomLoader::RomLoader()
 {
@@ -43,20 +40,6 @@
 int RomLoader::load(const char* filename, const int offset, const int length, const int expected_crc, const uint8_t interleave)
 {
 
-#ifdef __APPLE__    
-    CFBundleRef mainBundle = CFBundleGetMainBundle();
-    CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
-    char bundlepath[PATH_MAX];
-
-    if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)bundlepath, PATH_MAX))
-    {
-        // error!
-    }
-
-    CFRelease(resourcesURL);
-    chdir(bundlepath);
-#endif
-
     std::string path = "roms/";
     path += std::string(filename);
 
@@ -99,19 +82,6 @@
 // Load Binary File (LayOut Levels, Tilemap Data etc.)
 int RomLoader::load_binary(const char* filename)
 {
-#ifdef __APPLE__    
-    CFBundleRef mainBundle = CFBundleGetMainBundle();
-    CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
-    char bundlepath[PATH_MAX];
-
-    if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)bundlepath, PATH_MAX))
-    {
-        // error!
-    }
-
-    CFRelease(resourcesURL);
-    chdir(bundlepath);
-#endif
 
     // --------------------------------------------------------------------------------------------
     // Read LayOut Data File
