changeset 1548:94ba407a5ec1

Allow MegaWiFi support to be toggled in config file. Defaults to off due to security concerns
author Michael Pavone <pavone@retrodev.com>
date Mon, 26 Mar 2018 22:13:22 -0700
parents cb12667aa83e
children 577253765192
files default.cfg romdb.c
diffstat 2 files changed, 18 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/default.cfg	Mon Mar 26 21:39:18 2018 -0700
+++ b/default.cfg	Mon Mar 26 22:13:22 2018 -0700
@@ -230,6 +230,10 @@
 system {
 	ram_init zero
 	default_region U
+	#controls whether MegaWiFi support is enabled or not
+	#MegaWiFi allows ROMs to make connections to the internet
+	#so it should only be enabled for ROMs you trust
+	megawifi off
 }
 
 
--- a/romdb.c	Mon Mar 26 21:39:18 2018 -0700
+++ b/romdb.c	Mon Mar 26 22:13:22 2018 -0700
@@ -12,6 +12,7 @@
 #include "sega_mapper.h"
 #include "multi_game.h"
 #include "megawifi.h"
+#include "blastem.h"
 
 #define DOM_TITLE_START 0x120
 #define DOM_TITLE_END 0x150
@@ -803,11 +804,19 @@
 		map->write_16 = write_multi_game_w;
 		map->write_8 = write_multi_game_b;
 	} else if (!strcmp(dtype, "megawifi")) {
-		map->write_16 = megawifi_write_w;
-		map->write_8 = megawifi_write_b;
-		map->read_16 = megawifi_read_w;
-		map->read_8 = megawifi_read_b;
-		map->mask = 0xFFFFFF;
+		if (!strcmp(
+			"on", 
+			tern_find_path_default(config, "system\0megawifi\0", (tern_val){.ptrval="off"}, TVAL_PTR).ptrval)
+		) {
+			map->write_16 = megawifi_write_w;
+			map->write_8 = megawifi_write_b;
+			map->read_16 = megawifi_read_w;
+			map->read_8 = megawifi_read_b;
+			map->mask = 0xFFFFFF;
+		} else {
+			warning("ROM uses MegaWiFi, but it is disabled\n");
+			return;
+		}
 	} else {
 		fatal_error("Invalid device type %s for ROM DB map entry %d with address %s\n", dtype, state->index, key);
 	}