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;
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;
#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);