diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h index b39ecdad6..de4e75ff8 100644 --- a/src/include/86box/machine.h +++ b/src/include/86box/machine.h @@ -392,6 +392,7 @@ extern const char * machine_getname_ex(int m); extern const char * machine_get_internal_name(void); extern const char * machine_get_nvr_name(void); extern int machine_get_machine_from_internal_name(const char *s); +extern int machine_get_machine_from_internal_name_ex(const char *s); /* returns -1 if internal name does not exist. */ extern void machine_init(void); #ifdef EMU_DEVICE_H extern const device_t *machine_get_kbc_device(int m); diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index e404a3f4a..cefc25878 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -20709,6 +20709,21 @@ machine_get_machine_from_internal_name(const char *s) return 0; } + +int +machine_get_machine_from_internal_name_ex(const char *s) +{ + int c = 0; + + while (machines[c].init != NULL) { + if (!strcmp(machines[c].internal_name, s)) + return c; + c++; + } + + return -1; +} + int machine_has_mouse(void) { diff --git a/src/qt/qt_vmmanager_system.cpp b/src/qt/qt_vmmanager_system.cpp index 5c9fd3d01..159659ebf 100644 --- a/src/qt/qt_vmmanager_system.cpp +++ b/src/qt/qt_vmmanager_system.cpp @@ -521,14 +521,11 @@ VMManagerSystem::setupVars() auto machine_name = QString(); int i = 0; int ram_granularity = 0; + int ci = machine_get_machine_from_internal_name_ex(machine_config["machine"].toUtf8()); // Machine - for (int ci = 0; ci < machine_count(); ++ci) { - if (machine_available(ci)) { - if (machines[ci].internal_name == machine_config["machine"]) { - machine_name = machines[ci].name; - ram_granularity = machines[ci].ram.step; - } - } + if (ci != -1 && machine_available(ci)) { + machine_name = machines[ci].name; + ram_granularity = machines[ci].ram.step; } display_table[VMManager::Display::Name::Machine] = machine_name;