aboutsummaryrefslogtreecommitdiff
path: root/src/DSi_SD.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/DSi_SD.cpp')
-rw-r--r--src/DSi_SD.cpp22
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;