aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorNebuleon Fumika2012-12-18 00:02:49 -0500
committerNebuleon Fumika2012-12-18 00:02:49 -0500
commit8951fdff1aada126257e07699ea6f132cb8d2e65 (patch)
tree8fd46297b08021ea6ce4aaebef5bd2a646c95c07 /source
parentb935574e53ce56cc89691bfaff1905b0d1207739 (diff)
downloadsnesemu-8951fdff1aada126257e07699ea6f132cb8d2e65.tar.gz
snesemu-8951fdff1aada126257e07699ea6f132cb8d2e65.tar.bz2
snesemu-8951fdff1aada126257e07699ea6f132cb8d2e65.zip
Remove various explicit delays and reduce screen tearing when drawing emulated screens.
Diffstat (limited to 'source')
-rw-r--r--source/nds/entry.cpp17
-rw-r--r--source/nds/gui.c16
2 files changed, 14 insertions, 19 deletions
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);