From 00fd57cf9cf42ee7561e2a3f676447942ebb18a8 Mon Sep 17 00:00:00 2001 From: sorgelig Date: Mon, 11 Nov 2019 22:29:58 +0800 Subject: [PATCH] minimig: supports for config labels. --- menu.cpp | 13 ++++++++----- support/minimig/minimig_config.cpp | 8 ++++++-- support/minimig/minimig_config.h | 5 +++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/menu.cpp b/menu.cpp index 4ad8e4c..c0b0b5d 100644 --- a/menu.cpp +++ b/menu.cpp @@ -3108,7 +3108,7 @@ void HandleUI(void) OsdWrite(m++, " Startup config:"); for (uint i = 0; i < 10; i++) { - const char *info = minimig_get_cfg_info(i); + const char *info = minimig_get_cfg_info(i, menusub != i); static char name[128]; if (info) @@ -3118,9 +3118,10 @@ void HandleUI(void) char *p = strchr(name, '\n'); if (p) *p = 0; OsdWrite(m++, name, menusub == i); + if (menusub == i && p) { - sprintf(name, " %s", strchr(info, '\n')+1); + sprintf(name, " %s", strchr(info, '\n') + 1); OsdWrite(m++, name, 1, !(menumask & (1 << i))); } } @@ -3419,7 +3420,7 @@ void HandleUI(void) OsdWrite(m++, " Startup config:"); for (uint i = 0; i < 10; i++) { - const char *info = minimig_get_cfg_info(i); + const char *info = minimig_get_cfg_info(i, menusub != i); static char name[128]; if (info) @@ -3456,7 +3457,8 @@ void HandleUI(void) case MENU_SAVECONFIG_2: if (select) { - sprintf(minimig_config.info, "%s/%s/%s%s %s+%s%s%s%s\n", + int fastcfg = ((minimig_config.memory >> 4) & 0x03) | ((minimig_config.memory & 0x80) >> 5); + sprintf(minimig_config.info, "%s/%s/%s%s %s%s%s%s%s%s\n", config_cpu_msg[minimig_config.cpu & 0x03] + 2, config_chipset_msg[(minimig_config.chipset >> 2) & 7], minimig_config.chipset & CONFIG_NTSC ? "N" : "P", @@ -3465,7 +3467,8 @@ void HandleUI(void) minimig_config.hardfile[2].enabled || minimig_config.hardfile[3].enabled)) ? "/HD" : "", config_memory_chip_msg[minimig_config.memory & 0x03], - config_memory_fast_msg[(minimig_config.cpu>>1) & 1][((minimig_config.memory >> 4) & 0x03) | ((minimig_config.memory&0x80) >> 5)], + fastcfg ? "+" : "", + fastcfg ? config_memory_fast_msg[(minimig_config.cpu>>1) & 1][fastcfg] : "", ((minimig_config.memory >> 2) & 0x03) ? "+" : "", ((minimig_config.memory >> 2) & 0x03) ? config_memory_slow_msg[(minimig_config.memory >> 2) & 0x03] : "", (minimig_config.memory & 0x40) ? " HRT" : "" diff --git a/support/minimig/minimig_config.cpp b/support/minimig/minimig_config.cpp index e018a2e..13029aa 100644 --- a/support/minimig/minimig_config.cpp +++ b/support/minimig/minimig_config.cpp @@ -278,7 +278,7 @@ int minimig_cfg_save(int num) return FileSaveConfig(GetConfigurationName(num, 0), &minimig_config, sizeof(minimig_config)); } -const char* minimig_get_cfg_info(int num) +const char* minimig_get_cfg_info(int num, int label) { char *filename = GetConfigurationName(num, 1); if (!filename) return NULL; @@ -286,7 +286,11 @@ const char* minimig_get_cfg_info(int num) static mm_configTYPE tmpconf; memset(&tmpconf, 0, sizeof(tmpconf)); - if (FileLoadConfig(filename, &tmpconf, sizeof(tmpconf))) return tmpconf.info; + if (FileLoadConfig(filename, &tmpconf, sizeof(tmpconf))) + { + return (label && !tmpconf.kickstart[sizeof(tmpconf.kickstart)-1] && tmpconf.label[0]) ? tmpconf.label : tmpconf.info; + } + return ""; } diff --git a/support/minimig/minimig_config.h b/support/minimig/minimig_config.h index 0b98dc8..e22621f 100644 --- a/support/minimig/minimig_config.h +++ b/support/minimig/minimig_config.h @@ -42,7 +42,8 @@ typedef struct { char id[8]; unsigned long version; - char kickstart[1024]; + char kickstart[992]; + char label[32]; mm_filterTYPE filter; unsigned char memory; unsigned char chipset; @@ -61,7 +62,7 @@ extern mm_configTYPE minimig_config; int minimig_cfg_load(int num); int minimig_cfg_save(int num); -const char* minimig_get_cfg_info(int num); +const char* minimig_get_cfg_info(int num, int label); void minimig_reset(); void minimig_set_kickstart(char *name);