From 897a83760649910e53ecf01bf28dfba739eb2993 Mon Sep 17 00:00:00 2001 From: KrahJohlito Date: Thu, 15 Jul 2021 15:13:34 +0930 Subject: [PATCH] BDM: add GUI option for MX4SIO --- ee_core/include/modules.h | 4 ++-- include/config.h | 1 + include/dialogs.h | 1 + include/opl.h | 1 + src/bdmsupport.c | 11 ++++++++--- src/dialogs.c | 5 +++++ src/gui.c | 2 ++ src/opl.c | 4 ++++ src/system.c | 16 ++++++++-------- 9 files changed, 32 insertions(+), 13 deletions(-) diff --git a/ee_core/include/modules.h b/ee_core/include/modules.h index 66a3ddf50..11a8f82d0 100644 --- a/ee_core/include/modules.h +++ b/ee_core/include/modules.h @@ -13,10 +13,10 @@ enum OPL_MODULE_ID { OPL_MODULE_ID_ILINK, OPL_MODULE_ID_ILINKBD, - //mx4sio mode modules + // mx4sio mode modules OPL_MODULE_ID_MX4SIOBD, - //SMB mode modules + // SMB mode modules OPL_MODULE_ID_SMSTCPIP, OPL_MODULE_ID_SMAP, OPL_MODULE_ID_SMBINIT, diff --git a/include/config.h b/include/config.h index 827bd9499..333aa6809 100644 --- a/include/config.h +++ b/include/config.h @@ -88,6 +88,7 @@ enum CONFIG_INDEX { #define CONFIG_OPL_ETH_MODE "eth_mode" #define CONFIG_OPL_APP_MODE "app_mode" #define CONFIG_OPL_ENABLE_FW "enable_firewire" +#define CONFIG_OPL_ENABLE_MX4SIO "enable_mx4sio" #define CONFIG_OPL_SWAP_SEL_BUTTON "swap_select_btn" #define CONFIG_OPL_PARENTAL_LOCK_PWD "parental_lock_password" #define CONFIG_OPL_SFX "enable_sfx" diff --git a/include/dialogs.h b/include/dialogs.h index 0547e68ce..afdbf79f0 100644 --- a/include/dialogs.h +++ b/include/dialogs.h @@ -35,6 +35,7 @@ enum UI_ITEMS { CFG_ETHMODE, CFG_APPMODE, CFG_ENABLEFW, + CFG_ENABLEMX4SIO, CFG_LASTPLAYED, CFG_LBL_AUTOSTARTLAST, CFG_AUTOSTARTLAST, diff --git a/include/opl.h b/include/opl.h index 5101b1ae6..d99f3330e 100644 --- a/include/opl.h +++ b/include/opl.h @@ -115,6 +115,7 @@ extern int gETHStartMode; extern int gAPPStartMode; extern int gEnableFW; +extern int gEnableMX4SIO; extern int gAutosort; extern int gAutoRefresh; diff --git a/src/bdmsupport.c b/src/bdmsupport.c index 6b9d08230..c30b46f60 100644 --- a/src/bdmsupport.c +++ b/src/bdmsupport.c @@ -24,6 +24,7 @@ static base_game_info_t *bdmGames; static char bdmDriver[5]; static int fireWireModLoaded = 0; +static int mx4sioModLoaded = 0; // forward declaration static item_list_t bdmGameList; @@ -78,6 +79,13 @@ static void bdmLoadBlockDeviceModules(void) fireWireModLoaded = 1; } + + if (gEnableMX4SIO && !mx4sioModLoaded) { + // Load MX4SIO Block Device drivers + sysLoadModuleBuffer(&mx4sio_bd_irx, size_mx4sio_bd_irx, 0, NULL); + + mx4sioModLoaded = 1; + } } void bdmLoadModules(void) @@ -97,9 +105,6 @@ void bdmLoadModules(void) // Load Optional Block Device drivers bdmLoadBlockDeviceModules(); - // Load MX4SIO Block Device drivers - sysLoadModuleBuffer(&mx4sio_bd_irx, size_mx4sio_bd_irx, 0, NULL); - sysLoadModuleBuffer(&bdmevent_irx, size_bdmevent_irx, 0, NULL); SifAddCmdHandler(0, &bdmEventHandler, NULL); diff --git a/src/dialogs.c b/src/dialogs.c index 7797b978d..900446013 100644 --- a/src/dialogs.c +++ b/src/dialogs.c @@ -150,6 +150,11 @@ struct UIItem diaBlockDevicesConfig[] = { {UI_BOOL, CFG_ENABLEFW, 1, 1, -1, 0, 0, {.intvalue = {0, 0}}}, {UI_BREAK}, + {UI_LABEL, 0, 1, 1, -1, -40, 0, {.label = {"MX4SIO", -1}}}, + {UI_SPACER}, + {UI_BOOL, CFG_ENABLEMX4SIO, 1, 1, -1, 0, 0, {.intvalue = {0, 0}}}, + {UI_BREAK}, + // buttons {UI_OK, 0, 1, 1, -1, 0, 0, {.label = {NULL, _STR_OK}}}, {UI_BREAK}, diff --git a/src/gui.c b/src/gui.c index 1aaa9a248..0bfe79b6c 100644 --- a/src/gui.c +++ b/src/gui.c @@ -422,10 +422,12 @@ static void guiShowBlockDeviceConfig(void) int ret; diaSetInt(diaBlockDevicesConfig, CFG_ENABLEFW, gEnableFW); + diaSetInt(diaBlockDevicesConfig, CFG_ENABLEMX4SIO, gEnableMX4SIO); ret = diaExecuteDialog(diaBlockDevicesConfig, -1, 1, NULL); if (ret) { diaGetInt(diaBlockDevicesConfig, CFG_ENABLEFW, &gEnableFW); + diaGetInt(diaBlockDevicesConfig, CFG_ENABLEMX4SIO, &gEnableMX4SIO); } } diff --git a/src/opl.c b/src/opl.c index f71eb2fad..3371ffd2c 100644 --- a/src/opl.c +++ b/src/opl.c @@ -146,6 +146,7 @@ int gHDDStartMode; int gETHStartMode; int gAPPStartMode; int gEnableFW; +int gEnableMX4SIO; int gAutosort; int gAutoRefresh; int gEnableNotifications; @@ -852,6 +853,7 @@ static void _loadConfig() configGetInt(configOPL, CONFIG_OPL_ETH_MODE, &gETHStartMode); configGetInt(configOPL, CONFIG_OPL_APP_MODE, &gAPPStartMode); configGetInt(configOPL, CONFIG_OPL_ENABLE_FW, &gEnableFW); + configGetInt(configOPL, CONFIG_OPL_ENABLE_MX4SIO, &gEnableMX4SIO); configGetInt(configOPL, CONFIG_OPL_SFX, &gEnableSFX); configGetInt(configOPL, CONFIG_OPL_BOOT_SND, &gEnableBootSND); configGetInt(configOPL, CONFIG_OPL_SFX_VOLUME, &gSFXVolume); @@ -1002,6 +1004,7 @@ static void _saveConfig() configSetInt(configOPL, CONFIG_OPL_ETH_MODE, gETHStartMode); configSetInt(configOPL, CONFIG_OPL_APP_MODE, gAPPStartMode); configSetInt(configOPL, CONFIG_OPL_ENABLE_FW, gEnableFW); + configSetInt(configOPL, CONFIG_OPL_ENABLE_MX4SIO, gEnableMX4SIO); configSetInt(configOPL, CONFIG_OPL_SFX, gEnableSFX); configSetInt(configOPL, CONFIG_OPL_BOOT_SND, gEnableBootSND); configSetInt(configOPL, CONFIG_OPL_SFX_VOLUME, gSFXVolume); @@ -1592,6 +1595,7 @@ static void setDefaults(void) gAPPStartMode = START_MODE_DISABLED; gEnableFW = 0; + gEnableMX4SIO = 0; frameCounter = 0; diff --git a/src/system.c b/src/system.c index 2cc02bcf8..f06e22104 100644 --- a/src/system.c +++ b/src/system.c @@ -352,14 +352,14 @@ void sysExecExit(void) } // Module bits -#define CORE_IRX_USB 0x01 -#define CORE_IRX_ETH 0x02 -#define CORE_IRX_SMB 0x04 -#define CORE_IRX_HDD 0x08 -#define CORE_IRX_VMC 0x10 -#define CORE_IRX_DEBUG 0x20 -#define CORE_IRX_DECI2 0x40 -#define CORE_IRX_ILINK 0x80 +#define CORE_IRX_USB 0x01 +#define CORE_IRX_ETH 0x02 +#define CORE_IRX_SMB 0x04 +#define CORE_IRX_HDD 0x08 +#define CORE_IRX_VMC 0x10 +#define CORE_IRX_DEBUG 0x20 +#define CORE_IRX_DECI2 0x40 +#define CORE_IRX_ILINK 0x80 #define CORE_IRX_MX4SIO 0x100 typedef struct