From 8951fdff1aada126257e07699ea6f132cb8d2e65 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika Date: Tue, 18 Dec 2012 00:02:49 -0500 Subject: Remove various explicit delays and reduce screen tearing when drawing emulated screens. --- source/nds/entry.cpp | 17 ++++++----------- source/nds/gui.c | 16 ++++++++-------- 2 files changed, 14 insertions(+), 19 deletions(-) (limited to 'source') diff --git a/source/nds/entry.cpp b/source/nds/entry.cpp index d3dbae3..c14902c 100644 --- a/source/nds/entry.cpp +++ b/source/nds/entry.cpp @@ -172,12 +172,7 @@ bool8 S9xDeinitUpdate (int Width, int Height, bool8 /*sixteen_bit*/) break; } - -// memcpy(up_screen_addr, GFX.Screen, 256*192*2); -// memcpy(down_screen_addr, GFX.Screen+256*192*2, 256*(224-192)*2); - - ds2_flipScreen(UP_SCREEN, 0); -// ds2_flipScreen(DOWN_SCREEN, 0); + ds2_flipScreen(UP_SCREEN, 1); // synchronise to vblank to avoid tearing return (TRUE); } @@ -454,12 +449,12 @@ int load_gamepak(char* file) CPU.Flags = 0; S9xReset (); - mdelay(50); + // mdelay(50); // Delete this delay if (!Memory.LoadROM (file)) return -1; Memory.LoadSRAM (S9xGetFilename (".srm")); - mdelay(50); + // mdelay(50); // Delete this delay //S9xLoadCheatFile (S9xGetFilename (".cht")); S9xCheat_Disable(); @@ -507,7 +502,7 @@ int load_gamepak(char* file) } */ - mdelay(50); + // mdelay(50); // Delete this delay if (!Settings.APUEnabled) S9xSetSoundMute (FALSE); @@ -602,7 +597,7 @@ int sfc_main (int argc, char **argv) if (Settings.Paused) { S9xSetSoundMute (TRUE); - mdelay(50); + // mdelay(50); // Delete this delay unsigned short screen[256*192]; copy_screen((void*)screen, up_screen_addr, 0, 0, 256, 192); @@ -996,7 +991,7 @@ const unsigned int keymap[12] = { unsigned int S9xReadJoypad (int which1) { - struct key_buf inputdata; + struct key_buf inputdata; ds2_getrawInput(&inputdata); if(inputdata.key & KEY_TOUCH) //Active menu diff --git a/source/nds/gui.c b/source/nds/gui.c index f8cd03b..99ea7b0 100644 --- a/source/nds/gui.c +++ b/source/nds/gui.c @@ -1650,7 +1650,7 @@ unsigned int frame_interval; --------------------------------------------------------*/ u32 menu(u16 *screen) { - mdelay(50); + mdelay(50); // to prevent the touch key from being applied too soon? gui_action_type gui_action; u32 i; u32 repeat; @@ -2059,7 +2059,7 @@ u32 menu(u16 *screen) reorder_latest_file(); save_game_config_file(); - mdelay(500); + // mdelay(500); // Delete this delay } } } @@ -2842,7 +2842,7 @@ u32 menu(u16 *screen) draw_string_vcenter(up_screen_addr, 0, 80, 256, COLOR_WHITE, msg[MSG_NON_LOAD_GAME]); ds2_flipScreen(UP_SCREEN, 1); - mdelay(500); + // mdelay(500); // Delete this delay } } @@ -2894,7 +2894,7 @@ u32 menu(u16 *screen) } save_emu_config_file(); - mdelay(500); + // mdelay(500); // Delete this delay } } @@ -3617,7 +3617,7 @@ u32 menu(u16 *screen) //----------------------------------------------------------------------------// // Menu Start ds2_setCPUclocklevel(0); - mdelay(200); + // mdelay(200); // Delete this delay ds2_setBacklight(3); @@ -3647,7 +3647,7 @@ u32 menu(u16 *screen) choose_menu(&main_menu); // Menu loop - mdelay(200); + // mdelay(50); // Delete this delay, shortened from 200 while(repeat) { @@ -4133,9 +4133,9 @@ u32 menu(u16 *screen) save_game_config_file(); } save_emu_config_file(); - mdelay(100); + // mdelay(100); // Delete this delay set_cpu_clock(clock_speed_number); - mdelay(200); + // mdelay(200); // Delete this delay ds2_clearScreen(DOWN_SCREEN, 0); ds2_flipScreen(DOWN_SCREEN, 1); -- cgit v1.2.3