From: <fr...@us...> - 2009-05-29 23:50:02
|
Revision: 4023 http://fuse-emulator.svn.sourceforge.net/fuse-emulator/?rev=4023&view=rev Author: fredm Date: 2009-05-29 23:49:52 +0000 (Fri, 29 May 2009) Log Message: ----------- Fixes for speed estimation (part of patch #2688741) (Gergely Szasz) Modified Paths: -------------- trunk/fuse/hacking/ChangeLog trunk/fuse/timer/timer.c Modified: trunk/fuse/hacking/ChangeLog =================================================================== --- trunk/fuse/hacking/ChangeLog 2009-05-29 23:45:47 UTC (rev 4022) +++ trunk/fuse/hacking/ChangeLog 2009-05-29 23:49:52 UTC (rev 4023) @@ -3123,3 +3123,5 @@ tape.c,ui/options.dat,ula.c: switch from libsamplerate to Blip_Buffer (by Shay Green) for alias noise reduction for beeper and AY (Fred). 20090530 ui/gtk/gtkui.c: remove unused variable (Fred). +20090530 timer/timer.c: fixes for speed estimation (part of patch #2688741) + (Gergely Szasz) Modified: trunk/fuse/timer/timer.c =================================================================== --- trunk/fuse/timer/timer.c 2009-05-29 23:45:47 UTC (rev 4022) +++ trunk/fuse/timer/timer.c 2009-05-29 23:49:52 UTC (rev 4023) @@ -78,7 +78,8 @@ current_speed = settings_current.emulation_speed; } else { - current_speed = 10 * ( current_time - stored_times[ next_stored_time ] ); + current_speed = 10 * 100 / + ( current_time - stored_times[ next_stored_time ] ); } ui_statusbar_update_speed( current_speed ); @@ -176,9 +177,6 @@ void *user_data GCC_UNUSED ) { double current_time, difference; - float speed = ( settings_current.emulation_speed < 1 ? - 100 : - settings_current.emulation_speed ) / 100.0; long tstates; if( sound_enabled ) { @@ -197,10 +195,14 @@ } else { + float speed = ( settings_current.emulation_speed < 1 ? + 1.0 : + settings_current.emulation_speed ) / 100.0; + while( 1 ) { current_time = timer_get_time(); if( current_time < 0 ) return; - difference = ( current_time - start_time ) / 1000.0; + difference = current_time - start_time; /* Sleep while we are still 10ms ahead */ if( difference < 0 ) { @@ -212,7 +214,7 @@ } current_time = timer_get_time(); if( current_time < 0 ) return; - difference = ( current_time - start_time ) / 1000.0; + difference = current_time - start_time; tstates = ( ( difference + TEN_MS / 1000.0 ) * machine_current->timings.processor_speed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |