Skip to content

Commit 6d6c6c6

Browse files
committed
Fix last vertical line shown on the top of the screen when playing 16BPP RGB565 videos
1 parent c3e09ec commit 6d6c6c6

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

arm9/source/main.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,9 @@ ITCM_CODE void fillBordersInterlaced(void) {
219219
ITCM_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

Comments
 (0)