Revert "Press Y to swap screens"

This reverts commit f22f96873a.
This commit is contained in:
RocketRobz 2018-10-11 16:58:39 -06:00
parent a1c7035230
commit c45fe11d5c
4 changed files with 65 additions and 62 deletions

View File

@ -45,6 +45,8 @@ static int dmCursorPosition = 0;
static u8 gbaFixedValue = 0; static u8 gbaFixedValue = 0;
void gbaCartDump(void) { void gbaCartDump(void) {
int pressed = 0;
printf ("\x1b[0;27H"); printf ("\x1b[0;27H");
printf (" "); // Clear time printf (" "); // Clear time
consoleInit(NULL, 1, BgType_Text4bpp, BgSize_T_256x256, 15, 0, false, true); consoleInit(NULL, 1, BgType_Text4bpp, BgSize_T_256x256, 15, 0, false, true);
@ -54,10 +56,12 @@ void gbaCartDump(void) {
while (true) { while (true) {
// Power saving loop. Only poll the keys once per frame and sleep the CPU if there is nothing else to do // Power saving loop. Only poll the keys once per frame and sleep the CPU if there is nothing else to do
do { do {
scanKeys();
pressed = keysDownRepeat();
swiWaitForVBlank(); swiWaitForVBlank();
} while (!(buttonsPressed & KEY_A) && !(buttonsPressed & KEY_B)); } while (!(pressed & KEY_A) && !(pressed & KEY_B));
if (buttonsPressed & KEY_A) { if (pressed & KEY_A) {
consoleClear(); consoleClear();
if (access("fat:/gm9i", F_OK) != 0) { if (access("fat:/gm9i", F_OK) != 0) {
printf("Creating directory..."); printf("Creating directory...");
@ -108,13 +112,15 @@ void gbaCartDump(void) {
fclose(destinationFile); fclose(destinationFile);
break; break;
} }
if (buttonsPressed & KEY_B) { if (pressed & KEY_B) {
break; break;
} }
} }
} }
void driveMenu (void) { void driveMenu (void) {
int pressed = 0;
int held = 0;
int assignedOp[3] = {-1}; int assignedOp[3] = {-1};
int maxCursors = -1; int maxCursors = -1;
@ -244,6 +250,9 @@ void driveMenu (void) {
// Print time // Print time
printf (RetTime().c_str()); printf (RetTime().c_str());
scanKeys();
pressed = keysDownRepeat();
held = keysHeld();
swiWaitForVBlank(); swiWaitForVBlank();
if (!isDSiMode() && isRegularDS) { if (!isDSiMode() && isRegularDS) {
@ -257,13 +266,13 @@ void driveMenu (void) {
break; break;
} }
} }
} while (!(buttonsPressed & KEY_UP) && !(buttonsPressed & KEY_DOWN) && !(buttonsPressed & KEY_A) && !(buttonsHeld & KEY_R)); } while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) && !(pressed & KEY_A) && !(held & KEY_R));
if ((buttonsPressed & KEY_UP) && maxCursors != -1) { if ((pressed & KEY_UP) && maxCursors != -1) {
dmCursorPosition -= 1; dmCursorPosition -= 1;
dmTextPrinted = false; dmTextPrinted = false;
} }
if ((buttonsPressed & KEY_DOWN) && maxCursors != -1) { if ((pressed & KEY_DOWN) && maxCursors != -1) {
dmCursorPosition += 1; dmCursorPosition += 1;
dmTextPrinted = false; dmTextPrinted = false;
} }
@ -271,7 +280,7 @@ void driveMenu (void) {
if (dmCursorPosition < 0) dmCursorPosition = maxCursors; // Wrap around to bottom of list if (dmCursorPosition < 0) dmCursorPosition = maxCursors; // Wrap around to bottom of list
if (dmCursorPosition > maxCursors) dmCursorPosition = 0; // Wrap around to top of list if (dmCursorPosition > maxCursors) dmCursorPosition = 0; // Wrap around to top of list
if (buttonsPressed & KEY_A) { if (pressed & KEY_A) {
if (assignedOp[dmCursorPosition] == 0 && isDSiMode() && sdMounted) { if (assignedOp[dmCursorPosition] == 0 && isDSiMode() && sdMounted) {
dmTextPrinted = false; dmTextPrinted = false;
secondaryDrive = false; secondaryDrive = false;
@ -301,7 +310,7 @@ void driveMenu (void) {
} }
// Unmount/Remount SD card // Unmount/Remount SD card
if ((buttonsHeld & KEY_R) && (buttonsPressed & KEY_B)) { if ((held & KEY_R) && (pressed & KEY_B)) {
dmTextPrinted = false; dmTextPrinted = false;
if (isDSiMode()) { if (isDSiMode()) {
if (sdMounted) { if (sdMounted) {
@ -316,7 +325,7 @@ void driveMenu (void) {
} }
} }
if (isDSiMode() && !flashcardMountSkipped && !buttonsPressed && !buttonsHeld) { if (isDSiMode() && !flashcardMountSkipped && !pressed && !held) {
if (REG_SCFG_MC == 0x11) { if (REG_SCFG_MC == 0x11) {
if (flashcardMounted) { if (flashcardMounted) {
flashcardUnmount(); flashcardUnmount();

View File

@ -156,6 +156,7 @@ void showDirectoryContents (const vector<DirEntry>& dirContents, int startRow) {
} }
int fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) { int fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
int pressed = 0;
int assignedOp[3] = {0}; int assignedOp[3] = {0};
int optionOffset = 0; int optionOffset = 0;
int cursorScreenPos = 0; int cursorScreenPos = 0;
@ -211,17 +212,19 @@ int fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
// Power saving loop. Only poll the keys once per frame and sleep the CPU if there is nothing else to do // Power saving loop. Only poll the keys once per frame and sleep the CPU if there is nothing else to do
do { do {
scanKeys();
pressed = keysDownRepeat();
swiWaitForVBlank(); swiWaitForVBlank();
} while (!(buttonsPressed & KEY_UP) && !(buttonsPressed & KEY_DOWN) } while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN)
&& !(buttonsPressed & KEY_A) && !(buttonsPressed & KEY_B)); && !(pressed & KEY_A) && !(pressed & KEY_B));
if (buttonsPressed & KEY_UP) optionOffset -= 1; if (pressed & KEY_UP) optionOffset -= 1;
if (buttonsPressed & KEY_DOWN) optionOffset += 1; if (pressed & KEY_DOWN) optionOffset += 1;
if (optionOffset < 0) optionOffset = maxCursors; // Wrap around to bottom of list if (optionOffset < 0) optionOffset = maxCursors; // Wrap around to bottom of list
if (optionOffset > maxCursors) optionOffset = 0; // Wrap around to top of list if (optionOffset > maxCursors) optionOffset = 0; // Wrap around to top of list
if (buttonsPressed & KEY_A) { if (pressed & KEY_A) {
if (assignedOp[optionOffset] == 0) { if (assignedOp[optionOffset] == 0) {
applaunch = true; applaunch = true;
iprintf ("\x1b[%d;3H", optionOffset + ENTRIES_START_ROW+cursorScreenPos); iprintf ("\x1b[%d;3H", optionOffset + ENTRIES_START_ROW+cursorScreenPos);
@ -269,13 +272,14 @@ int fileBrowse_A(DirEntry* entry, char path[PATH_MAX]) {
} }
return assignedOp[optionOffset]; return assignedOp[optionOffset];
} }
if (buttonsPressed & KEY_B) { if (pressed & KEY_B) {
return -1; return -1;
} }
} }
} }
bool fileBrowse_paste(char path[PATH_MAX]) { bool fileBrowse_paste(char path[PATH_MAX]) {
int pressed = 0;
int optionOffset = 0; int optionOffset = 0;
int maxCursors = -1; int maxCursors = -1;
@ -302,17 +306,19 @@ bool fileBrowse_paste(char path[PATH_MAX]) {
// Power saving loop. Only poll the keys once per frame and sleep the CPU if there is nothing else to do // Power saving loop. Only poll the keys once per frame and sleep the CPU if there is nothing else to do
do { do {
scanKeys();
pressed = keysDownRepeat();
swiWaitForVBlank(); swiWaitForVBlank();
} while (!(buttonsPressed & KEY_UP) && !(buttonsPressed & KEY_DOWN) } while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN)
&& !(buttonsPressed & KEY_A) && !(buttonsPressed & KEY_B)); && !(pressed & KEY_A) && !(pressed & KEY_B));
if (buttonsPressed & KEY_UP) optionOffset -= 1; if (pressed & KEY_UP) optionOffset -= 1;
if (buttonsPressed & KEY_DOWN) optionOffset += 1; if (pressed & KEY_DOWN) optionOffset += 1;
if (optionOffset < 0) optionOffset = maxCursors; // Wrap around to bottom of list if (optionOffset < 0) optionOffset = maxCursors; // Wrap around to bottom of list
if (optionOffset > maxCursors) optionOffset = 0; // Wrap around to top of list if (optionOffset > maxCursors) optionOffset = 0; // Wrap around to top of list
if (buttonsPressed & KEY_A) { if (pressed & KEY_A) {
char destPath[256]; char destPath[256];
snprintf(destPath, sizeof(destPath), "%s%s", path, clipboardFilename); snprintf(destPath, sizeof(destPath), "%s%s", path, clipboardFilename);
iprintf ("\x1b[%d;3H", optionOffset + ENTRIES_START_ROW); iprintf ("\x1b[%d;3H", optionOffset + ENTRIES_START_ROW);
@ -333,13 +339,14 @@ bool fileBrowse_paste(char path[PATH_MAX]) {
clipboardOn = false; // Clear clipboard after copying or moving clipboardOn = false; // Clear clipboard after copying or moving
return true; return true;
} }
if (buttonsPressed & KEY_B) { if (pressed & KEY_B) {
return false; return false;
} }
} }
} }
string browseForFile (void) { string browseForFile (void) {
int pressed = 0;
int screenOffset = 0; int screenOffset = 0;
int fileOffset = 0; int fileOffset = 0;
off_t fileSize = 0; off_t fileSize = 0;
@ -393,27 +400,29 @@ string browseForFile (void) {
// Print time // Print time
printf (RetTime().c_str()); printf (RetTime().c_str());
scanKeys();
pressed = keysDownRepeat();
swiWaitForVBlank(); swiWaitForVBlank();
if (REG_SCFG_MC != stored_SCFG_MC) { if (REG_SCFG_MC != stored_SCFG_MC) {
break; break;
} }
} while (!(buttonsPressed & KEY_UP) && !(buttonsPressed & KEY_DOWN) && !(buttonsPressed & KEY_LEFT) && !(buttonsPressed & KEY_RIGHT) } while (!(pressed & KEY_UP) && !(pressed & KEY_DOWN) && !(pressed & KEY_LEFT) && !(pressed & KEY_RIGHT)
&& !(buttonsPressed & KEY_A) && !(buttonsPressed & KEY_B) && !(buttonsPressed & KEY_X) && !(buttonsPressed & KEY_Y) && !(pressed & KEY_A) && !(pressed & KEY_B) && !(pressed & KEY_X) && !(pressed & KEY_Y)
&& !(buttonsPressed & KEY_SELECT)); && !(pressed & KEY_SELECT));
iprintf ("\x1b[%d;0H*", fileOffset - screenOffset + ENTRIES_START_ROW); iprintf ("\x1b[%d;0H*", fileOffset - screenOffset + ENTRIES_START_ROW);
if (isDSiMode() && !buttonsPressed && secondaryDrive && REG_SCFG_MC == 0x11 && flashcardMounted) { if (isDSiMode() && !pressed && secondaryDrive && REG_SCFG_MC == 0x11 && flashcardMounted) {
flashcardUnmount(); flashcardUnmount();
screenMode = 0; screenMode = 0;
return "null"; return "null";
} }
if (buttonsPressed & KEY_UP) fileOffset -= 1; if (pressed & KEY_UP) fileOffset -= 1;
if (buttonsPressed & KEY_DOWN) fileOffset += 1; if (pressed & KEY_DOWN) fileOffset += 1;
if (buttonsPressed & KEY_LEFT) fileOffset -= ENTRY_PAGE_LENGTH; if (pressed & KEY_LEFT) fileOffset -= ENTRY_PAGE_LENGTH;
if (buttonsPressed & KEY_RIGHT) fileOffset += ENTRY_PAGE_LENGTH; if (pressed & KEY_RIGHT) fileOffset += ENTRY_PAGE_LENGTH;
if (fileOffset < 0) fileOffset = dirContents.size() - 1; // Wrap around to bottom of list if (fileOffset < 0) fileOffset = dirContents.size() - 1; // Wrap around to bottom of list
if (fileOffset > ((int)dirContents.size() - 1)) fileOffset = 0; // Wrap around to top of list if (fileOffset > ((int)dirContents.size() - 1)) fileOffset = 0; // Wrap around to top of list
@ -430,7 +439,7 @@ string browseForFile (void) {
getcwd(path, PATH_MAX); getcwd(path, PATH_MAX);
if (buttonsPressed & KEY_A) { if (pressed & KEY_A) {
DirEntry* entry = &dirContents.at(fileOffset); DirEntry* entry = &dirContents.at(fileOffset);
if (entry->isDirectory) { if (entry->isDirectory) {
iprintf("Entering directory\n"); iprintf("Entering directory\n");
@ -456,7 +465,7 @@ string browseForFile (void) {
} }
} }
if (buttonsPressed & KEY_B) { if (pressed & KEY_B) {
if ((strcmp (path, "sd:/") == 0) || (strcmp (path, "fat:/") == 0) || (strcmp (path, "nitro:/") == 0)) { if ((strcmp (path, "sd:/") == 0) || (strcmp (path, "fat:/") == 0) || (strcmp (path, "nitro:/") == 0)) {
screenMode = 0; screenMode = 0;
return "null"; return "null";
@ -469,15 +478,17 @@ string browseForFile (void) {
} }
// Delete file/folder // Delete file/folder
if ((buttonsPressed & KEY_X) && (strcmp (entry->name.c_str(), "..") != 0) && (strncmp (path, "nitro:/", 7) != 0)) { if ((pressed & KEY_X) && (strcmp (entry->name.c_str(), "..") != 0) && (strncmp (path, "nitro:/", 7) != 0)) {
printf ("\x1b[0;27H"); printf ("\x1b[0;27H");
printf (" "); // Clear time printf (" "); // Clear time
consoleInit(NULL, 1, BgType_Text4bpp, BgSize_T_256x256, 15, 0, false, true); consoleInit(NULL, 1, BgType_Text4bpp, BgSize_T_256x256, 15, 0, false, true);
iprintf("Delete \"%s\"?\n", entry->name.c_str()); iprintf("Delete \"%s\"?\n", entry->name.c_str());
printf ("(<A> yes, <B> no)"); printf ("(<A> yes, <B> no)");
while (true) { while (true) {
scanKeys();
pressed = keysDownRepeat();
swiWaitForVBlank(); swiWaitForVBlank();
if (buttonsPressed & KEY_A) { if (pressed & KEY_A) {
consoleClear(); consoleClear();
if (entry->isDirectory) { if (entry->isDirectory) {
printf ("Deleting folder, please wait..."); printf ("Deleting folder, please wait...");
@ -493,15 +504,17 @@ string browseForFile (void) {
} }
getDirectoryContents (dirContents); getDirectoryContents (dirContents);
fileOffset--; fileOffset--;
pressed = 0;
break; break;
} }
if (buttonsPressed & KEY_B) { if (pressed & KEY_B) {
pressed = 0;
break; break;
} }
} }
} }
if (buttonsPressed & KEY_Y) { if (pressed & KEY_Y) {
if (clipboardOn) { if (clipboardOn) {
if (strncmp (path, "nitro:/", 7) != 0) { if (strncmp (path, "nitro:/", 7) != 0) {
if (fileBrowse_paste(path)) { if (fileBrowse_paste(path)) {
@ -518,7 +531,7 @@ string browseForFile (void) {
} }
} }
if ((buttonsPressed & KEY_SELECT) && clipboardUsed) { if ((pressed & KEY_SELECT) && clipboardUsed) {
clipboardOn = !clipboardOn; clipboardOn = !clipboardOn;
} }
} }

View File

@ -58,25 +58,6 @@ void stop (void) {
char filePath[PATH_MAX]; char filePath[PATH_MAX];
static bool screenSwapped = false;
int buttonsPressed = 0;
int buttonsHeld = 0;
void vBlankHandler(void) {
scanKeys();
buttonsPressed = keysDownRepeat();
buttonsHeld = keysHeld();
if (buttonsPressed & KEY_L) {
if (screenSwapped) {
lcdMainOnTop();
} else {
lcdMainOnBottom();
}
screenSwapped = !screenSwapped;
}
}
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
int main(int argc, char **argv) { int main(int argc, char **argv) {
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
@ -90,6 +71,8 @@ int main(int argc, char **argv) {
int pathLen; int pathLen;
std::string filename; std::string filename;
bool yHeld = false;
snprintf(titleName, sizeof(titleName), "GodMode9i v%i.%i.%i", 1, 2, 1); snprintf(titleName, sizeof(titleName), "GodMode9i v%i.%i.%i", 1, 2, 1);
// initialize video mode // initialize video mode
@ -124,10 +107,6 @@ int main(int argc, char **argv) {
printf ("Y Held - Disable cart access"); printf ("Y Held - Disable cart access");
} }
// Set up key press and screen swap IRQ
irqSet(IRQ_VBLANK, vBlankHandler);
irqEnable(IRQ_VBLANK);
// Display for 2 seconds // Display for 2 seconds
for (int i = 0; i < 60*2; i++) { for (int i = 0; i < 60*2; i++) {
swiWaitForVBlank(); swiWaitForVBlank();
@ -148,9 +127,13 @@ int main(int argc, char **argv) {
sysSetCartOwner (BUS_OWNER_ARM9); // Allow arm9 to access GBA ROM sysSetCartOwner (BUS_OWNER_ARM9); // Allow arm9 to access GBA ROM
if (isDSiMode()) { if (isDSiMode()) {
scanKeys();
if (keysHeld() & KEY_Y) {
yHeld = true;
}
sdMounted = sdMount(); sdMounted = sdMount();
} }
if (!isDSiMode() || !(buttonsHeld & KEY_Y)) { if (!isDSiMode() || !yHeld) {
flashcardMounted = flashcardMount(); flashcardMounted = flashcardMount();
flashcardMountSkipped = false; flashcardMountSkipped = false;
} }

View File

@ -12,8 +12,6 @@ extern bool isRegularDS;
extern bool applaunch; extern bool applaunch;
extern int buttonsPressed;
extern int buttonsHeld;
#endif //MAIN_H #endif //MAIN_H