Index: menu.c =================================================================== --- menu.c (revision 4398) +++ menu.c (working copy) @@ -743,6 +743,39 @@ fuse_emulation_unpause(); } +MENU_CALLBACK( menu_file_movie_record_recordfromrzx ) +{ + char *rzx_file, *fmf_file; + + ui_widget_finish(); + + if( rzx_playback || rzx_recording || movie_recording ) return; + + fuse_emulation_pause(); + + rzx_file = ui_get_open_filename( "Fuse - Load RZX" ); + if( !rzx_file ) { fuse_emulation_unpause(); return; } + + rzx_start_playback( rzx_file, 1 ); + free( rzx_file ); + display_refresh_all(); + + if( rzx_playback ) { + fmf_file = ui_get_save_filename( "Fuse - Record Movie File" ); + if( !fmf_file ) { + rzx_stop_playback( 1 ); + fuse_emulation_unpause(); + return; + } + + movie_start( fmf_file ); + free( fmf_file ); + ui_menu_activate( UI_MENU_ITEM_RECORDING, 1 ); + } + + fuse_emulation_unpause(); +} + MENU_CALLBACK( menu_file_recording_record ) { char *recording; Index: menu.h =================================================================== --- menu.h (revision 4398) +++ menu.h (working copy) @@ -125,6 +125,7 @@ MENU_CALLBACK( menu_file_savescreenaspng ); MENU_CALLBACK( menu_file_movie_record ); +MENU_CALLBACK( menu_file_movie_record_recordfromrzx ); MENU_CALLBACK( menu_options_general ); MENU_CALLBACK( menu_options_sound ); Index: movie.c =================================================================== --- movie.c (revision 4398) +++ movie.c (working copy) @@ -357,7 +357,7 @@ void movie_stop( void ) { - if( !movie_recording ) return; + if( !movie_paused && !movie_recording ) return; fwrite_compr( "X", 1, 1, of ); /* End of Recording! */ #ifdef HAVE_ZLIB_H @@ -387,6 +387,7 @@ fprintf( stderr, "Debug movie: saved %d.%d frame(.slice)\n", frame_no, slice_no ); #endif /* MOVIE_DEBUG_PRINT */ movie_recording = 0; + movie_paused = 0; ui_menu_activate( UI_MENU_ITEM_FILE_MOVIE_RECORDING, 0 ); } Index: menu_data.dat =================================================================== --- menu_data.dat (revision 4398) +++ menu_data.dat (working copy) @@ -48,6 +48,7 @@ File/_Movie, Branch File/Movie/_Record..., Item +File/Movie/R_ecord from RZX..., Item,, menu_file_movie_record_recordfromrzx File/Movie/_Pause, Item File/Movie/_Continue, Item,, menu_file_movie_pause File/Movie/_Stop, Item Index: ui.c =================================================================== --- ui.c (revision 4398) +++ ui.c (working copy) @@ -221,6 +221,7 @@ "/File/Movie/Pause", 0, "/File/Movie/Continue", 0, "/File/Movie/Record...", 1, + "/File/Movie/Record from RZX...", 1 }, { UI_MENU_ITEM_FILE_MOVIE_PAUSE, "/File/Movie/Pause",