diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 5ce4b0795..6df37abe9 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -3067,7 +3067,7 @@ const machine_t machines[] = { .max_multi = 0 }, .bus_flags = MACHINE_AT, - .flags = MACHINE_FLAGS_NONE, + .flags = MACHINE_SOFTFLOAT_ONLY, .ram = { .min = 512, .max = 16384, diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index 1fb44f773..62a79c30d 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -333,6 +333,8 @@ MainWindow::MainWindow(QWidget *parent) #ifndef DISCORD ui->actionEnable_Discord_integration->setVisible(false); +#else + ui->actionEnable_Discord_integration->setEnabled(discord_loaded); #endif #if defined Q_OS_WINDOWS || defined Q_OS_MACOS diff --git a/src/sound/snd_gus.c b/src/sound/snd_gus.c index ce4947e3f..a68435815 100644 --- a/src/sound/snd_gus.c +++ b/src/sound/snd_gus.c @@ -111,6 +111,7 @@ typedef struct gus_t { int irq; int dma; int irq_midi; + int dma2; uint16_t base; int latch_enable; @@ -600,9 +601,17 @@ writegus(uint16_t addr, uint8_t val, void *priv) gus->sb_nmi = val & 0x80; } else { gus->dma = gus_dmas[val & 7]; + + if (val & 0x40) { + if (gus->dma == -1) + gus->dma = gus->dma2 = gus_dmas[(val >> 3) & 7]; + else + gus->dma2 = gus->dma; + } else + gus->dma2 = gus_dmas[(val >> 3) & 7]; #if defined(DEV_BRANCH) && defined(USE_GUSMAX) if (gus->type == GUS_MAX) - ad1848_setdma(&gus->ad1848, gus->dma); + ad1848_setdma(&gus->ad1848, gus->dma2); #endif } break; @@ -664,7 +673,9 @@ writegus(uint16_t addr, uint8_t val, void *priv) #if defined(DEV_BRANCH) && defined(USE_GUSMAX) if (gus->type == GUS_MAX) { if (gus->dma >= 4) - val |= 0x30; + val |= 0x10; + if (gus->dma2 >= 4) + val |= 0x20; gus->max_ctrl = (val >> 6) & 1; if (val & 0x40) { if ((val & 0xF) != ((addr >> 4) & 0xF)) {