Remove Multi EmuNAND stuff - this can't be supported

... but still leave a door open so it can be reintroduced
This commit is contained in:
d0k3 2016-02-27 14:45:07 +01:00
parent e586a65152
commit 47a09f8353

View File

@ -23,7 +23,6 @@
#define SUBTYPE_NONE 4 #define SUBTYPE_NONE 4
typedef struct { typedef struct {
DWORD offset;
BYTE type; BYTE type;
BYTE subtype; BYTE subtype;
} FATpartition; } FATpartition;
@ -35,38 +34,20 @@ typedef struct {
BYTE keyslot; BYTE keyslot;
} SubtypeDesc; } SubtypeDesc;
FATpartition DriveInfo[31] = { FATpartition DriveInfo[13] = {
{ 0x000000, TYPE_SDCARD, SUBTYPE_NONE }, // 0 - SDCARD { TYPE_SDCARD, SUBTYPE_NONE }, // 0 - SDCARD
{ 0x000000, TYPE_SYSNAND, SUBTYPE_CTRN_O }, // 1 - SYSNAND CTRNAND { TYPE_SYSNAND, SUBTYPE_CTRN_O }, // 1 - SYSNAND O3DS CTRNAND
{ 0x000000, TYPE_SYSNAND, SUBTYPE_TWLN }, // 2 - SYSNAND TWLN { TYPE_SYSNAND, SUBTYPE_TWLN }, // 2 - SYSNAND O3DS TWLN
{ 0x000000, TYPE_SYSNAND, SUBTYPE_TWLP }, // 3 - SYSNAND TWLP { TYPE_SYSNAND, SUBTYPE_TWLP }, // 3 - SYSNAND O3DS TWLP
{ 0x000000, TYPE_EMUNAND, SUBTYPE_CTRN_O }, // 4 - EMUNAND0 O3DS CTRNAND { TYPE_EMUNAND, SUBTYPE_CTRN_O }, // 4 - EMUNAND O3DS CTRNAND
{ 0x000000, TYPE_EMUNAND, SUBTYPE_TWLN }, // 5 - EMUNAND0 O3DS TWLN { TYPE_EMUNAND, SUBTYPE_TWLN }, // 5 - EMUNAND O3DS TWLN
{ 0x000000, TYPE_EMUNAND, SUBTYPE_TWLP }, // 6 - EMUNAND0 O3DS TWLP { TYPE_EMUNAND, SUBTYPE_TWLP }, // 6 - EMUNAND O3DS TWLP
{ 0x200000, TYPE_EMUNAND, SUBTYPE_CTRN_O }, // 7 - EMUNAND1 O3DS CTRNAND { TYPE_SYSNAND, SUBTYPE_CTRN_N }, // *1 - SYSNAND N3DS CTRNAND
{ 0x200000, TYPE_EMUNAND, SUBTYPE_TWLN }, // 8 - EMUNAND1 O3DS TWLN { TYPE_SYSNAND, SUBTYPE_TWLN }, // *2 - SYSNAND N3DS TWLN
{ 0x200000, TYPE_EMUNAND, SUBTYPE_TWLP }, // 9 - EMUNAND1 O3DS TWLP { TYPE_SYSNAND, SUBTYPE_TWLP }, // *3 - SYSNAND N3DS TWLP
{ 0x400000, TYPE_EMUNAND, SUBTYPE_CTRN_O }, // 10 - EMUNAND2 O3DS CTRNAND { TYPE_EMUNAND, SUBTYPE_CTRN_N }, // *4 - EMUNAND N3DS CTRNAND
{ 0x400000, TYPE_EMUNAND, SUBTYPE_TWLN }, // 11 - EMUNAND2 O3DS TWLN { TYPE_EMUNAND, SUBTYPE_TWLN }, // *5 - EMUNAND N3DS TWLN
{ 0x400000, TYPE_EMUNAND, SUBTYPE_TWLP }, // 12 - EMUNAND2 O3DS TWLP { TYPE_EMUNAND, SUBTYPE_TWLP }, // *6 - EMUNAND N3DS TWLP
{ 0x600000, TYPE_EMUNAND, SUBTYPE_CTRN_O }, // 13 - EMUNAND3 O3DS CTRNAND
{ 0x600000, TYPE_EMUNAND, SUBTYPE_TWLN }, // 14 - EMUNAND3 O3DS TWLN
{ 0x600000, TYPE_EMUNAND, SUBTYPE_TWLP }, // 15 - EMUNAND3 O3DS TWLPSDCARD
{ 0x000000, TYPE_SYSNAND, SUBTYPE_CTRN_N }, // *1 - SYSNAND CTRNAND
{ 0x000000, TYPE_SYSNAND, SUBTYPE_TWLN }, // *2 - SYSNAND TWLN
{ 0x000000, TYPE_SYSNAND, SUBTYPE_TWLP }, // *3 - SYSNAND TWLP
{ 0x000000, TYPE_EMUNAND, SUBTYPE_CTRN_N }, // *4 - EMUNAND0 N3DS CTRNAND
{ 0x000000, TYPE_EMUNAND, SUBTYPE_TWLN }, // *5 - EMUNAND0 N3DS TWLN
{ 0x000000, TYPE_EMUNAND, SUBTYPE_TWLP }, // *6 - EMUNAND0 N3DS TWLP
{ 0x400000, TYPE_EMUNAND, SUBTYPE_CTRN_N }, // *7 - EMUNAND1 N3DS CTRNAND
{ 0x400000, TYPE_EMUNAND, SUBTYPE_TWLN }, // *8 - EMUNAND1 N3DS TWLN
{ 0x400000, TYPE_EMUNAND, SUBTYPE_TWLP }, // *9 - EMUNAND1 N3DS TWLP
{ 0x800000, TYPE_EMUNAND, SUBTYPE_CTRN_N }, // *10 - EMUNAND2 N3DS CTRNAND
{ 0x800000, TYPE_EMUNAND, SUBTYPE_TWLN }, // *11 - EMUNAND2 N3DS TWLN
{ 0x800000, TYPE_EMUNAND, SUBTYPE_TWLP }, // *12 - EMUNAND2 N3DS TWLP
{ 0xC00000, TYPE_EMUNAND, SUBTYPE_CTRN_N }, // *13 - EMUNAND3 N3DS CTRNAND
{ 0xC00000, TYPE_EMUNAND, SUBTYPE_TWLN }, // *14 - EMUNAND3 N3DS TWLN
{ 0xC00000, TYPE_EMUNAND, SUBTYPE_TWLP } // *15 - EMUNAND3 N3DS TWLP
}; };
SubtypeDesc SubTypes[4] = { SubtypeDesc SubTypes[4] = {
@ -77,6 +58,7 @@ SubtypeDesc SubTypes[4] = {
}; };
static bool mode_n3ds = false; static bool mode_n3ds = false;
static u32 emunand_base_sector = 0x000000;
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
@ -178,7 +160,7 @@ DRESULT disk_read (
) )
{ {
if ((pdrv > 0) && mode_n3ds) // is this really set at this point? if ((pdrv > 0) && mode_n3ds) // is this really set at this point?
pdrv += 15; pdrv += 6;
BYTE type = DriveInfo[pdrv].type; BYTE type = DriveInfo[pdrv].type;
@ -195,7 +177,7 @@ DRESULT disk_read (
if (type == TYPE_SYSNAND) { if (type == TYPE_SYSNAND) {
if (sdmmc_nand_readsectors(isector, count, buff)) if (sdmmc_nand_readsectors(isector, count, buff))
return RES_PARERR; return RES_PARERR;
} else if (sdmmc_sdcard_readsectors(DriveInfo[pdrv].offset + isector, count, buff)) { } else if (sdmmc_sdcard_readsectors(emunand_base_sector + isector, count, buff)) {
return RES_PARERR; return RES_PARERR;
} }
@ -230,7 +212,7 @@ DRESULT disk_write (
) )
{ {
if ((pdrv > 0) && mode_n3ds) if ((pdrv > 0) && mode_n3ds)
pdrv += 15; pdrv += 6;
if (DriveInfo[pdrv].type == TYPE_SDCARD) { if (DriveInfo[pdrv].type == TYPE_SDCARD) {
if (sdmmc_sdcard_writesectors(sector, count, (BYTE *)buff)) { if (sdmmc_sdcard_writesectors(sector, count, (BYTE *)buff)) {
@ -256,7 +238,7 @@ DRESULT disk_write (
/*if (type == TYPE_SYSNAND) { /*if (type == TYPE_SYSNAND) {
if (sdmmc_nand_writesectors(isector, count, buff)) if (sdmmc_nand_writesectors(isector, count, buff))
return RES_PARERR; return RES_PARERR;
} else if (sdmmc_sdcard_writesectors(DriveInfo[pdrv].offset + isector, count, buff)) { } else if (sdmmc_sdcard_writesectors(emunand_base_sector + isector, count, buff)) {
return RES_PARERR; return RES_PARERR;
}*/ }*/
// stubbed, better be safe! // stubbed, better be safe!
@ -283,7 +265,7 @@ DRESULT disk_ioctl (
) )
{ {
if ((pdrv > 0) && mode_n3ds) if ((pdrv > 0) && mode_n3ds)
pdrv += 15; pdrv += 6;
switch (cmd) { switch (cmd) {
case GET_SECTOR_SIZE: case GET_SECTOR_SIZE: