Files
pico-loader/arm9/source/patches/platform/supercard/SuperCardSDCommands.h
2025-11-23 17:14:17 +01:00

36 lines
962 B
C

#pragma once
#include "common.h"
#include "SuperCardDefinitions.h"
enum class ScAppCommandResult
{
Ok,
FailedToSend,
FailedToParseResponse,
};
void sc_sdCommand(u8 command, u32 argument);
void sc_sdCommandAndDropResponse(u8 command, u32 argument, u32 bytesToDrop);
bool sc_sdCommandAndReadResponse(u8 command, u32 argument, u8* responseBuffer, u32 bytesToRead);
ScAppCommandResult sc_sdAppCommand(u8 appCommand, u32 relativeCardAddress, u32 argument);
ScAppCommandResult sc_sdAppCommandAndDropResponse(u8 appCommand,
u32 relativeCardAddress, u32 argument, u32 bytesToDrop);
ScAppCommandResult sc_sdAppCommandAndReadResponse(u8 appCommand,
u32 relativeCardAddress, u32 argument, u8* responseBuffer, u32 bytesToRead);
static inline void sc_dummyRead(auto) { }
static inline void sc_sendSdClock(u32 num)
{
while (num--)
{
sc_dummyRead(REG_SCSD_CMD16);
}
}
static inline void sc_resetSdCard()
{
SD_RESET_ADDR = 0;
}