From 5e61b78b782dfaf8b4139c598deecc40ad412cd8 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Wed, 2 Apr 2025 01:10:21 +0600 Subject: [PATCH] Make sure that floppy icons and options do not appear if there's no floppy controller available --- src/floppy/fdc.c | 6 ++++++ src/qt/qt_machinestatus.cpp | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/floppy/fdc.c b/src/floppy/fdc.c index 51c3aa24a..e656e639c 100644 --- a/src/floppy/fdc.c +++ b/src/floppy/fdc.c @@ -79,6 +79,8 @@ int floppyrate[4]; int fdc_current[FDC_MAX] = { 0, 0 }; +volatile int fdcinited = 0; + #ifdef ENABLE_FDC_LOG int fdc_do_log = ENABLE_FDC_LOG; @@ -2337,6 +2339,8 @@ fdc_close(void *priv) fifo_close(fdc->fifo_p); + fdcinited = 0; + free(fdc); } @@ -2382,6 +2386,8 @@ fdc_init(const device_t *info) fdc_reset(fdc); + fdcinited = 1; + return fdc; } diff --git a/src/qt/qt_machinestatus.cpp b/src/qt/qt_machinestatus.cpp index d555be360..aba7fc1d4 100644 --- a/src/qt/qt_machinestatus.cpp +++ b/src/qt/qt_machinestatus.cpp @@ -40,6 +40,8 @@ extern "C" { #include <86box/ui.h> #include <86box/machine_status.h> #include <86box/config.h> + +extern volatile int fdcinited; }; #include @@ -303,6 +305,9 @@ MachineStatus::hasSCSI() void MachineStatus::iterateFDD(const std::function &cb) { + if (!fdcinited) + return; + for (int i = 0; i < FDD_NUM; ++i) { if (fdd_get_type(i) != 0) { cb(i);