@@ -69,6 +69,8 @@ extern bool arm7SCFGLocked;
6969extern int consoleModel;
7070extern bool isRegularDS;
7171
72+ extern bool dropDown;
73+ extern bool redoDropDown;
7274extern bool showbubble;
7375extern bool showSTARTborder;
7476
@@ -386,6 +388,15 @@ bool isTopLevel(const char *path)
386388#endif
387389}
388390
391+ void waitForFadeOut (void ) {
392+ if (!dropDown && theme == 0 ) {
393+ dropDown = true ;
394+ for (int i = 0 ; i < 60 ; i++) swiWaitForVBlank ();
395+ } else {
396+ for (int i = 0 ; i < 25 ; i++) swiWaitForVBlank ();
397+ }
398+ }
399+
389400string browseForFile (const vector<string> extensionList, const char * username)
390401{
391402 int pressed = 0 ;
@@ -471,14 +482,15 @@ string browseForFile(const vector<string> extensionList, const char* username)
471482 }
472483 }
473484
485+ whiteScreen = false ;
486+ fadeType = true ; // Fade in from white
487+ for (int i = 0 ; i < 5 ; i++) swiWaitForVBlank ();
474488 if (!music) {
475489 mmEffectEx (&mus_menu);
476490 music = true ;
477491 }
478- whiteScreen = false ;
479- fadeType = true ; // Fade in from white
480- for (int i = 0 ; i < 30 ; i++) swiWaitForVBlank ();
481-
492+ waitForFadeOut ();
493+
482494 /* clearText(false);
483495 updatePath();
484496 TextPane *pane = &createTextPane(20, 3 + ENTRIES_START_ROW*FONT_SY, ENTRIES_PER_SCREEN);
@@ -711,6 +723,7 @@ string browseForFile(const vector<string> extensionList, const char* username)
711723 whiteScreen = true ;
712724 if (showBoxArt) clearBoxArt (); // Clear box art
713725 boxArtLoaded = false ;
726+ redoDropDown = true ;
714727 shouldersRendered = false ;
715728 showbubble = false ;
716729 showSTARTborder = false ;
@@ -881,6 +894,7 @@ string browseForFile(const vector<string> extensionList, const char* username)
881894 whiteScreen = true ;
882895 if (showBoxArt) clearBoxArt (); // Clear box art
883896 boxArtLoaded = false ;
897+ redoDropDown = true ;
884898 shouldersRendered = false ;
885899 showbubble = false ;
886900 showSTARTborder = false ;
@@ -900,6 +914,7 @@ string browseForFile(const vector<string> extensionList, const char* username)
900914 whiteScreen = true ;
901915 if (showBoxArt) clearBoxArt (); // Clear box art
902916 boxArtLoaded = false ;
917+ redoDropDown = true ;
903918 shouldersRendered = false ;
904919 showbubble = false ;
905920 showSTARTborder = false ;
@@ -937,12 +952,16 @@ string browseForFile(const vector<string> extensionList, const char* username)
937952 SaveSettings ();
938953 settingsChanged = false ;
939954 }
940- shouldersRendered = false ;
941955 whiteScreen = true ;
956+ redoDropDown = true ;
957+ shouldersRendered = false ;
958+ showbubble = false ;
959+ showSTARTborder = false ;
942960 clearText ();
943961 whiteScreen = false ;
944962 fadeType = true ; // Fade in from white
945- for (int i = 0 ; i < 30 ; i++) swiWaitForVBlank ();
963+ for (int i = 0 ; i < 5 ; i++) swiWaitForVBlank ();
964+ waitForFadeOut ();
946965 } else if (showDirectories) {
947966 // Go up a directory
948967 mmEffectEx (&snd_select);
@@ -955,6 +974,7 @@ string browseForFile(const vector<string> extensionList, const char* username)
955974 whiteScreen = true ;
956975 if (showBoxArt) clearBoxArt (); // Clear box art
957976 boxArtLoaded = false ;
977+ redoDropDown = true ;
958978 shouldersRendered = false ;
959979 showbubble = false ;
960980 showSTARTborder = false ;
@@ -1049,13 +1069,15 @@ string browseForFile(const vector<string> extensionList, const char* username)
10491069 whiteScreen = true ;
10501070 if (showBoxArt) clearBoxArt (); // Clear box art
10511071 boxArtLoaded = false ;
1072+ redoDropDown = true ;
10521073 shouldersRendered = false ;
10531074 showbubble = false ;
10541075 showSTARTborder = false ;
10551076 clearText ();
10561077 whiteScreen = false ;
10571078 fadeType = true ; // Fade in from white
1058- for (int i = 0 ; i < 30 ; i++) swiWaitForVBlank ();
1079+ for (int i = 0 ; i < 5 ; i++) swiWaitForVBlank ();
1080+ waitForFadeOut ();
10591081 }
10601082
10611083 if ((pressed & KEY_SELECT) && !startMenu
0 commit comments