@@ -3067,7 +3067,7 @@ const machine_t machines[] = {
|
|||||||
.max_multi = 0
|
.max_multi = 0
|
||||||
},
|
},
|
||||||
.bus_flags = MACHINE_AT,
|
.bus_flags = MACHINE_AT,
|
||||||
.flags = MACHINE_FLAGS_NONE,
|
.flags = MACHINE_SOFTFLOAT_ONLY,
|
||||||
.ram = {
|
.ram = {
|
||||||
.min = 512,
|
.min = 512,
|
||||||
.max = 16384,
|
.max = 16384,
|
||||||
|
@@ -333,6 +333,8 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
|
|
||||||
#ifndef DISCORD
|
#ifndef DISCORD
|
||||||
ui->actionEnable_Discord_integration->setVisible(false);
|
ui->actionEnable_Discord_integration->setVisible(false);
|
||||||
|
#else
|
||||||
|
ui->actionEnable_Discord_integration->setEnabled(discord_loaded);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined Q_OS_WINDOWS || defined Q_OS_MACOS
|
#if defined Q_OS_WINDOWS || defined Q_OS_MACOS
|
||||||
|
@@ -111,6 +111,7 @@ typedef struct gus_t {
|
|||||||
int irq;
|
int irq;
|
||||||
int dma;
|
int dma;
|
||||||
int irq_midi;
|
int irq_midi;
|
||||||
|
int dma2;
|
||||||
uint16_t base;
|
uint16_t base;
|
||||||
int latch_enable;
|
int latch_enable;
|
||||||
|
|
||||||
@@ -600,9 +601,17 @@ writegus(uint16_t addr, uint8_t val, void *priv)
|
|||||||
gus->sb_nmi = val & 0x80;
|
gus->sb_nmi = val & 0x80;
|
||||||
} else {
|
} else {
|
||||||
gus->dma = gus_dmas[val & 7];
|
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 defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||||
if (gus->type == GUS_MAX)
|
if (gus->type == GUS_MAX)
|
||||||
ad1848_setdma(&gus->ad1848, gus->dma);
|
ad1848_setdma(&gus->ad1848, gus->dma2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -664,7 +673,9 @@ writegus(uint16_t addr, uint8_t val, void *priv)
|
|||||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||||
if (gus->type == GUS_MAX) {
|
if (gus->type == GUS_MAX) {
|
||||||
if (gus->dma >= 4)
|
if (gus->dma >= 4)
|
||||||
val |= 0x30;
|
val |= 0x10;
|
||||||
|
if (gus->dma2 >= 4)
|
||||||
|
val |= 0x20;
|
||||||
gus->max_ctrl = (val >> 6) & 1;
|
gus->max_ctrl = (val >> 6) & 1;
|
||||||
if (val & 0x40) {
|
if (val & 0x40) {
|
||||||
if ((val & 0xF) != ((addr >> 4) & 0xF)) {
|
if ((val & 0xF) != ((addr >> 4) & 0xF)) {
|
||||||
|
Reference in New Issue
Block a user