/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2010 PCSX2 Dev Team
*
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCSX2.
* If not, see .
*/
#pragma once
#include "MemoryCardFile.h"
struct _mcd
{
u8 term; // terminator value;
bool goodSector; // xor sector check
u32 sectorAddr; // read/write sector address
u32 transferAddr; // Transfer address
u8 FLAG; // for PSX;
u8 port; // port
u8 slot; // and slot for this memcard
// Auto Eject
u32 ForceEjection_Timeout; // in SIO checks
wxDateTime ForceEjection_Timestamp;
void GetSizeInfo(McdSizeInfo &info)
{
FileMcd_GetSizeInfo(port, slot, &info);
}
bool IsPSX()
{
return FileMcd_IsPSX(port, slot);
}
void EraseBlock()
{
FileMcd_EraseBlock(port, slot, transferAddr);
}
// Read from memorycard to dest
void Read(u8 *dest, int size)
{
FileMcd_Read(port, slot, dest, transferAddr, size);
}
// Write to memorycard from src
void Write(u8 *src, int size)
{
FileMcd_Save(port, slot, src,transferAddr, size);
}
bool IsPresent()
{
return FileMcd_IsPresent(port, slot);
}
u8 DoXor(const u8 *buf, uint length)
{
u8 i, x;
for (x=0, i=0; i