diff --git a/desmume/src/NDSSystem.cpp b/desmume/src/NDSSystem.cpp index 7d804a575..9c2aca979 100644 --- a/desmume/src/NDSSystem.cpp +++ b/desmume/src/NDSSystem.cpp @@ -804,6 +804,8 @@ int NDS_LoadROM(const char *filename, const char *logicalFilename) #endif cheatsSearchClose(); + FCEUI_StopMovie(); + MMU_unsetRom(); NDS_SetROM((u8*)gameInfo.romdata, mask); NDS_Reset(); @@ -952,6 +954,7 @@ int NDS_LoadROM(const char *filename, const char *logicalFilename) #endif void NDS_FreeROM(void) { + FCEUI_StopMovie(); if ((u8*)MMU.CART_ROM == (u8*)gameInfo.romdata) gameInfo.romdata = NULL; if (MMU.CART_ROM != MMU.UNUSED_RAM) diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index f8d015169..b67f73dbb 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -2824,7 +2824,9 @@ int HandleKeyUp(WPARAM wParam, LPARAM lParam, int modifiers) SCustomKey *key = &CustomKeys.key(0); while (!IsLastCustomKey(key)) { - if (wParam == key->key && modifiers == key->modifiers && key->handleKeyUp) { + // the modifiers check here was disabled to fix the following problem: + // hold tab, hold alt, release tab, release alt -> fast forward gets stuck on + if (key->handleKeyUp && wParam == key->key /*&& modifiers == key->modifiers*/) { key->handleKeyUp(key->param); } key++;