Skip to content

Commit b0e904f

Browse files
committed
Add option to have START button launch a game
1 parent 7518a85 commit b0e904f

File tree

13 files changed

+111
-19
lines changed

13 files changed

+111
-19
lines changed

romsel_dsimenutheme/arm9/source/fileBrowse.cpp

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ extern bool whiteScreen;
6161
extern bool fadeType;
6262
extern bool fadeSpeed;
6363

64+
extern bool startButtonLaunch;
6465
extern int launchType;
6566
extern bool slot1LaunchMethod;
6667
extern bool homebrewBootstrap;
@@ -667,12 +668,15 @@ string browseForFile(const vector<string> extensionList, const char* username)
667668
cursorPosition = 39;
668669
}
669670
}
670-
// else if (cursorPosition > ((int) dirContents[scrn].size() - 1))
671-
// {
672-
// cursorPosition = dirContents[scrn].size() - 1;
673-
// }
674-
675-
if ((pressed & KEY_A) && !titleboxXmoveleft && !titleboxXmoveright && showSTARTborder)
671+
672+
int pressedToLaunch = 0;
673+
if (startButtonLaunch) {
674+
pressedToLaunch = (pressed & KEY_START);
675+
} else {
676+
pressedToLaunch = (pressed & KEY_A);
677+
}
678+
679+
if (pressedToLaunch && !titleboxXmoveleft && !titleboxXmoveright && showSTARTborder)
676680
{
677681
if ((startMenu_cursorPosition == 0 && startMenu)
678682
|| (startMenu_cursorPosition == 1 && startMenu)
@@ -1106,7 +1110,14 @@ string browseForFile(const vector<string> extensionList, const char* username)
11061110
waitForFadeOut();
11071111
}
11081112

1109-
if ((pressed & KEY_SELECT) && !startMenu
1113+
int pressedForPerGameSettings = 0;
1114+
if (startButtonLaunch) {
1115+
pressedForPerGameSettings = (pressed & KEY_A);
1116+
} else {
1117+
pressedForPerGameSettings = (pressed & KEY_START);
1118+
}
1119+
1120+
if (pressedForPerGameSettings && !startMenu
11101121
&& (isDirectory[cursorPosition] == false) && (bnrRomType[cursorPosition] == 0) && (isHomebrew[cursorPosition] == false)
11111122
&& !titleboxXmoveleft && !titleboxXmoveright && showSTARTborder)
11121123
{

romsel_dsimenutheme/arm9/source/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ bool applaunch = false;
119119
bool startMenu = false;
120120
bool gotosettings = false;
121121

122+
bool startButtonLaunch = false;
122123
int launchType = 1; // 0 = Slot-1, 1 = SD/Flash card, 2 = DSiWare, 3 = NES, 4 = (S)GB(C)
123124
bool slot1LaunchMethod = true; // false == Reboot, true == Direct
124125
bool bootstrapFile = false;
@@ -179,6 +180,7 @@ void LoadSettings(void) {
179180

180181
slot1LaunchMethod = settingsini.GetInt("SRLOADER", "SLOT1_LAUNCHMETHOD", 1);
181182
bootstrapFile = settingsini.GetInt("SRLOADER", "BOOTSTRAP_FILE", 0);
183+
startButtonLaunch = settingsini.GetInt("SRLOADER", "START_BUTTON_LAUNCH", 0);
182184

183185
// Default nds-bootstrap settings
184186
bstrap_language = settingsini.GetInt("NDS-BOOTSTRAP", "LANGUAGE", -1);

romsel_r4theme/arm9/source/fileBrowse.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ extern bool whiteScreen;
6161
extern bool fadeType;
6262
extern bool fadeSpeed;
6363

64+
extern bool startButtonLaunch;
6465
extern bool homebrewBootstrap;
6566
extern bool useGbarunner;
6667
extern int consoleModel;
@@ -322,8 +323,15 @@ string browseForFile(const vector<string> extensionList, const char* username)
322323
screenOffset = fileOffset - ENTRIES_PER_SCREEN + 1;
323324
showDirectoryContents (dirContents, screenOffset);
324325
}
325-
326-
if (pressed & KEY_A) {
326+
327+
int pressedToLaunch = 0;
328+
if (startButtonLaunch) {
329+
pressedToLaunch = (pressed & KEY_START);
330+
} else {
331+
pressedToLaunch = (pressed & KEY_A);
332+
}
333+
334+
if (pressedToLaunch) {
327335
DirEntry* entry = &dirContents.at(fileOffset);
328336
if (entry->isDirectory) {
329337
iprintf("Entering directory\n");
@@ -557,7 +565,14 @@ string browseForFile(const vector<string> extensionList, const char* username)
557565
return "null";
558566
}
559567

560-
if ((pressed & KEY_SELECT) && (isDirectory == false) && (bnrRomType == 0) && (isHomebrew == false))
568+
int pressedForPerGameSettings = 0;
569+
if (startButtonLaunch) {
570+
pressedForPerGameSettings = (pressed & KEY_A);
571+
} else {
572+
pressedForPerGameSettings = (pressed & KEY_START);
573+
}
574+
575+
if (pressedForPerGameSettings && (isDirectory == false) && (bnrRomType == 0) && (isHomebrew == false))
561576
{
562577
cursorPosition = fileOffset;
563578
perGameSettings(dirContents.at(fileOffset).name);

romsel_r4theme/arm9/source/main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ bool applaunch = false;
121121
bool startMenu = true;
122122
bool gotosettings = false;
123123

124-
int launchType = 1; // 0 = Slot-1, 1 = SD/Flash card, 2 = NES, 3 = (S)GB(C)
124+
bool startButtonLaunch = false;
125+
int launchType = 1; // 0 = Slot-1, 1 = SD/Flash card, 2 = DSiWare, 3 = NES, 4 = (S)GB(C)
125126
bool slot1LaunchMethod = true; // false == Reboot, true == Direct
126127
bool bootstrapFile = false;
127128
bool homebrewBootstrap = false;
@@ -132,7 +133,6 @@ int subtheme = 0;
132133
int cursorPosition = 0;
133134
int startMenu_cursorPosition = 0;
134135
int pagenum = 0;
135-
int dsiWarePageNum = 0;
136136
bool showDirectories = true;
137137
bool animateDsiIcons = false;
138138

@@ -180,6 +180,7 @@ void LoadSettings(void) {
180180

181181
slot1LaunchMethod = settingsini.GetInt("SRLOADER", "SLOT1_LAUNCHMETHOD", 1);
182182
bootstrapFile = settingsini.GetInt("SRLOADER", "BOOTSTRAP_FILE", 0);
183+
startButtonLaunch = settingsini.GetInt("SRLOADER", "START_BUTTON_LAUNCH", 0);
183184

184185
// Default nds-bootstrap settings
185186
bstrap_language = settingsini.GetInt("NDS-BOOTSTRAP", "LANGUAGE", -1);

titleandsettings/arm9/source/language.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ std::string STR_DSIMENUPPLOGO = "STR_DSIMENUPPLOGO";
2323
std::string STR_DIRECTORIES = "STR_DIRECTORIES";
2424
std::string STR_BOXART = "STR_BOXART";
2525
std::string STR_ANIMATEDSIICONS = "STR_ANIMATEDSIICONS";
26+
std::string STR_STARTBUTTONLAUNCH = "STR_STARTBUTTONLAUNCH";
2627
std::string STR_SYSTEMSETTINGS = "STR_SYSTEMSETTINGS";
2728
std::string STR_REPLACEDSIMENU = "STR_REPLACEDSIMENU";
2829
std::string STR_RESTOREDSIMENU = "STR_RESTOREDSIMENU";
@@ -53,6 +54,10 @@ std::string STR_DESCRIPTION_ANIMATEDSIICONS_1 = "STR_DESCRIPTION_ANIMATEDSIICONS
5354
std::string STR_DESCRIPTION_ANIMATEDSIICONS_2 = "STR_DESCRIPTION_ANIMATEDSIICONS_2";
5455
std::string STR_DESCRIPTION_ANIMATEDSIICONS_3 = "STR_DESCRIPTION_ANIMATEDSIICONS_3";
5556

57+
std::string STR_DESCRIPTION_STARTBUTTONLAUNCH_1 = "STR_DESCRIPTION_STARTBUTTONLAUNCH_1";
58+
std::string STR_DESCRIPTION_STARTBUTTONLAUNCH_2 = "STR_DESCRIPTION_STARTBUTTONLAUNCH_2";
59+
std::string STR_DESCRIPTION_STARTBUTTONLAUNCH_3 = "STR_DESCRIPTION_STARTBUTTONLAUNCH_3";
60+
5661
std::string STR_DESCRIPTION_SYSTEMSETTINGS_1 = "STR_DESCRIPTION_SYSTEMSETTINGS_1";
5762
std::string STR_DESCRIPTION_SYSTEMSETTINGS_2 = "STR_DESCRIPTION_SYSTEMSETTINGS_2";
5863

@@ -206,6 +211,7 @@ void langInit(void)
206211
STR_DIRECTORIES = languageini.GetString("LANGUAGE", "DIRECTORIES", "");
207212
STR_BOXART = languageini.GetString("LANGUAGE", "BOXART", "");
208213
STR_ANIMATEDSIICONS = languageini.GetString("LANGUAGE", "ANIMATEDSIICONS", "");
214+
STR_STARTBUTTONLAUNCH = languageini.GetString("LANGUAGE", "STARTBUTTONLAUNCH", "");
209215
STR_SYSTEMSETTINGS = languageini.GetString("LANGUAGE", "SYSTEMSETTINGS", "");
210216
STR_REPLACEDSIMENU = languageini.GetString("LANGUAGE", "REPLACEDSIMENU", "");
211217
STR_RESTOREDSIMENU = languageini.GetString("LANGUAGE", "RESTOREDSIMENU", "");
@@ -236,6 +242,10 @@ void langInit(void)
236242
STR_DESCRIPTION_ANIMATEDSIICONS_2 = languageini.GetString("LANGUAGE", "DESCRIPTION_ANIMATEDSIICONS_2", "");
237243
STR_DESCRIPTION_ANIMATEDSIICONS_3 = languageini.GetString("LANGUAGE", "DESCRIPTION_ANIMATEDSIICONS_3", "");
238244

245+
STR_DESCRIPTION_STARTBUTTONLAUNCH_1 = languageini.GetString("LANGUAGE", "DESCRIPTION_STARTBUTTONLAUNCH_1", "");
246+
STR_DESCRIPTION_STARTBUTTONLAUNCH_2 = languageini.GetString("LANGUAGE", "DESCRIPTION_STARTBUTTONLAUNCH_2", "");
247+
STR_DESCRIPTION_STARTBUTTONLAUNCH_3 = languageini.GetString("LANGUAGE", "DESCRIPTION_STARTBUTTONLAUNCH_3", "");
248+
239249
STR_DESCRIPTION_SYSTEMSETTINGS_1 = languageini.GetString("LANGUAGE", "DESCRIPTION_SYSTEMSETTINGS_1", "");
240250
STR_DESCRIPTION_SYSTEMSETTINGS_2 = languageini.GetString("LANGUAGE", "DESCRIPTION_SYSTEMSETTINGS_2", "");
241251

titleandsettings/arm9/source/language.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ extern std::string STR_DSIMENUPPLOGO;
1717
extern std::string STR_DIRECTORIES;
1818
extern std::string STR_BOXART;
1919
extern std::string STR_ANIMATEDSIICONS;
20+
extern std::string STR_STARTBUTTONLAUNCH;
2021
extern std::string STR_SYSTEMSETTINGS;
2122
extern std::string STR_REPLACEDSIMENU;
2223
extern std::string STR_RESTOREDSIMENU;
@@ -47,6 +48,10 @@ extern std::string STR_DESCRIPTION_ANIMATEDSIICONS_1;
4748
extern std::string STR_DESCRIPTION_ANIMATEDSIICONS_2;
4849
extern std::string STR_DESCRIPTION_ANIMATEDSIICONS_3;
4950

51+
extern std::string STR_DESCRIPTION_STARTBUTTONLAUNCH_1;
52+
extern std::string STR_DESCRIPTION_STARTBUTTONLAUNCH_2;
53+
extern std::string STR_DESCRIPTION_STARTBUTTONLAUNCH_3;
54+
5055
extern std::string STR_DESCRIPTION_SYSTEMSETTINGS_1;
5156
extern std::string STR_DESCRIPTION_SYSTEMSETTINGS_2;
5257

titleandsettings/arm9/source/main.cpp

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ static int bstrap_loadingScreen = 1;
7575

7676
static int donorSdkVer = 0;
7777

78+
static bool startButtonLaunch = false;
7879
static int launchType = 1; // 0 = Slot-1, 1 = SD/Flash card, 2 = DSiWare, 3 = NES, 4 = (S)GB(C)
7980
static bool slot1LaunchMethod = true; // false == Reboot, true == Direct
8081
static bool bootstrapFile = false;
@@ -123,6 +124,7 @@ void LoadSettings(void) {
123124
flashcard = settingsini.GetInt("SRLOADER", "FLASHCARD", 0);
124125
slot1LaunchMethod = settingsini.GetInt("SRLOADER", "SLOT1_LAUNCHMETHOD", 1);
125126
bootstrapFile = settingsini.GetInt("SRLOADER", "BOOTSTRAP_FILE", 0);
127+
startButtonLaunch = settingsini.GetInt("SRLOADER", "START_BUTTON_LAUNCH", 0);
126128
launchType = settingsini.GetInt("SRLOADER", "LAUNCH_TYPE", 1);
127129
if (flashcardUsed && launchType == 0) launchType = 1;
128130
dsiWareSrlPath = settingsini.GetString("SRLOADER", "DSIWARE_SRL", "");
@@ -169,6 +171,7 @@ void SaveSettings(void) {
169171
settingsini.SetInt("SRLOADER", "FLASHCARD", flashcard);
170172
settingsini.SetInt("SRLOADER", "SLOT1_LAUNCHMETHOD", slot1LaunchMethod);
171173
settingsini.SetInt("SRLOADER", "BOOTSTRAP_FILE", bootstrapFile);
174+
settingsini.SetInt("SRLOADER", "START_BUTTON_LAUNCH", startButtonLaunch);
172175

173176
// UI settings.
174177
settingsini.SetInt("SRLOADER", "THEME", theme);
@@ -509,7 +512,7 @@ int main(int argc, char **argv) {
509512

510513
char vertext[12];
511514
// snprintf(vertext, sizeof(vertext), "Ver %d.%d.%d ", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); // Doesn't work :(
512-
snprintf(vertext, sizeof(vertext), "Ver %d.%d.%d ", 5, 2, 1);
515+
snprintf(vertext, sizeof(vertext), "Ver %d.%d.%d ", 5, 3, 0);
513516

514517
if (gotosettings) {
515518
graphicsInit();
@@ -1191,6 +1194,13 @@ int main(int argc, char **argv) {
11911194
printSmall(false, 230, selyPos, STR_NO.c_str());
11921195
selyPos += 12;
11931196

1197+
printSmall(false, 12, selyPos, STR_STARTBUTTONLAUNCH.c_str());
1198+
if(startButtonLaunch)
1199+
printSmall(false, 224, selyPos, STR_YES.c_str());
1200+
else
1201+
printSmall(false, 230, selyPos, STR_NO.c_str());
1202+
selyPos += 12;
1203+
11941204
if (!flashcardUsed && !arm7SCFGLocked) {
11951205
if (consoleModel < 2) {
11961206
printSmall(false, 12, selyPos, STR_SYSTEMSETTINGS.c_str());
@@ -1232,9 +1242,13 @@ int main(int argc, char **argv) {
12321242
printLargeCentered(true, 126, STR_DESCRIPTION_ANIMATEDSIICONS_2.c_str());
12331243
printLargeCentered(true, 140, STR_DESCRIPTION_ANIMATEDSIICONS_3.c_str());
12341244
} else if (settingscursor == 7) {
1245+
printLargeCentered(true, 112, STR_DESCRIPTION_STARTBUTTONLAUNCH_1.c_str());
1246+
printLargeCentered(true, 126, STR_DESCRIPTION_STARTBUTTONLAUNCH_2.c_str());
1247+
printLargeCentered(true, 140, STR_DESCRIPTION_STARTBUTTONLAUNCH_3.c_str());
1248+
} else if (settingscursor == 8) {
12351249
printLargeCentered(true, 118, STR_DESCRIPTION_SYSTEMSETTINGS_1.c_str());
12361250
printLargeCentered(true, 132, STR_DESCRIPTION_SYSTEMSETTINGS_2.c_str());
1237-
} else if (settingscursor == 8) {
1251+
} else if (settingscursor == 9) {
12381252
if (hiyaAutobootFound) {
12391253
printLargeCentered(true, 126, STR_DESCRIPTION_RESTOREDSIMENU_1.c_str());
12401254
} else {
@@ -1316,6 +1330,10 @@ int main(int argc, char **argv) {
13161330
mmEffectEx(&snd_select);
13171331
break;
13181332
case 7:
1333+
startButtonLaunch = !startButtonLaunch;
1334+
mmEffectEx(&snd_select);
1335+
break;
1336+
case 8:
13191337
screenmode = 0;
13201338
mmEffectEx(&snd_launch);
13211339
clearText();
@@ -1326,7 +1344,7 @@ int main(int argc, char **argv) {
13261344
for (int i = 0; i < 60; i++) swiWaitForVBlank();
13271345
launchSystemSettings();
13281346
break;
1329-
case 8:
1347+
case 9:
13301348
if (pressed & KEY_A) {
13311349
if (hiyaAutobootFound) {
13321350
if ( remove ("sd:/hiya/autoboot.bin") != 0 ) {
@@ -1386,11 +1404,11 @@ int main(int argc, char **argv) {
13861404
}
13871405

13881406
if (!flashcardUsed && consoleModel < 2) {
1389-
if (settingscursor > 8) settingscursor = 0;
1390-
else if (settingscursor < 0) settingscursor = 8;
1407+
if (settingscursor > 9) settingscursor = 0;
1408+
else if (settingscursor < 0) settingscursor = 9;
13911409
} else {
1392-
if (settingscursor > 6) settingscursor = 0;
1393-
else if (settingscursor < 0) settingscursor = 6;
1410+
if (settingscursor > 7) settingscursor = 0;
1411+
else if (settingscursor < 0) settingscursor = 7;
13941412
}
13951413
}
13961414

titleandsettings/nitrofiles/languages/english.ini

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ DSIMENUPPLOGO = DSiMenu++ logo on startup
1313
DIRECTORIES = Directories/folders
1414
BOXART = Box art/Game covers
1515
ANIMATEDSIICONS = Animate DSi icons
16+
STARTBUTTONLAUNCH = Launch with START button
1617
SYSTEMSETTINGS = System Settings
1718
REPLACEDSIMENU = Replace DSi Menu
1819
RESTOREDSIMENU = Restore DSi Menu
@@ -43,6 +44,10 @@ DESCRIPTION_ANIMATEDSIICONS_1 = Animates DSi-enhanced icons like in
4344
DESCRIPTION_ANIMATEDSIICONS_2 = the DSi/3DS menus. Turning this off
4445
DESCRIPTION_ANIMATEDSIICONS_3 = will fix some icons appearing white.
4546
47+
DESCRIPTION_STARTBUTTONLAUNCH_1 = START button will be used to launch
48+
DESCRIPTION_STARTBUTTONLAUNCH_2 = a game instead of A, where A
49+
DESCRIPTION_STARTBUTTONLAUNCH_3 = will bring up per-game settings.
50+
4651
DESCRIPTION_SYSTEMSETTINGS_1 = Press A to change settings
4752
DESCRIPTION_SYSTEMSETTINGS_2 = related to the DSi system.
4853

titleandsettings/nitrofiles/languages/french.ini

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ DSIMENUPPLOGO = Logo DSiMenu++ au d
1313
DIRECTORIES = Répertoires/dossiers
1414
BOXART = Box art/Couvertures de jeu
1515
ANIMATEDSIICONS = Animer des icônes DSi
16+
STARTBUTTONLAUNCH = Launch with START button
1617
SYSTEMSETTINGS = Paramètres de la console
1718
REPLACEDSIMENU = Remplacer le menu DSi
1819
RESTOREDSIMENU = Restaurer le menu DSi
@@ -43,6 +44,10 @@ DESCRIPTION_ANIMATEDSIICONS_1 = Animates DSi-enhanced icons like in
4344
DESCRIPTION_ANIMATEDSIICONS_2 = the DSi/3DS menus. Turning this off
4445
DESCRIPTION_ANIMATEDSIICONS_3 = will fix some icons appearing white.
4546

47+
DESCRIPTION_STARTBUTTONLAUNCH_1 = START button will be used to launch
48+
DESCRIPTION_STARTBUTTONLAUNCH_2 = a game instead of A, where A
49+
DESCRIPTION_STARTBUTTONLAUNCH_3 = will bring up per-game settings.
50+
4651
DESCRIPTION_SYSTEMSETTINGS_1 = Press A to change settings
4752
DESCRIPTION_SYSTEMSETTINGS_2 = related to the DSi system.
4853

titleandsettings/nitrofiles/languages/german.ini

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ DSIMENUPPLOGO = DSiMenu++ Logo beim Start
1313
DIRECTORIES = Ordner
1414
BOXART = Box Art/Spielhüllen
1515
ANIMATEDSIICONS = DSi-Icons animieren
16+
STARTBUTTONLAUNCH = Launch with START button
1617
SYSTEMSETTINGS = Systemeinstellungen
1718
REPLACEDSIMENU = DSi-Menü ersetzen
1819
RESTOREDSIMENU = DSi-Menü wiederherstellen
@@ -43,6 +44,10 @@ DESCRIPTION_ANIMATEDSIICONS_1 = Animierte DSi-Spezielle Icons wie in
4344
DESCRIPTION_ANIMATEDSIICONS_2 = den DSi/3DS Menüs. Deaktivieren kann
4445
DESCRIPTION_ANIMATEDSIICONS_3 = bei manchen weiß angezeigten Icons helfen.
4546

47+
DESCRIPTION_STARTBUTTONLAUNCH_1 = START button will be used to launch
48+
DESCRIPTION_STARTBUTTONLAUNCH_2 = a game instead of A, where A
49+
DESCRIPTION_STARTBUTTONLAUNCH_3 = will bring up per-game settings.
50+
4651
DESCRIPTION_SYSTEMSETTINGS_1 = Press A to change settings
4752
DESCRIPTION_SYSTEMSETTINGS_2 = related to the DSi system.
4853

0 commit comments

Comments
 (0)