Mercurial > repos > blastem
diff cdd_mcu.c @ 2421:bcfa5e272f5e
Fix regression in Prince of Persia
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 20 Jan 2024 01:30:19 -0800 |
parents | 0871f555eff6 |
children | 69c28808b49a |
line wrap: on
line diff
--- 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;