X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fsio.c;h=8392fd86771d020053ddf79a5ad798d45ba30f61;hb=6d8f88c428c2ffb61f7251afae92e8bfbbe5350f;hp=ae3e634a9b00e4f6dc5de46ef6e4a4c93d4a43aa;hpb=270c6dd14f876b8a67929aa22abefc47f4588324;p=pcsx_rearmed.git diff --git a/libpcsxcore/sio.c b/libpcsxcore/sio.c index ae3e634a..8392fd86 100644 --- a/libpcsxcore/sio.c +++ b/libpcsxcore/sio.c @@ -17,8 +17,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307 USA. * ***************************************************************************/ -#include - /* * SIO functions. */ @@ -26,6 +24,10 @@ #include "sio.h" #include +#ifdef USE_LIBRETRO_VFS +#include +#endif + // Status Flags #define TX_RDY 0x0001 #define RX_RDY 0x0002 @@ -438,11 +440,11 @@ void LoadMcd(int mcd, char *str) { if (*str == 0) return; - f = fopen_utf8(str, "rb"); + f = fopen(str, "rb"); if (f == NULL) { SysPrintf(_("The memory card %s doesn't exist - creating it\n"), str); CreateMcd(str); - f = fopen_utf8(str, "rb"); + f = fopen(str, "rb"); if (f != NULL) { struct stat buf; @@ -452,7 +454,12 @@ void LoadMcd(int mcd, char *str) { else if(buf.st_size == MCD_SIZE + 3904) fseek(f, 3904, SEEK_SET); } - fread(data, 1, MCD_SIZE, f); + if (fread(data, 1, MCD_SIZE, f) != MCD_SIZE) { +#ifndef NDEBUG + SysPrintf(_("File IO error in <%s:%s>.\n"), __FILE__, __func__); +#endif + memset(data, 0x00, MCD_SIZE); + } fclose(f); } else @@ -467,7 +474,12 @@ void LoadMcd(int mcd, char *str) { else if(buf.st_size == MCD_SIZE + 3904) fseek(f, 3904, SEEK_SET); } - fread(data, 1, MCD_SIZE, f); + if (fread(data, 1, MCD_SIZE, f) != MCD_SIZE) { +#ifndef NDEBUG + SysPrintf(_("File IO error in <%s:%s>.\n"), __FILE__, __func__); +#endif + memset(data, 0x00, MCD_SIZE); + } fclose(f); } } @@ -483,7 +495,7 @@ void SaveMcd(char *mcd, char *data, uint32_t adr, int size) { if (mcd == NULL || *mcd == 0 || strcmp(mcd, "none") == 0) return; - f = fopen_utf8(mcd, "r+b"); + f = fopen(mcd, "r+b"); if (f != NULL) { struct stat buf; @@ -520,7 +532,7 @@ void CreateMcd(char *mcd) { int s = MCD_SIZE; int i = 0, j; - f = fopen_utf8(mcd, "wb"); + f = fopen(mcd, "wb"); if (f == NULL) return;