# HG changeset patch # User Michael Pavone # Date 1705743019 28800 # Node ID bcfa5e272f5e30b0eea28926402c8ab6f9521bd7 # Parent 1fba97414ba6eb68a88acfb36128ad89c98c4620 Fix regression in Prince of Persia diff -r 1fba97414ba6 -r bcfa5e272f5e cdd_mcu.c --- a/cdd_mcu.c Fri Jan 19 22:30:25 2024 -0800 +++ b/cdd_mcu.c Sat Jan 20 01:30:19 2024 -0800 @@ -406,7 +406,7 @@ memset(&context->status_buffer, 0, sizeof(context->status_buffer) - 1); } context->status_buffer.checksum = checksum((uint8_t *)&context->status_buffer); - if (context->status_buffer.format != SF_NOTREADY) { + if (context->status_buffer.format != SF_NOTREADY || (context->status != DS_STOP && context->status < DS_SUM_ERROR)) { printf("CDD Status %X%X.%X%X%X%X%X%X.%X%X (lba %u)\n", context->status_buffer.status, context->status_buffer.format, context->status_buffer.b.time.min_high, context->status_buffer.b.time.min_low, @@ -467,6 +467,9 @@ break; } context->seek_pba = lba + LEADIN_SECTORS - 3; + if (context->cmd_buffer.cmd_type == CMD_SEEK) { + context->pause_pba = lba + LEADIN_SECTORS; + } context->seeking = 1; context->status = context->cmd_buffer.cmd_type == CMD_READ ? DS_PLAY : DS_PAUSE; break;