* - doubled sprites
*/
#include "pico_int.h"
+#include <platform/common/upscale.h>
static void (*FinalizeLineM4)(int line);
static int skip_next_line;
}
}
+static void FinalizeLineRGB555M4(int line);
void PicoFrameStartMode4(void)
{
- int lines = 192;
+ int lines = 192, coffs;
skip_next_line = 0;
screen_offset = 24;
Pico.est.rendstatus = PDRAW_32_COLS;
lines = 224;
}
}
+ line_offset = PicoIn.opt & (POPT_DIS_32C_BORDER|POPT_EN_SOFTSCALE) ? 0 : 32;
+ coffs = line_offset;
+ if (FinalizeLineM4 == FinalizeLineRGB555M4)
+ line_offset = 0 /* done in FinalizeLine */;
if (Pico.est.rendstatus != rendstatus_old || lines != rendlines) {
- emu_video_mode_change(screen_offset, lines, line_offset, 256);
+ emu_video_mode_change(screen_offset, lines, coffs, 256);
rendstatus_old = Pico.est.rendstatus;
rendlines = lines;
}
Pico.est.HighPal[0xe0] = 0;
}
-#include <platform/common/upscale.h>
-
static void FinalizeLineRGB555M4(int line)
{
if (Pico.m.dirtyPal)
void PicoDrawSetOutputMode4(pdso_t which)
{
- line_offset = PicoIn.opt & (POPT_DIS_32C_BORDER|POPT_EN_SOFTSCALE) ? 0 : 32;
switch (which)
{
case PDF_8BIT: FinalizeLineM4 = FinalizeLine8bitM4; break;
- case PDF_RGB555: FinalizeLineM4 = FinalizeLineRGB555M4;
- line_offset = 0 /* done in FinalizeLine */; break;
+ case PDF_RGB555: FinalizeLineM4 = FinalizeLineRGB555M4; break;
default: FinalizeLineM4 = NULL;
PicoDrawSetInternalBuf(Pico.est.Draw2FB, 328); break;
}
+ rendstatus_old = -1;
}
// vim:shiftwidth=2:ts=2:expandtab
static void apply_renderer(void)\r
{\r
PicoIn.opt &= ~(POPT_ALT_RENDERER|POPT_EN_SOFTSCALE|POPT_DIS_32C_BORDER);\r
+\r
switch (get_renderer()) {\r
case RT_16BIT:\r
// 32X uses line mode for vscaling with accurate renderer, since\r
\r
if (PicoIn.AHW & PAHW_32X)\r
PicoDrawSetOutBuf(screen_buffer(g_screen_ptr), g_screen_ppitch * 2);\r
- else if (is_16bit_mode()) {\r
+ if (is_16bit_mode()) {\r
if (currentConfig.scaling == EOPT_SCALE_SW) {\r
PicoIn.opt |= POPT_EN_SOFTSCALE;\r
PicoIn.filter = currentConfig.filter;\r
screen_w = g_screen_width, screen_x = (screen_w - out_w)/2;\r
screen_h = g_screen_height, screen_y = (screen_h - out_h)/2;\r
\r
-\r
switch (currentConfig.scaling) {\r
case EOPT_SCALE_HW:\r
screen_w = out_w;\r