diff --git a/source/filebrowser.cpp b/source/filebrowser.cpp index 751edab..52a9559 100644 --- a/source/filebrowser.cpp +++ b/source/filebrowser.cpp @@ -71,6 +71,8 @@ int autoLoadMethod() device = DEVICE_SD_SLOTA; else if(ChangeInterface(DEVICE_SD_SLOTB, SILENT)) device = DEVICE_SD_SLOTB; + else if(ChangeInterface(DEVICE_SD_PORT2, SILENT)) + device = DEVICE_SD_PORT2; else if(ChangeInterface(DEVICE_DVD, SILENT)) device = DEVICE_DVD; else if(ChangeInterface(DEVICE_SMB, SILENT)) @@ -104,6 +106,8 @@ int autoSaveMethod(bool silent) device = DEVICE_SD_SLOTA; else if(ChangeInterface(DEVICE_SD_SLOTB, SILENT)) device = DEVICE_SD_SLOTB; + else if(ChangeInterface(DEVICE_SD_PORT2, SILENT)) + device = DEVICE_SD_PORT2; else if(ChangeInterface(DEVICE_SMB, SILENT)) device = DEVICE_SMB; else if(!silent) @@ -173,7 +177,8 @@ bool IsDeviceRoot(char * path) strcmp(path, "dvd:/") == 0 || strcmp(path, "smb:/") == 0 || strcmp(path, "carda:/") == 0 || - strcmp(path, "cardb:/") == 0) + strcmp(path, "cardb:/") == 0 || + strcmp(path, "port2:/") == 0) { return true; } @@ -618,6 +623,14 @@ int BrowserChangeFolder() browserList[i].isdir = 1; browserList[i].icon = ICON_SD; i++; + + AddBrowserEntry(); + sprintf(browserList[i].filename, "port2:/"); + sprintf(browserList[i].displayname, "SD in SP2"); + browserList[i].length = 0; + browserList[i].isdir = 1; + browserList[i].icon = ICON_SD; + i++; #endif AddBrowserEntry(); sprintf(browserList[i].filename, "smb:/"); diff --git a/source/fileop.cpp b/source/fileop.cpp index 3cac6cc..10040d6 100644 --- a/source/fileop.cpp +++ b/source/fileop.cpp @@ -53,6 +53,7 @@ bool isMounted[7] = { false, false, false, false, false, false, false }; #else const DISC_INTERFACE* carda = &__io_gcsda; const DISC_INTERFACE* cardb = &__io_gcsdb; + const DISC_INTERFACE* port2 = &__io_gcsd2; const DISC_INTERFACE* dvd = &__io_gcdvd; #endif @@ -205,6 +206,7 @@ void UnmountAllFAT() #else fatUnmount("carda:"); fatUnmount("cardb:"); + fatUnmount("port2:"); #endif } @@ -242,12 +244,16 @@ static bool MountFAT(int device, int silent) sprintf(name2, "carda:"); disc = carda; break; - case DEVICE_SD_SLOTB: sprintf(name, "cardb"); sprintf(name2, "cardb:"); disc = cardb; break; + case DEVICE_SD_PORT2: + sprintf(name, "port2"); + sprintf(name2, "port2:"); + disc = port2; + break; #endif default: return false; // unknown device @@ -291,6 +297,7 @@ void MountAllFAT() #else MountFAT(DEVICE_SD_SLOTA, SILENT); MountFAT(DEVICE_SD_SLOTB, SILENT); + MountFAT(DEVICE_SD_PORT2, SILENT); #endif } @@ -369,6 +376,11 @@ bool FindDevice(char * filepath, int * device) *device = DEVICE_SD_SLOTB; return true; } + else if(strncmp(filepath, "port2:", 6) == 0) + { + *device = DEVICE_SD_PORT2; + return true; + } else if(strncmp(filepath, "dvd:", 4) == 0) { *device = DEVICE_DVD; @@ -409,6 +421,7 @@ bool ChangeInterface(int device, bool silent) #else case DEVICE_SD_SLOTA: case DEVICE_SD_SLOTB: + case DEVICE_SD_PORT2: #endif mounted = MountFAT(device, silent); break; diff --git a/source/menu.cpp b/source/menu.cpp index ddfd2c5..0c1fe40 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -3844,6 +3844,10 @@ static int MenuSettingsFile() GCSettings.LoadMethod++; if(GCSettings.SaveMethod == DEVICE_SD_SLOTB) GCSettings.SaveMethod++; + if(GCSettings.LoadMethod == DEVICE_SD_PORT2) + GCSettings.LoadMethod++; + if(GCSettings.SaveMethod == DEVICE_SD_PORT2) + GCSettings.SaveMethod++; #endif // correct load/save methods out of bounds @@ -3859,6 +3863,7 @@ static int MenuSettingsFile() else if (GCSettings.LoadMethod == DEVICE_SMB) sprintf (options.value[0],"Network"); else if (GCSettings.LoadMethod == DEVICE_SD_SLOTA) sprintf (options.value[0],"SD Gecko Slot A"); else if (GCSettings.LoadMethod == DEVICE_SD_SLOTB) sprintf (options.value[0],"SD Gecko Slot B"); + else if (GCSettings.LoadMethod == DEVICE_SD_PORT2) sprintf (options.value[0],"SD in SP2"); if (GCSettings.SaveMethod == DEVICE_AUTO) sprintf (options.value[1],"Auto Detect"); else if (GCSettings.SaveMethod == DEVICE_SD) sprintf (options.value[1],"SD"); @@ -3866,6 +3871,7 @@ static int MenuSettingsFile() else if (GCSettings.SaveMethod == DEVICE_SMB) sprintf (options.value[1],"Network"); else if (GCSettings.SaveMethod == DEVICE_SD_SLOTA) sprintf (options.value[1],"SD Gecko Slot A"); else if (GCSettings.SaveMethod == DEVICE_SD_SLOTB) sprintf (options.value[1],"SD Gecko Slot B"); + else if (GCSettings.SaveMethod == DEVICE_SD_PORT2) sprintf (options.value[1],"SD in SP2"); snprintf (options.value[2], 35, "%s", GCSettings.LoadFolder); snprintf (options.value[3], 35, "%s", GCSettings.SaveFolder); diff --git a/source/preferences.cpp b/source/preferences.cpp index ef6b68c..2937af4 100644 --- a/source/preferences.cpp +++ b/source/preferences.cpp @@ -666,9 +666,10 @@ bool LoadPrefs() sprintf(filepath[3], "sd:/%s", APPFOLDER); sprintf(filepath[4], "usb:/%s", APPFOLDER); #else - numDevices = 2; + numDevices = 3; sprintf(filepath[0], "carda:/%s", APPFOLDER); sprintf(filepath[1], "cardb:/%s", APPFOLDER); + sprintf(filepath[2], "port2:/%s", APPFOLDER); #endif for(int i=0; i