public Result Read(GameCardHandle handle, long offset, Span <byte> destination) { if (IsGameCardHandleInvalid(handle)) { return(ResultFs.InvalidGameCardHandleOnRead.Log()); } if (!IsGameCardInserted()) { return(ResultFs.GameCardNotInserted.Log()); } return(CardImageStorage.Read(offset, destination)); }
public Result GetGameCardDeviceId(Span <byte> outBuffer) { if (outBuffer.Length < 0x10) { return(ResultFs.InvalidBufferForGameCard.Log()); } if (!IsGameCardInserted()) { return(ResultFs.GameCardNotInserted.Log()); } // Skip the security mode check // Instead of caching the CardKeyArea data, read the value directly return(CardImageStorage.Read(0x7110, outBuffer.Slice(0, 0x10))); }