From: Toni Wilen Date: Fri, 14 Feb 2025 15:57:05 +0000 (+0200) Subject: Fix CD32 block caching X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=c4edda301d5cfdfff15c462817ca128da36777c0;p=francis%2Fwinuae.git Fix CD32 block caching --- diff --git a/akiko.cpp b/akiko.cpp index 07d95d26..dad07937 100644 --- a/akiko.cpp +++ b/akiko.cpp @@ -1608,11 +1608,11 @@ static void akiko_thread (void *null) } else { blocks = SECTOR_BUFFER_SIZE - secnum; } + if (blocks) { #if AKIKO_DEBUG_IO_CMD - if (1) - write_log(_T("CD32: filling buffer sector=%d-%d, blocks=%d\n"), sector, sector + blocks - 1, blocks); + if (1) + write_log(_T("CD32: filling buffer sector=%d-%d, blocks=%d\n"), sector, sector + blocks - 1, blocks); #endif - if (blocks) { uae_sem_post(&akiko_sem); int ok = sys_command_cd_rawread (unitnum, sector_buffer_2, sector, blocks, 2352); if (!ok) { @@ -1632,6 +1632,9 @@ static void akiko_thread (void *null) } } uae_sem_wait(&akiko_sem); + } + if (blocks || secnum) { + uae_sem_post(&akiko_sem); tmp1 = sector_buffer_info_1; sector_buffer_info_1 = sector_buffer_info_2; sector_buffer_info_2 = tmp1; @@ -1641,6 +1644,7 @@ static void akiko_thread (void *null) tmp3 = sector_buffer_sector_1; sector_buffer_sector_1 = sector_buffer_sector_2; sector_buffer_sector_2 = tmp3; + uae_sem_wait(&akiko_sem); } } uae_sem_post (&akiko_sem);