From a59ec21f23eeba43da3ed17a387cf2bd86bee1b9 Mon Sep 17 00:00:00 2001 From: OBattler Date: Sat, 29 Oct 2022 18:46:14 +0200 Subject: [PATCH] Fixed a configuration bug and nerfed the modes of the NEC CDR-260. --- src/config.c | 2 +- src/disk/hdc_ide.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/config.c b/src/config.c index 9c9779984..e4da13422 100644 --- a/src/config.c +++ b/src/config.c @@ -2717,7 +2717,7 @@ save_floppy_and_cdrom_drives(void) } sprintf(temp, "cdrom_%02i_early", c + 1); - if ((cdrom[c].bus_type == 0) || (cdrom[c].early == 1)) { + if ((cdrom[c].bus_type == 0) || (cdrom[c].early == 0)) { ini_section_delete_var(cat, temp); } else { ini_section_set_int(cat, temp, cdrom[c].early); diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index 35dfe5dcd..a57283cb2 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -425,7 +425,7 @@ static int ide_get_max(ide_t *ide, int type) { if (ide->type == IDE_ATAPI) - return ide->get_max(!ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL), type); + return ide->get_max(!ide->sc->pad0 && !ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL), type); switch (type) { case TYPE_PIO: /* PIO */ @@ -458,7 +458,7 @@ static int ide_get_timings(ide_t *ide, int type) { if (ide->type == IDE_ATAPI) - return ide->get_timings(!ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL), type); + return ide->get_timings(!ide->sc->pad0 && !ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL), type); switch (type) { case TIMINGS_DMA: @@ -584,7 +584,7 @@ ide_identify(ide_t *ide) memset(ide->buffer, 0, 512); if (ide->type == IDE_ATAPI) - ide->identify(ide, !ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL)); + ide->identify(ide, !ide->sc->pad0 && !ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL)); else if (ide->type != IDE_NONE) ide_hd_identify(ide); else { @@ -884,7 +884,7 @@ ide_atapi_attach(ide_t *ide) ide->type = IDE_ATAPI; ide_allocate_buffer(ide); ide_set_signature(ide); - ide->mdma_mode = (1 << ide->get_max(ide_boards[ide->board]->force_ata3 || !ide_bm[ide->board], TYPE_PIO)); + ide->mdma_mode = (1 << ide->get_max(!ide->sc->pad0 && !ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL), TYPE_PIO)); ide->error = 1; ide->cfg_spt = ide->cfg_hpc = 0; #ifndef EARLY_ATAPI @@ -987,7 +987,7 @@ ide_atapi_callback(ide_t *ide) #endif out = (ide->sc->packet_status & 0x01); - if (!ide_boards[ide->board]->force_ata3 && ide_bm[ide->board] && ide_bm[ide->board]->dma) { + if (!ide->sc->pad0 && !ide_boards[ide->board]->force_ata3 && ide_bm[ide->board] && ide_bm[ide->board]->dma) { ret = ide_bm[ide->board]->dma(ide->board, ide->sc->temp_buffer, ide->sc->packet_len, out, ide_bm[ide->board]->priv);