From 9b9fa94c27efca124e0ef801e5eacccb96746394 Mon Sep 17 00:00:00 2001 From: Vladimir Panteleev Date: Wed, 1 Oct 2014 13:22:22 +0000 Subject: [PATCH 1/2] Add --max-frames option --- general.h | 2 ++ retroarch.c | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/general.h b/general.h index 7369239141..b297e817db 100644 --- a/general.h +++ b/general.h @@ -683,6 +683,8 @@ struct global } frame_cache; unsigned frame_count; + unsigned max_frames; + char title_buf[64]; struct diff --git a/retroarch.c b/retroarch.c index b45aa3705a..24cfd012d6 100644 --- a/retroarch.c +++ b/retroarch.c @@ -671,7 +671,8 @@ static void print_help(void) puts("\t--bps: Specifies path for BPS patch that will be applied to content."); puts("\t--ips: Specifies path for IPS patch that will be applied to content."); puts("\t--no-patch: Disables all forms of content patching."); - puts("\t-D/--detach: Detach " RETRO_FRONTEND " from the running console. Not relevant for all platforms.\n"); + puts("\t-D/--detach: Detach " RETRO_FRONTEND " from the running console. Not relevant for all platforms."); + puts("\t--max-frames: Runs for the specified number of frames, then exits.\n"); } static void set_basename(const char *path) @@ -853,6 +854,7 @@ static void parse_input(int argc, char *argv[]) { "detach", 0, NULL, 'D' }, { "features", 0, &val, 'f' }, { "subsystem", 1, NULL, 'Z' }, + { "max-frames", 1, NULL, 'm' }, { NULL, 0, NULL, 0 } }; @@ -1050,6 +1052,10 @@ static void parse_input(int argc, char *argv[]) #endif break; + case 'm': + g_extern.max_frames = strtoul(optarg, NULL, 10); + break; + case 0: switch (val) { @@ -3265,6 +3271,8 @@ bool rarch_main_iterate(void) if ( g_extern.system.shutdown || check_quit_key_func(input) || + (g_extern.max_frames && + g_extern.frame_count >= g_extern.max_frames) || !driver.video->alive(driver.video_data)) return false; From c3e6dd41cc8e884b7ac2322fb789c043688d2ae1 Mon Sep 17 00:00:00 2001 From: Vladimir Panteleev Date: Wed, 1 Oct 2014 14:33:00 +0000 Subject: [PATCH 2/2] Add --eof-exit switch --- general.h | 1 + retroarch.c | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/general.h b/general.h index b297e817db..fafe38e552 100644 --- a/general.h +++ b/general.h @@ -616,6 +616,7 @@ struct global bsv_movie_t *movie; char movie_path[PATH_MAX]; bool movie_playback; + bool eof_exit; /* Immediate playback/recording. */ char movie_start_path[PATH_MAX]; diff --git a/retroarch.c b/retroarch.c index 24cfd012d6..fe405f158c 100644 --- a/retroarch.c +++ b/retroarch.c @@ -644,6 +644,7 @@ static void print_help(void) puts("\t-P/--bsvplay: Playback a BSV movie file."); puts("\t-R/--bsvrecord: Start recording a BSV movie file from the beginning."); + puts("\t--eof-exit: Exit upon reaching the end of the BSV movie file."); puts("\t-M/--sram-mode: Takes an argument telling how SRAM should be handled in the session."); puts("\t\t{no,}load-{no,}save describes if SRAM should be loaded, and if SRAM should be saved."); puts("\t\tDo note that noload-save implies that save files will be deleted and overwritten."); @@ -855,6 +856,7 @@ static void parse_input(int argc, char *argv[]) { "features", 0, &val, 'f' }, { "subsystem", 1, NULL, 'Z' }, { "max-frames", 1, NULL, 'm' }, + { "eof-exit", 0, &val, 'e' }, { NULL, 0, NULL, 0 } }; @@ -1131,6 +1133,10 @@ static void parse_input(int argc, char *argv[]) print_features(); exit(0); + case 'e': + g_extern.bsv.eof_exit = true; + break; + default: break; } @@ -3273,6 +3279,7 @@ bool rarch_main_iterate(void) check_quit_key_func(input) || (g_extern.max_frames && g_extern.frame_count >= g_extern.max_frames) || + (g_extern.bsv.movie_end && g_extern.bsv.eof_exit) || !driver.video->alive(driver.video_data)) return false;