diff --git a/desmume/src/movie.cpp b/desmume/src/movie.cpp index 32eccd52b..2bda75014 100644 --- a/desmume/src/movie.cpp +++ b/desmume/src/movie.cpp @@ -210,8 +210,11 @@ MovieData::MovieData(bool fromCurrentSettings) if (fromCurrentSettings) { useExtBios = CommonSettings.UseExtBIOS; - if (useExtFirmware != -1) - useExtFirmware = CommonSettings.UseExtFirmware; + if (useExtBios) + swiFromBios = CommonSettings.SWIFromBIOS; + useExtFirmware = CommonSettings.UseExtFirmware; + if (useExtFirmware) + bootFromFirmware = CommonSettings.BootFromFirmware; if (!CommonSettings.UseExtFirmware) { firmNickname.resize(CommonSettings.fw_config.nickname_len); @@ -516,8 +519,12 @@ static void LoadSettingsFromMovie(MovieData movieData) { if (movieData.useExtBios != -1) CommonSettings.UseExtBIOS = movieData.useExtBios; + if (movieData.swiFromBios != -1) + CommonSettings.SWIFromBIOS = movieData.swiFromBios; if (movieData.useExtFirmware != -1) CommonSettings.UseExtFirmware = movieData.useExtFirmware; + if (movieData.bootFromFirmware != -1) + CommonSettings.BootFromFirmware = movieData.bootFromFirmware; if (!CommonSettings.UseExtFirmware) { if (movieData.firmNickname != "") diff --git a/desmume/src/movie.h b/desmume/src/movie.h index e7b1ea398..498a62916 100644 --- a/desmume/src/movie.h +++ b/desmume/src/movie.h @@ -155,7 +155,9 @@ public: bool binaryFlag; int useExtBios = -1; + int swiFromBios = -1; int useExtFirmware = -1; + int bootFromFirmware = -1; std::string firmNickname = ""; std::string firmMessage = ""; @@ -219,7 +221,9 @@ private: void installRtcStartNew(std::string& val) { DateTime::TryParse(val.c_str(), rtcStart); } void installBinary(std::string& val) { binaryFlag = atoi(val.c_str()) != 0; } void installUseExtBios(std::string& val) { useExtBios = atoi(val.c_str()) != 0; } + void installSwiFromBios(std::string& val) { swiFromBios = atoi(val.c_str()) != 0; } void installUseExtFirmware(std::string& val) { useExtFirmware = atoi(val.c_str()) != 0; } + void installBootFromFirmware(std::string& val) { bootFromFirmware = atoi(val.c_str()) != 0; } void installFirmNickname(std::string& val) { firmNickname = val; } void installFirmMessage(std::string& val) { firmMessage = val; } void installFirmFavColour(std::string& val) { firmFavColour = atoi(val.c_str()); } @@ -249,7 +253,9 @@ private: {"comment", &MovieData::installComment}, {"binary", &MovieData::installBinary}, {"useExtBios", &MovieData::installUseExtBios}, - {"useExtFirmware", &MovieData::installUseExtBios}, + {"swiFromBios", &MovieData::installSwiFromBios}, + {"useExtFirmware", &MovieData::installUseExtFirmware}, + {"bootFromFirmware", &MovieData::installBootFromFirmware}, {"firmNickname", &MovieData::installFirmNickname}, {"firmMessage", &MovieData::installFirmMessage}, {"firmFavColour", &MovieData::installFirmFavColour},