changeset 948:f87522554d7b

Allow changing the 68K clock divider in the config file
author Michael Pavone <pavone@retrodev.com>
date Sun, 10 Apr 2016 22:22:36 -0700
parents d29722e3359c
children fec4a59ae5d7
files blastem.c default.cfg
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/blastem.c	Sun Apr 10 22:22:01 2016 -0700
+++ b/blastem.c	Sun Apr 10 22:22:36 2016 -0700
@@ -27,8 +27,8 @@
 #define MCLKS_NTSC 53693175
 #define MCLKS_PAL  53203395
 
-#define MCLKS_PER_68K 7
-#define MCLKS_PER_YM  MCLKS_PER_68K
+uint32_t MCLKS_PER_68K;
+#define MCLKS_PER_YM  7
 #define MCLKS_PER_Z80 15
 #define MCLKS_PER_PSG (MCLKS_PER_Z80*16)
 #define DEFAULT_SYNC_INTERVAL MCLKS_LINE
@@ -1086,7 +1086,7 @@
 	uint8_t menu = !loaded;
 	if (!loaded) {
 		//load menu
-		romfname = tern_find_path(config, "ui\rom\0").ptrval;
+		romfname = tern_find_path(config, "ui\0rom\0").ptrval;
 		if (!romfname) {
 			romfname = "menu.bin";
 		}
@@ -1109,6 +1109,14 @@
 
 		loaded = 1;
 	}
+	char *m68k_divider = tern_find_path(config, "clocks\0m68k_divider\0").ptrval;
+	if (!m68k_divider) {
+		m68k_divider = "7";
+	}
+	MCLKS_PER_68K = atoi(m68k_divider);
+	if (!MCLKS_PER_68K) {
+		MCLKS_PER_68K = 7;
+	}
 	ram = malloc(RAM_WORDS * sizeof(uint16_t));
 	memmap_chunk base_map[] = {
 		{0xE00000, 0x1000000, 0xFFFF,   0, MMAP_READ | MMAP_WRITE | MMAP_CODE, ram,
--- a/default.cfg	Sun Apr 10 22:22:01 2016 -0700
+++ b/default.cfg	Sun Apr 10 22:22:36 2016 -0700
@@ -116,6 +116,7 @@
 }
 
 clocks {
+	m68k_divider 7
 	max_cycles 3420
 	speeds {
 		1 150