diff options
Diffstat (limited to 'src/DSi_SD.cpp')
-rw-r--r-- | src/DSi_SD.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/DSi_SD.cpp b/src/DSi_SD.cpp index 45a597b..de82edb 100644 --- a/src/DSi_SD.cpp +++ b/src/DSi_SD.cpp @@ -778,6 +778,23 @@ void DSi_MMCStorage::SendCMD(u8 cmd, u32 param) Host->SendResponse(CSR, true); return; + case 1: // SEND_OP_COND + // CHECKME!! + // also TODO: it's different for the SD card + if (Internal) + { + param &= ~(1<<30); + OCR &= 0xBF000000; + OCR |= (param & 0x40FFFFFF); + Host->SendResponse(OCR, true); + SetState(0x01); + } + else + { + printf("CMD1 on SD card!!\n"); + } + return; + case 2: case 10: // get CID Host->SendResponse(*(u32*)&CID[12], false); @@ -801,6 +818,11 @@ void DSi_MMCStorage::SendCMD(u8 cmd, u32 param) } return; + case 6: // MMC: 'SWITCH' + // TODO! + Host->SendResponse(CSR, true); + return; + case 7: // select card (by RCA) Host->SendResponse(CSR, true); return; |