From 508265be91f83fa86ce197c506609af8f067b93e Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 10 Dec 2017 18:52:30 +0200 Subject: [PATCH] Do not wait for blitter if blit size is too large. --- blitter.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/blitter.cpp b/blitter.cpp index 1b032a4e..914dbaed 100644 --- a/blitter.cpp +++ b/blitter.cpp @@ -1469,6 +1469,15 @@ static bool waitingblits (void) { static int warned = 10; + // crazy large blit size? don't wait.. (Vital / Mystic) + if (blt_info.vblitsize * blt_info.hblitsize * 2 > 2 * 1024 * 1024) { + if (warned) { + warned--; + write_log(_T("Crazy waiting_blits detected PC=%08x W=%d H=%d\n"), M68K_GETPC, blt_info.vblitsize, blt_info.hblitsize); + } + return false; + } + bool waited = false; while (bltstate != BLT_done && dmaen (DMA_BLITTER)) { waited = true; -- 2.47.3