Reset firmware at movie play/record (if external firmware is not used). This prevents movie desync caused by games which rewrites firmware area during the play. (for instance, Ragnarok Online DS)

This commit is contained in:
gocha 2013-04-17 13:03:23 +00:00
parent c3e55253d4
commit 7d78f85f4c
1 changed files with 12 additions and 0 deletions

View File

@ -574,6 +574,12 @@ const char* _CDECL_ FCEUI_LoadMovie(const char *fname, bool _read_only, bool tas
//fully reload the game to reinitialize everything before playing any movie
//poweron(true);
// reset firmware (some games can write to it)
if (CommonSettings.UseExtFirmware == false)
{
NDS_CreateDummyFirmware(&CommonSettings.InternalFirmConf);
}
NDS_Reset();
////WE NEED TO LOAD A SAVESTATE
@ -683,6 +689,12 @@ void FCEUI_SaveMovie(const char *fname, std::wstring author, int flag, std::stri
currMovieData.romFilename = path.GetRomName();
currMovieData.rtcStart = rtcstart;
// reset firmware (some games can write to it)
if (CommonSettings.UseExtFirmware == false)
{
NDS_CreateDummyFirmware(&CommonSettings.InternalFirmConf);
}
NDS_Reset();
//todo ?