| 996 | } |
| 997 | |
| 998 | void blitter_handler(uae_u32 data) |
| 999 | { |
| 1000 | static int blitter_stuck; |
| 1001 | |
| 1002 | if (!dmaen (DMA_BLITTER)) { |
| 1003 | event2_newevent (ev2_blitter, 10, 0); |
| 1004 | blitter_stuck++; |
| 1005 | if (blitter_stuck < 20000 || !immediate_blits) |
| 1006 | return; /* gotta come back later. */ |
| 1007 | /* "free" blitter in immediate mode if it has been "stuck" ~3 frames |
| 1008 | * fixes some JIT game incompatibilities |
| 1009 | */ |
| 1010 | #ifdef DEBUGGER |
| 1011 | debugtest (DEBUGTEST_BLITTER, _T("force-unstuck!\n")); |
| 1012 | #endif |
| 1013 | } |
| 1014 | blitter_stuck = 0; |
| 1015 | if (blit_slowdown > 0 && !immediate_blits) { |
| 1016 | event2_newevent (ev2_blitter, makebliteventtime(blit_slowdown), 0); |
| 1017 | blit_slowdown = -1; |
| 1018 | return; |
| 1019 | } |
| 1020 | blitter_doit(); |
| 1021 | } |
| 1022 | |
| 1023 | #ifdef CPUEMU_13 |
| 1024 |
no test coverage detected