# HG changeset patch # User Michael Pavone # Date 1522127602 25200 # Node ID 94ba407a5ec1cc59a7986305551d12aacf5eab95 # Parent cb12667aa83e3089b89c92be6fdd7571e3e27dcf Allow MegaWiFi support to be toggled in config file. Defaults to off due to security concerns diff -r cb12667aa83e -r 94ba407a5ec1 default.cfg --- 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 } diff -r cb12667aa83e -r 94ba407a5ec1 romdb.c --- 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); }