libretro: expose BBA and UPnP network options

This commit is contained in:
Flyinghead 2023-01-26 10:05:58 +01:00
parent f7e227a4aa
commit cc4e3875f3
3 changed files with 40 additions and 3 deletions

View File

@ -422,6 +422,11 @@ static bool set_variable_visibility(void)
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
option_display.key = CORE_OPTION_NAME "_per_content_vmus";
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
option_display.visible = platformIsDreamcast || settings.platform.isAtomiswave();
option_display.key = CORE_OPTION_NAME "_emulate_bba";
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
option_display.key = CORE_OPTION_NAME "_upnp";
environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY, &option_display);
vmuScreenSettingsShown = option_display.visible;
for (unsigned i = 0; i < 4; i++)
@ -675,6 +680,7 @@ static void update_variables(bool first_startup)
bool wasThreadedRendering = config::ThreadedRendering;
bool prevRotateScreen = rotate_screen;
bool prevDetectVsyncSwapInterval = libretro_detect_vsync_swap_interval;
bool emulateBba = config::EmulateBBA;
config::Settings::instance().setRetroEnvironment(environ_cb);
config::Settings::instance().setOptionDefinitions(option_defs_us);
config::Settings::instance().load(false);
@ -1044,6 +1050,8 @@ static void update_variables(bool first_startup)
setAVInfo(avinfo);
environ_cb(RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO, &avinfo);
}
// must *not* be changed once a game is started
config::EmulateBBA.override(emulateBba);
}
}

View File

@ -140,7 +140,7 @@ struct retro_core_option_v2_definition option_defs_us[] = {
},
{
CORE_OPTION_NAME "_hle_bios",
"HLE BIOS",
"HLE BIOS (Restart Required)",
NULL,
"Force use of high-level emulation BIOS.",
NULL,
@ -226,6 +226,35 @@ struct retro_core_option_v2_definition option_defs_us[] = {
},
"enabled",
},
{
CORE_OPTION_NAME "_emulate_bba",
"Broadband Adapter Emulation",
NULL,
"Emulate the ethernet broadband adapter instead of the modem. (Restart Required)",
NULL,
"system",
{
{ "disabled", NULL },
{ "enabled", NULL },
{ NULL, NULL },
},
"disabled",
},
{
CORE_OPTION_NAME "_upnp",
"Enable UPnP",
NULL,
"Use UPnP to automatically configure your Internet router for online games.",
NULL,
"system",
{
{ "disabled", NULL },
{ "enabled", NULL },
{ NULL, NULL },
},
"enabled",
},
{
CORE_OPTION_NAME "_internal_resolution",
"Internal Resolution",

View File

@ -112,8 +112,8 @@ Option<bool> ActAsServer("", false);
OptionString DNS("", "46.101.91.123");
OptionString NetworkServer("", "");
Option<int> LocalPort("", 0);
Option<bool> EmulateBBA("", false); // TODO
Option<bool> EnableUPnP("", true); // TODO
Option<bool> EmulateBBA(CORE_OPTION_NAME "_emulate_bba", false);
Option<bool> EnableUPnP(CORE_OPTION_NAME "_upnp", true);
Option<bool> GGPOEnable("", false);
Option<int> GGPODelay("", 0);
Option<bool> NetworkStats("", false);