diff --git a/src/cdrom/cdrom.c b/src/cdrom/cdrom.c
index 0f468bba0..44bf2811c 100644
--- a/src/cdrom/cdrom.c
+++ b/src/cdrom/cdrom.c
@@ -29,6 +29,9 @@
#include <86box/cdrom.h>
#include <86box/cdrom_image.h>
#include <86box/cdrom_interface.h>
+#ifdef USE_CDROM_MITSUMI
+#include <86box/cdrom_mitsumi.h>
+#endif
#include <86box/log.h>
#include <86box/plat.h>
#include <86box/plat_cdrom_ioctl.h>
@@ -117,6 +120,9 @@ static const struct {
} controllers[] = {
// clang-format off
{ &cdrom_interface_none_device },
+#ifdef USE_CDROM_MITSUMI
+ { &mitsumi_cdrom_device },
+#endif
{ NULL }
// clang-format on
};
diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt
index e6e45fc25..f02e3708a 100644
--- a/src/qt/CMakeLists.txt
+++ b/src/qt/CMakeLists.txt
@@ -207,6 +207,10 @@ if(WACOM)
target_compile_definitions(ui PRIVATE USE_WACOM)
endif()
+if(CDROM_MITSUMI)
+ target_compile_definitions(ui PRIVATE USE_CDROM_MITSUMI)
+endif()
+
if(WIN32)
enable_language(RC)
target_sources(86Box PUBLIC 86Box-qt.rc)
diff --git a/src/qt/qt_harddrive_common.cpp b/src/qt/qt_harddrive_common.cpp
index e0b0233f1..52ae10a98 100644
--- a/src/qt/qt_harddrive_common.cpp
+++ b/src/qt/qt_harddrive_common.cpp
@@ -51,7 +51,7 @@ void
Harddrives::populateRemovableBuses(QAbstractItemModel *model)
{
model->removeRows(0, model->rowCount());
-#if 0
+#ifdef USE_CDROM_MITSUMI
model->insertRows(0, 4);
#else
model->insertRows(0, 3);
@@ -59,14 +59,14 @@ Harddrives::populateRemovableBuses(QAbstractItemModel *model)
model->setData(model->index(0, 0), QObject::tr("Disabled"));
model->setData(model->index(1, 0), QObject::tr("ATAPI"));
model->setData(model->index(2, 0), QObject::tr("SCSI"));
-#if 0
+#ifdef USE_CDROM_MITSUMI
model->setData(model->index(3, 0), QObject::tr("Mitsumi"));
#endif
model->setData(model->index(0, 0), HDD_BUS_DISABLED, Qt::UserRole);
model->setData(model->index(1, 0), HDD_BUS_ATAPI, Qt::UserRole);
model->setData(model->index(2, 0), HDD_BUS_SCSI, Qt::UserRole);
-#if 0
+#ifdef USE_CDROM_MITSUMI
model->setData(model->index(3, 0), CDROM_BUS_MITSUMI, Qt::UserRole);
#endif
}
diff --git a/src/qt/qt_settingsstoragecontrollers.cpp b/src/qt/qt_settingsstoragecontrollers.cpp
index 9bd1bda6f..6fa5906b5 100644
--- a/src/qt/qt_settingsstoragecontrollers.cpp
+++ b/src/qt/qt_settingsstoragecontrollers.cpp
@@ -142,6 +142,15 @@ SettingsStorageControllers::onCurrentMachineChanged(int machineId)
ui->comboBoxFD->setCurrentIndex(selectedRow);
/*CD interface controller config*/
+#ifdef USE_CDROM_MITSUMI
+ ui->label_7->setVisible(true);
+ ui->comboBoxCDInterface->setVisible(true);
+ ui->pushButtonCDInterface->setVisible(true);
+#else
+ ui->label_7->setVisible(false);
+ ui->comboBoxCDInterface->setVisible(false);
+ ui->pushButtonCDInterface->setVisible(false);
+#endif
c = 0;
model = ui->comboBoxCDInterface->model();
removeRows = model->rowCount();
diff --git a/src/qt/qt_settingsstoragecontrollers.ui b/src/qt/qt_settingsstoragecontrollers.ui
index 16d6e2494..a167e5bc1 100644
--- a/src/qt/qt_settingsstoragecontrollers.ui
+++ b/src/qt/qt_settingsstoragecontrollers.ui
@@ -51,9 +51,6 @@
-
-
- false
-
CD-ROM Controller:
@@ -61,9 +58,6 @@
-
-
- false
-
30
@@ -71,9 +65,6 @@
-
-
- false
-
Configure