From d9dbd6de84b4033856ee4da7753aacac2c302348 Mon Sep 17 00:00:00 2001 From: Sergiy Dvodnenko Date: Sun, 9 Nov 2025 17:52:32 +0200 Subject: [PATCH] Saturn: fix the status of commands, increase max seek delay between tracks. (#1058) * Saturn: fix the status of commands (Die Hard Arcade, Suchie-Pie Doki Doki Nightmare) * Saturn: increase max seek delay between tracks (Pocket Fighter) --- support/saturn/saturncdd.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/support/saturn/saturncdd.cpp b/support/saturn/saturncdd.cpp index 14f3ac6..7c2198f 100644 --- a/support/saturn/saturncdd.cpp +++ b/support/saturn/saturncdd.cpp @@ -505,7 +505,7 @@ int satcdd_t::CalcSeekDelay(int lba_old, int lba_new) if (n <= min) n = min; else if (n > max) n = max; - if (track_old != track_new) n += 17; + if (track_old != track_new) n += 27; if (diff < 0) n += 2; @@ -774,7 +774,7 @@ void satcdd_t::Process(uint8_t* time_mode) { stat[0] = SATURN_STAT_SEEK; stat[1] = q | 0x01; - stat[2] = this->lba < this->toc.end ? BCD(this->track + 1) : 0xAA; + stat[2] = this->lba < this->toc.end + 150 ? BCD(this->track + 1) : 0xAA; stat[3] = this->lba < 0 ? 0x00 : BCD(this->index); stat[4] = BCD(msf.m); stat[5] = BCD(msf.s); @@ -874,7 +874,7 @@ void satcdd_t::Process(uint8_t* time_mode) { stat[0] = SATURN_STAT_DATA; stat[1] = q | 0x01; - stat[2] = this->lba < this->toc.end ? BCD(this->track + 1) : 0xAA; + stat[2] = this->lba < this->toc.end + 150 ? BCD(this->track + 1) : 0xAA; stat[3] = this->lba < 0 ? 0x00 : BCD(this->index); stat[4] = BCD(msf.m); stat[5] = BCD(msf.s); @@ -902,7 +902,7 @@ void satcdd_t::Process(uint8_t* time_mode) { stat[0] = SATURN_STAT_IDLE; stat[1] = q | 0x01; - stat[2] = this->lba < this->toc.end ? BCD(this->track + 1) : 0xAA; + stat[2] = this->lba < this->toc.end + 150 ? BCD(this->track + 1) : 0xAA; stat[3] = this->lba < 0 ? 0x00 : BCD(this->index); stat[4] = BCD(msf.m); stat[5] = BCD(msf.s); @@ -950,7 +950,7 @@ void satcdd_t::Process(uint8_t* time_mode) { stat[0] = SATURN_STAT_IDLE; stat[1] = q | 0x01; - stat[2] = this->lba < this->toc.end ? BCD(this->track + 1) : 0xAA; + stat[2] = this->lba < this->toc.end + 150 ? BCD(this->track + 1) : 0xAA; stat[3] = this->lba < 0 ? 0x00 : BCD(this->index); stat[4] = BCD(msf.m); stat[5] = BCD(msf.s);