diff options
Diffstat (limited to 'src/GPU2D.cpp')
-rw-r--r-- | src/GPU2D.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/GPU2D.cpp b/src/GPU2D.cpp index 40f1c6e..e1419bf 100644 --- a/src/GPU2D.cpp +++ b/src/GPU2D.cpp @@ -368,6 +368,25 @@ void GPU2D::DrawScanline(u32 line) u32 dispmode = DispCnt >> 16; dispmode &= (Num ? 0x1 : 0x3); + // always render regular graphics + DrawScanline_Mode1(line, dst); + + // capture + if ((Num == 0) && (CaptureCnt & (1<<31))) + { + u32 capwidth, capheight; + switch ((CaptureCnt >> 20) & 0x3) + { + case 0: capwidth = 128; capheight = 128; break; + case 1: capwidth = 256; capheight = 64; break; + case 2: capwidth = 256; capheight = 128; break; + case 3: capwidth = 256; capheight = 192; break; + } + + if (line < capheight) + DoCapture(line, capwidth, dst); + } + switch (dispmode) { case 0: // screen off @@ -377,10 +396,7 @@ void GPU2D::DrawScanline(u32 line) } break; - case 1: // regular display - { - DrawScanline_Mode1(line, dst); - } + case 1: // regular display, already taken care of break; case 2: // VRAM display @@ -426,22 +442,6 @@ void GPU2D::DrawScanline(u32 line) break; } - // capture - if ((!Num) && (CaptureCnt & (1<<31))) - { - u32 capwidth, capheight; - switch ((CaptureCnt >> 20) & 0x3) - { - case 0: capwidth = 128; capheight = 128; break; - case 1: capwidth = 256; capheight = 64; break; - case 2: capwidth = 256; capheight = 128; break; - case 3: capwidth = 256; capheight = 192; break; - } - - if (line < capheight) - DoCapture(line, capwidth, dst); - } - // master brightness if (dispmode != 0) { |