From 75f567e96d5ceca02565972b5ed231667e28b542 Mon Sep 17 00:00:00 2001 From: Sergiy Dvodnenko Date: Thu, 2 Oct 2025 07:36:19 +0300 Subject: [PATCH] Saturn: transition to the next track when indexes overflow (Flash Sega Saturn Vol. 14: Monster Slider demo) (#1044) --- support/saturn/saturncdd.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/support/saturn/saturncdd.cpp b/support/saturn/saturncdd.cpp index 589402a..14f3ac6 100644 --- a/support/saturn/saturncdd.cpp +++ b/support/saturn/saturncdd.cpp @@ -532,6 +532,11 @@ void satcdd_t::CommandExec() { int cmd_idx = comm[4]; int cmd_tno = comm[8]; + if (cmd_idx > this->toc.tracks[cmd_tno - 1].index_num && cmd_tno - 1 < this->toc.last) { + cmd_idx -= this->toc.tracks[cmd_tno - 1].index_num; + cmd_tno += 1; + cmd_fad = this->toc.tracks[cmd_tno - 1].start + 150; + } int fad = cmd_fad + this->GetSectorOffsetByIndex(cmd_tno, cmd_idx); switch (comm[0]) {