/* 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