diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp index a1455d373..fc7e12718 100644 --- a/src/citra/citra.cpp +++ b/src/citra/citra.cpp @@ -66,6 +66,7 @@ static void PrintHelp(const char* argv0) { "-m, --multiplayer=nick:password@address:port" " Nickname, password, address and port for multiplayer\n" "-r, --movie-record=[file] Record a movie (game inputs) to the given file\n" + "-a, --movie-record-author=AUTHOR Sets the author of the movie to be recorded\n" "-p, --movie-play=[file] Playback the movie (game inputs) from the given file\n" "-d, --dump-video=[file] Dumps audio and video to the given video file\n" "-f, --fullscreen Start in fullscreen mode\n" @@ -192,6 +193,7 @@ int main(int argc, char** argv) { bool use_gdbstub = Settings::values.use_gdbstub; u32 gdb_port = static_cast(Settings::values.gdbstub_port); std::string movie_record; + std::string movie_record_author; std::string movie_play; std::string dump_video; @@ -217,11 +219,17 @@ int main(int argc, char** argv) { u16 port = Network::DefaultRoomPort; static struct option long_options[] = { - {"gdbport", required_argument, 0, 'g'}, {"install", required_argument, 0, 'i'}, - {"multiplayer", required_argument, 0, 'm'}, {"movie-record", required_argument, 0, 'r'}, - {"movie-play", required_argument, 0, 'p'}, {"dump-video", required_argument, 0, 'd'}, - {"fullscreen", no_argument, 0, 'f'}, {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'v'}, {0, 0, 0, 0}, + {"gdbport", required_argument, 0, 'g'}, + {"install", required_argument, 0, 'i'}, + {"multiplayer", required_argument, 0, 'm'}, + {"movie-record", required_argument, 0, 'r'}, + {"movie-record-author", required_argument, 0, 'a'}, + {"movie-play", required_argument, 0, 'p'}, + {"dump-video", required_argument, 0, 'd'}, + {"fullscreen", no_argument, 0, 'f'}, + {"help", no_argument, 0, 'h'}, + {"version", no_argument, 0, 'v'}, + {0, 0, 0, 0}, }; while (optind < argc) { @@ -285,6 +293,9 @@ int main(int argc, char** argv) { case 'r': movie_record = optarg; break; + case 'a': + movie_record_author = optarg; + break; case 'p': movie_play = optarg; break; @@ -401,10 +412,14 @@ int main(int argc, char** argv) { } if (!movie_play.empty()) { + auto metadata = Core::Movie::GetInstance().GetMovieMetadata(movie_play); + LOG_INFO(Movie, "Author: {}", metadata.author); + LOG_INFO(Movie, "Rerecord count: {}", metadata.rerecord_count); + LOG_INFO(Movie, "Input count: {}", metadata.input_count); Core::Movie::GetInstance().StartPlayback(movie_play); } if (!movie_record.empty()) { - Core::Movie::GetInstance().StartRecording(movie_record); + Core::Movie::GetInstance().StartRecording(movie_record, movie_record_author); } if (!dump_video.empty()) { Layout::FramebufferLayout layout{