From 0472ace111b592747236a5e093ee86aa5231e6d8 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Wed, 7 Dec 2022 20:07:27 +0200 Subject: [PATCH] Disable wait for blitter option when it is not supported or is ignored. --- cfgfile.cpp | 2 +- main.cpp | 5 ++++- od-win32/win32gui.cpp | 7 +++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cfgfile.cpp b/cfgfile.cpp index bab65cb2..7c3d27af 100644 --- a/cfgfile.cpp +++ b/cfgfile.cpp @@ -9252,7 +9252,7 @@ int built_in_prefs (struct uae_prefs *p, int model, int config, int compa, int r v = bip_super (p, config, compa, romcheck); break; } - if ((p->cpu_model >= 68020 || !p->cpu_cycle_exact || !p->cpu_memory_cycle_exact) && !p->immediate_blits) + if ((p->cpu_model >= 68020 || !p->cpu_memory_cycle_exact) && !p->immediate_blits) p->waiting_blits = 1; if (p->sound_filter_type == FILTER_SOUND_TYPE_A500 && (p->chipset_mask & CSMASK_AGA)) p->sound_filter_type = FILTER_SOUND_TYPE_A1200; diff --git a/main.cpp b/main.cpp index a30791f8..dab6b168 100644 --- a/main.cpp +++ b/main.cpp @@ -353,12 +353,15 @@ void fixup_cpu (struct uae_prefs *p) error_log (_T("Immediate blitter and waiting blits can't be enabled simultaneously.\n")); p->waiting_blits = 0; } + if (p->cpu_memory_cycle_exact && p->cpu_model <= 68010 && p->waiting_blits) { + error_log(_T("Wait for blitter is not available in 68000/68010 cycle exact modes.\n")); + p->waiting_blits = 0; + } if (p->blitter_cycle_exact && !p->cpu_memory_cycle_exact) { error_log(_T("Blitter cycle-exact requires at least CPU memory cycle-exact.\n")); p->blitter_cycle_exact = 0; } - if (p->cpu_memory_cycle_exact) p->cpu_compatible = true; diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 6891caa1..5779da69 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -7948,9 +7948,12 @@ static void enable_for_chipsetdlg (HWND hDlg) #else ew (hDlg, IDC_CYCLEEXACTMEMORY, workprefs.cpu_model >= 68020); #endif - if (workprefs.immediate_blits && workprefs.waiting_blits) { + if ((workprefs.immediate_blits || (workprefs.cpu_memory_cycle_exact && workprefs.cpu_model <= 68010))) { workprefs.waiting_blits = 0; - CheckDlgButton (hDlg, IDC_BLITWAIT, FALSE); + CheckDlgButton(hDlg, IDC_BLITWAIT, FALSE); + ew(hDlg, IDC_BLITWAIT, false); + } else { + ew(hDlg, IDC_BLITWAIT, TRUE); } ew(hDlg, IDC_BLITIMM, !workprefs.cpu_cycle_exact); -- 2.47.3