| 235 | } |
| 236 | |
| 237 | void MemoryCardProtocol::ReadData() |
| 238 | { |
| 239 | MC_LOG.WriteLn("%s", __FUNCTION__); |
| 240 | PS1_FAIL(); |
| 241 | const u8 readLength = g_Sio2FifoIn.front(); |
| 242 | g_Sio2FifoIn.pop_front(); |
| 243 | g_Sio2FifoOut.push_back(0x00); |
| 244 | g_Sio2FifoOut.push_back(0x2b); |
| 245 | std::vector<u8> buf; |
| 246 | buf.resize(readLength); |
| 247 | mcd->Read(buf.data(), buf.size()); |
| 248 | u8 checksum = 0x00; |
| 249 | |
| 250 | for (const u8 readByte : buf) |
| 251 | { |
| 252 | checksum ^= readByte; |
| 253 | g_Sio2FifoOut.push_back(readByte); |
| 254 | } |
| 255 | |
| 256 | g_Sio2FifoOut.push_back(checksum); |
| 257 | g_Sio2FifoOut.push_back(mcd->term); |
| 258 | |
| 259 | ReadWriteIncrement(readLength); |
| 260 | } |
| 261 | |
| 262 | u8 MemoryCardProtocol::PS1Read(u8 data) |
| 263 | { |