@@ -219,9 +219,9 @@ ITCM_CODE void fillBordersInterlaced(void) {
219219ITCM_CODE void HBlank_dmaFrameToScreen (void ) {
220220 int scanline = REG_VCOUNT;
221221 const u8 * src = displaySavedFrameBuffer ? savedFrameBuffer[0 ] : frameBuffer+(currentFrameInBufferForHBlank*(0x200 *rvidVRes));
222- if (scanline > videoYpos+rvidVRes) {
222+ if (rvidVRes < 192 && scanline > videoYpos+rvidVRes) {
223223 return ;
224- } else if (rvidVRes == 192 && scanline = = rvidVRes) {
224+ } else if (rvidVRes == 192 && scanline > = rvidVRes) {
225225 dmaCopyWordsAsynch (0 , src, BG_PALETTE_SUB, 256 *2 );
226226 } else {
227227 scanline++;
@@ -238,9 +238,9 @@ ITCM_CODE void HBlank_dmaDualFrameToScreen(void) {
238238 const int currentFrameInBufferDoubled = currentFrameInBufferForHBlank*2 ;
239239 const u8 * srcTop = displaySavedFrameBuffer ? savedFrameBuffer[0 ] : frameBuffer+(currentFrameInBufferDoubled*(0x200 *rvidVRes));
240240 const u8 * srcBottom = displaySavedFrameBuffer ? savedFrameBuffer[1 ] : frameBuffer+((currentFrameInBufferDoubled+1 )*(0x200 *rvidVRes));
241- if (scanline > videoYpos+rvidVRes) {
241+ if (rvidVRes < 192 && scanline > videoYpos+rvidVRes) {
242242 return ;
243- } else if (rvidVRes == 192 && scanline = = rvidVRes) {
243+ } else if (rvidVRes == 192 && scanline > = rvidVRes) {
244244 dmaCopyWordsAsynch (0 , srcTop, BG_PALETTE_SUB, 256 *2 );
245245 dmaCopyWordsAsynch (1 , srcBottom, BG_PALETTE, 256 *2 );
246246 } else {
@@ -264,9 +264,9 @@ ITCM_CODE void HBlank_dmaFrameToScreenInterlaced(void) {
264264 }
265265 const int check2 = (rvidVRes*2 );
266266 const u8 * src = displaySavedFrameBuffer ? savedFrameBuffer[0 ] : frameBuffer+(currentFrameInBufferForHBlank*(0x200 *rvidVRes));
267- if (scanline > check1+check2) {
267+ if (check2 < 192 && scanline > check1+check2) {
268268 return ;
269- } else if (check2 == 192 && scanline = = check2) {
269+ } else if (check2 == 192 && scanline > = check2) {
270270 dmaCopyWordsAsynch (0 , src, BG_PALETTE_SUB, 256 *2 );
271271 } else {
272272 scanline++;
@@ -290,9 +290,9 @@ ITCM_CODE void HBlank_dmaDualFrameToScreenInterlaced(void) {
290290 const int currentFrameInBufferDoubled = currentFrameInBufferForHBlank*2 ;
291291 const u8 * srcTop = displaySavedFrameBuffer ? savedFrameBuffer[0 ] : frameBuffer+(currentFrameInBufferDoubled*(0x200 *rvidVRes));
292292 const u8 * srcBottom = displaySavedFrameBuffer ? savedFrameBuffer[1 ] : frameBuffer+((currentFrameInBufferDoubled+1 )*(0x200 *rvidVRes));
293- if (scanline > check1+check2) {
293+ if (check2 < 192 && canline > check1+check2) {
294294 return ;
295- } else if (check2 == 192 && scanline = = check2) {
295+ } else if (check2 == 192 && scanline > = check2) {
296296 dmaCopyWordsAsynch (0 , srcTop, BG_PALETTE_SUB, 256 *2 );
297297 dmaCopyWordsAsynch (1 , srcBottom, BG_PALETTE, 256 *2 );
298298 } else {
0 commit comments