--- main.c.orig	2005-07-03 13:49:38.000000000 -0400
+++ main.c	2022-07-31 14:16:35.000000000 -0400
@@ -1,3 +1,5 @@
+//#define LINUX  // Activate if system is using Linux!
+
 #include <config.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -8,6 +10,11 @@
 
 #ifndef LINUX
 #include <CoreServices/CoreServices.h>
+//#include <CoreServices.h>
+
+#include <sys/sysctl.h>
+#else
+#include <unistd.h> 
 #endif
 
 #define GLOBAL
@@ -28,12 +35,19 @@
 int main(int argc, char *argv[])
 {
 	int param_qual,			// quality preset, 0=fast, 3=hq
-		param_quant,	// base thing
+    param_quant,            // base thing
+    param_num_cpus;         // 1 = mono, 2 = dual
+    
 #ifndef LINUX
-		param_num_cpus = MPProcessors(); // 1 = mono, 2 = dual
+    // param_num_cpus = MPProcessors(); // 1 = mono, 2 = dual
+    size_t count_len = sizeof(param_num_cpus);
+    sysctlbyname("hw.logicalcpu", &param_num_cpus, &count_len, NULL, 0);
 #else
-		param_num_cpus = 1;
+    // param_num_cpus = 1;
+    param_num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
 #endif
+    if (param_num_cpus < 1) { param_num_cpus = 1; }
+    
 	double param_fact_x;	// total size should be divided by this factor
 	long long param_orim2vsize;
 	
