mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
tune flip calls and frame setup
for pandora, mostly
This commit is contained in:
parent
9c9cda8c39
commit
b7d64dbdb7
5 changed files with 15 additions and 13 deletions
10
pico/draw.c
10
pico/draw.c
|
@ -1424,11 +1424,6 @@ PICO_INTERNAL void PicoFrameStart(void)
|
|||
lines = 240;
|
||||
}
|
||||
|
||||
HighCol = HighColBase + offs * HighColIncrement;
|
||||
DrawLineDest = (char *)DrawLineDestBase + offs * DrawLineDestIncrement;
|
||||
DrawScanline = 0;
|
||||
skip_next_line = 0;
|
||||
|
||||
if (rendstatus != rendstatus_old || lines != rendlines) {
|
||||
rendlines = lines;
|
||||
// mode_change() might reset rendstatus_old by calling SetColorFormat
|
||||
|
@ -1437,6 +1432,11 @@ PICO_INTERNAL void PicoFrameStart(void)
|
|||
rendstatus_old = rendstatus;
|
||||
}
|
||||
|
||||
HighCol = HighColBase + offs * HighColIncrement;
|
||||
DrawLineDest = (char *)DrawLineDestBase + offs * DrawLineDestIncrement;
|
||||
DrawScanline = 0;
|
||||
skip_next_line = 0;
|
||||
|
||||
if (PicoOpt & POPT_ALT_RENDERER)
|
||||
return;
|
||||
|
||||
|
|
|
@ -48,7 +48,8 @@ currentConfig_t currentConfig, defaultConfig;
|
|||
int state_slot = 0;
|
||||
int config_slot = 0, config_slot_current = 0;
|
||||
int pico_pen_x = 320/2, pico_pen_y = 240/2;
|
||||
int pico_inp_mode = 0;
|
||||
int pico_inp_mode;
|
||||
int flip_after_sync;
|
||||
int engineState = PGS_Menu;
|
||||
|
||||
static short __attribute__((aligned(4))) sndBuffer[2*44100/50];
|
||||
|
@ -1431,7 +1432,8 @@ void emu_loop(void)
|
|||
PicoFrame();
|
||||
pemu_finalize_frame(fpsbuff, notice_msg);
|
||||
|
||||
// plat_video_flip();
|
||||
if (!flip_after_sync)
|
||||
plat_video_flip();
|
||||
|
||||
/* frame limiter */
|
||||
if (!reset_timing && !(currentConfig.EmuOpt & (EOPT_NO_FRMLIMIT|EOPT_EXT_FRMLIMIT)))
|
||||
|
@ -1449,9 +1451,8 @@ void emu_loop(void)
|
|||
}
|
||||
}
|
||||
|
||||
// XXX: for some plats it might be better to flip before vsync
|
||||
// (due to shadow registers in display hw)
|
||||
plat_video_flip();
|
||||
if (flip_after_sync)
|
||||
plat_video_flip();
|
||||
|
||||
pframes_done++; frames_done++; frames_shown++;
|
||||
|
||||
|
|
|
@ -82,6 +82,7 @@ extern int state_slot;
|
|||
extern int config_slot, config_slot_current;
|
||||
extern unsigned char *movie_data;
|
||||
extern int reset_timing;
|
||||
extern int flip_after_sync;
|
||||
|
||||
#define PICO_PEN_ADJUST_X 4
|
||||
#define PICO_PEN_ADJUST_Y 2
|
||||
|
|
|
@ -202,6 +202,7 @@ void plat_init(void)
|
|||
in_set_config(in_name_to_id("evdev:pollux-analog"), IN_CFG_KEY_NAMES,
|
||||
caanoo_keys, sizeof(caanoo_keys));
|
||||
|
||||
flip_after_sync = 1;
|
||||
gp2x_menu_init();
|
||||
}
|
||||
|
||||
|
|
|
@ -300,9 +300,6 @@ void emu_video_mode_change(int start_line, int line_count, int is_32cols)
|
|||
if (doing_bg_frame)
|
||||
return;
|
||||
|
||||
PicoDrawSetOutFormat(PDF_RGB555, 1);
|
||||
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
|
||||
|
||||
if (is_32cols) {
|
||||
fb_w = 256;
|
||||
fb_left = fb_right = 32;
|
||||
|
@ -353,6 +350,8 @@ void emu_video_mode_change(int start_line, int line_count, int is_32cols)
|
|||
vout_fbdev_clear(layer_fb);
|
||||
vout_fbdev_resize(layer_fb, fb_w, fb_h, 16, fb_left, fb_right, fb_top, fb_bottom, 3);
|
||||
plat_video_flip();
|
||||
|
||||
PicoDrawSetOutFormat(PDF_RGB555, 0);
|
||||
}
|
||||
|
||||
void plat_video_loop_prepare(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue